[
  {
    "path": ".gitattributes",
    "content": "# Auto detect text files and perform LF normalization\n* text=auto\n"
  },
  {
    "path": "02 - Your First Angular App/todo/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "02 - Your First Angular App/todo/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"todo\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/todo\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\t              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"todo:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"todo:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"todo:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"todo:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"todo:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"todo\"\n}\n"
  },
  {
    "path": "02 - Your First Angular App/todo/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "02 - Your First Angular App/todo/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "02 - Your First Angular App/todo/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('todo app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "02 - Your First Angular App/todo/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "02 - Your First Angular App/todo/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "02 - Your First Angular App/todo/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/todo'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "02 - Your First Angular App/todo/package.json",
    "content": "{\n  \"name\": \"todo\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "02 - Your First Angular App/todo/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "02 - Your First Angular App/todo/src/app/app.component.html",
    "content": "<h3 class=\"bg-primary text-center text-white p-2\">\n  {{ username }}'s To Do List\n  <h6 class=\"mt-1\">{{ itemCount }} {{ showComplete ? \"\" : \"Incomplete\" }} Items</h6>\n</h3>  \n\n<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col\">\n      <input class=\"form-control\" placeholder=\"Enter task here\" #todoText />    \n    </div>\n    <div class=\"col-auto\">\n      <button class=\"btn btn-primary\" (click)=\"addItem(todoText.value)\">\n        Add\n      </button>\n    </div>\n  </div>\n</div>\n\n<div class=\"m-2\">\n  <table class=\"table table-striped table-bordered table-sm\">\n    <thead>\n        <tr><th>#</th><th>Description</th><th>Done</th></tr>\n    </thead>\n    <tbody>\n        <tr *ngFor=\"let item of items; let i = index\">\n            <td>{{ i + 1 }}</td>\n            <td>{{ item.task }}</td>\n            <td><input type=\"checkbox\" [(ngModel)]=\"item.complete\" /></td>          \n            <!-- <td [ngSwitch]=\"item.complete\"> \n                <span *ngSwitchCase=\"true\">Yes</span>\n                <span *ngSwitchDefault>No</span>\n            </td> -->\n        </tr>           \n    </tbody>\n  </table>\n</div>\n\n<div class=\"bg-secondary text-white text-center p-2\">\n  <div class=\"form-check\">\n    <input class=\"form-check-input\" type=\"checkbox\" [(ngModel)]=\"showComplete\" />\n    <label class=\"form-check-label\" for=\"defaultCheck1\">\n      Show Completed Tasks\n    </label>\n  </div>  \n</div>\n"
  },
  {
    "path": "02 - Your First Angular App/todo/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\nimport { TodoList } from \"./todoList\";\nimport { TodoItem } from \"./todoItem\";\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  private list = new TodoList(\"Bob\", [\n    new TodoItem(\"Go for run\", true),\n    new TodoItem(\"Get flowers\"),\n    new TodoItem(\"Collect tickets\"),\n  ]);  \n  \n  get username(): string {\n    return this.list.user;\n  }\n\n  get itemCount(): number {\n    return this.items.length;\n  }\n\n  get items(): readonly TodoItem[] {\n    return this.list.items.filter(item => this.showComplete || !item.complete);\n  }\n\n  addItem(newItem) {\n    if (newItem != \"\") {\n        this.list.addItem(newItem);\n    }\n  }\n\n  showComplete: boolean = false;\n}\n"
  },
  {
    "path": "02 - Your First Angular App/todo/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from \"@angular/forms\";\n\nimport { AppComponent } from './app.component';\n\n@NgModule({\n  declarations: [\n    AppComponent\n  ],\n  imports: [\n    BrowserModule, FormsModule\n  ],\n  providers: [],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "02 - Your First Angular App/todo/src/app/todoItem.ts",
    "content": "export class TodoItem {\n\n    constructor(taskVal: string, completeVal: boolean = false) {\n        this.task = taskVal;\n        this.complete = completeVal;\n    }\n\n    task: string;\n    complete: boolean;\n}\n"
  },
  {
    "path": "02 - Your First Angular App/todo/src/app/todoList.ts",
    "content": "import { TodoItem } from \"./todoItem\";\n\nexport class TodoList {\n    \n    constructor(public user: string, private todoItems: TodoItem[] = []) {\n        // no statements required\n    }\n\n    get items(): readonly TodoItem[]  { \n        return this.todoItems;\n    }\n\n    addItem(task: string) {\n        this.todoItems.push(new TodoItem(task));\n    }\n}\n"
  },
  {
    "path": "02 - Your First Angular App/todo/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "02 - Your First Angular App/todo/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "02 - Your First Angular App/todo/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Todo</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app-root></app-root>\n</body>\n</html>\n"
  },
  {
    "path": "02 - Your First Angular App/todo/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "02 - Your First Angular App/todo/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "02 - Your First Angular App/todo/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "02 - Your First Angular App/todo/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "02 - Your First Angular App/todo/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "02 - Your First Angular App/todo/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "02 - Your First Angular App/todo/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "02 - Your First Angular App/todo/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "04 - HTML and CSS Primer/HtmlCssPrimer/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n    <title>ToDo</title>\n    <meta charset=\"utf-8\" />\n    <link href=\"node_modules/bootstrap/dist/css/bootstrap.min.css\" \n          rel=\"stylesheet\" />\n</head>\n<body class=\"m-1\">\n    <h3 class=\"bg-primary text-white p-3\">Adam's To Do List</h3>\n    <div class=\"container-fluid\">\n        <div class=\"row\">        \n            <div class=\"col-4\">\n                <form>\n                    <div class=\"form-group\">\n                        <label>Task</label>\n                        <input class=\"form-control\" />\n                    </div>\n                    <div class=\"form-group\">\n                        <label>Location</label>\n                        <input class=\"form-control\" />\n                    </div>\n                    <div class=\"form-group\">\n                        <input type=\"checkbox\" />\n                        <label>Done</label>\n                    </div>\n                    <button class=\"btn btn-primary\">Add</button>\n                </form>\n            </div>\n            <div class=\"col-8\">\n                <table class=\"table table-striped table-bordered\">\n                    <thead>\n                        <tr>\n                            <th>Description</th>\n                            <th>Done</th>\n                        </tr>\n                    </thead>\n                    <tbody>\n                        <tr><td>Buy Flowers</td><td>No</td></tr>\n                        <tr><td>Get Shoes</td><td>No</td></tr>\n                        <tr><td>Collect Tickets</td><td>Yes</td></tr>\n                        <tr><td>Call Joe</td><td>No</td></tr>\n                    </tbody>\n                </table>\n            </div>\n        </div>        \n    </div>\n</body>\n</html>\n"
  },
  {
    "path": "04 - HTML and CSS Primer/HtmlCssPrimer/package.json",
    "content": "{\n  \"dependencies\": {\n    \"bootstrap\": \"4.4.1\"\n  }\n}\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"JavaScriptPrimer\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/JavaScriptPrimer\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"JavaScriptPrimer:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"JavaScriptPrimer:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"JavaScriptPrimer:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"JavaScriptPrimer:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"JavaScriptPrimer:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"JavaScriptPrimer\"\n}\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('JavaScriptPrimer app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/JavaScriptPrimer'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/package.json",
    "content": "{\n  \"name\": \"java-script-primer\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'JavaScriptPrimer';\n}\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\nimport { AppComponent } from './app.component';\n\n@NgModule({\n  declarations: [\n    AppComponent\n  ],\n  imports: [\n    BrowserModule\n  ],\n  providers: [],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>JavaScriptPrimer</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app-root></app-root>\n</body>\n</html>\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/src/main.ts",
    "content": "let products = [\n  { name: \"Hat\", price: 24.5, stock: 10 },\n  { name: \"Kayak\", price: 289.99, stock: 1 },\n  { name: \"Soccer Ball\", price: 10, stock: 0 },\n  { name: \"Running Shoes\", price: 116.50, stock: 20 }\n];\n\nlet totalValue = products\n  .filter(item => item.stock > 0)\n  .reduce((prev, item) => prev + (item.price * item.stock), 0);\n\nconsole.log(\"Total value: $\" + totalValue.toFixed(2));    \n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "05 - JavaScript and TypeScript Primer, Part 1/JavaScriptPrimer/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"JavaScriptPrimer\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/JavaScriptPrimer\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"JavaScriptPrimer:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"JavaScriptPrimer:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"JavaScriptPrimer:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"JavaScriptPrimer:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"JavaScriptPrimer:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"JavaScriptPrimer\"\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('JavaScriptPrimer app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/JavaScriptPrimer'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/package.json",
    "content": "{\n  \"name\": \"java-script-primer\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'JavaScriptPrimer';\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\nimport { AppComponent } from './app.component';\n\n@NgModule({\n  declarations: [\n    AppComponent\n  ],\n  imports: [\n    BrowserModule\n  ],\n  providers: [],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>JavaScriptPrimer</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app-root></app-root>\n</body>\n</html>\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/src/main.ts",
    "content": "let products = [\n  { name: \"Hat\", price: 24.5, stock: 10 },\n  { name: \"Kayak\", price: 289.99, stock: 1 },\n  { name: \"Soccer Ball\", price: 10, stock: 0 },\n  { name: \"Running Shoes\", price: 116.50, stock: 20 }\n];\n\nlet totalValue = products\n  .filter(item => item.stock > 0)\n  .reduce((prev, item) => prev + (item.price * item.stock), 0);\n\nconsole.log(\"Total value: $\" + totalValue.toFixed(2));    \n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/Beginning of Chapter/JavaScriptPrimer/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"JavaScriptPrimer\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/JavaScriptPrimer\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"JavaScriptPrimer:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"JavaScriptPrimer:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"JavaScriptPrimer:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"JavaScriptPrimer:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"JavaScriptPrimer:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"JavaScriptPrimer\"\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('JavaScriptPrimer app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/JavaScriptPrimer'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/package.json",
    "content": "{\n  \"name\": \"java-script-primer\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'JavaScriptPrimer';\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\nimport { AppComponent } from './app.component';\n\n@NgModule({\n  declarations: [\n    AppComponent\n  ],\n  imports: [\n    BrowserModule\n  ],\n  providers: [],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>JavaScriptPrimer</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app-root></app-root>\n</body>\n</html>\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/src/main.ts",
    "content": "import { Name, WeatherLocation } from \"./modules/NameAndWeather\";\nimport { Name as OtherName } from \"./modules/DuplicateName\";\nimport { TempConverter } from \"./tempConverter\";\n\nlet cities: { [index: string]: [string, string] } = {};\n\ncities[\"London\"] = [\"raining\", TempConverter.convertFtoC(\"38\")];\ncities[\"Paris\"] = [\"sunny\", TempConverter.convertFtoC(\"52\")];\ncities[\"Berlin\"] = [\"snowing\", TempConverter.convertFtoC(\"23\")];\n\nfor (let key in cities) {\n    console.log(`${key}: ${cities[key][0]}, ${cities[key][1]}`);\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/src/modules/DuplicateName.ts",
    "content": "export class Name {\n\n    get message() {\n        return \"Other Name\";\n    }\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/src/modules/NameAndWeather.ts",
    "content": "export class Name {\n    \n    constructor(private first: string, private second: string) {}\n\n    get nameMessage() : string {\n        return `Hello ${this.first} ${this.second}`;\n    }\n}\n\nexport class WeatherLocation {\n    \n    constructor(private weather: string, private city: string) {}\n\n    get weatherMessage() : string {\n        return `It is ${this.weather} in ${this.city}`;\n    }\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/src/tempConverter.ts",
    "content": "export class TempConverter {\n\n    static convertFtoC(temp: any): string {\n        let value: number;\n        if ((temp as number).toPrecision) {\n            value = temp;\n        } else if ((temp as string).indexOf) {\n            value = parseFloat(<string>temp);\n        } else {\n            value = 0;\n        }\n        return TempConverter.performCalculation(value).toFixed(1);\n    }\n\n    private static performCalculation(value: number): number {\n        return (parseFloat(value.toPrecision(2)) - 32) / 1.8;\n    }\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "06 - JavaScript and TypeScript Primer, Part 2/End of Chapter/JavaScriptPrimer/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"                         \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/data.js",
    "content": "module.exports = function () {\n    return { \n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", \n                description: \"A boat for one person\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", \n                description: \"Protective and fashionable\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", \n                description: \"FIFA-approved size and weight\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", \n                description: \"Give your playing field a professional touch\", \n                price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", \n                description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", \n                description: \"Improve brain efficiency by 75%\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", \n                description: \"Secretly give your opponent a disadvantage\", \n                price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", \n                description: \"A fun game for the family\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", \n                description: \"Gold-plated, diamond-studded King\", price: 1200 }\n        ],\n        orders: []\n    }\n}\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"    \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'SportsStore';\n}\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\nimport { AppComponent } from './app.component';\n\n@NgModule({\n  declarations: [\n    AppComponent\n  ],\n  imports: [\n    BrowserModule\n  ],\n  providers: [],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n</body>\n</html>\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "07 - SportsStore/Beginning of Chapter/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"                         \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/data.js",
    "content": "module.exports = function () {\n    return { \n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", \n                description: \"A boat for one person\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", \n                description: \"Protective and fashionable\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", \n                description: \"FIFA-approved size and weight\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", \n                description: \"Give your playing field a professional touch\", \n                price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", \n                description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", \n                description: \"Improve brain efficiency by 75%\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", \n                description: \"Secretly give your opponent a disadvantage\", \n                price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", \n                description: \"A fun game for the family\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", \n                description: \"Gold-plated, diamond-studded King\", price: 1200 }\n        ],\n        orders: []\n    }\n}\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"    \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<store></store>\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\n\n@NgModule({\n    imports: [BrowserModule, StoreModule],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@NgModule({\n    providers: [ProductRepository, StaticDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(\n        public id?: number,\n        public name?: string,\n        public category?: string,\n        public description?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: StaticDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n}\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n}\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) {\n    }\n\n    @Input(\"counterOf\")\n    counter: number;\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.container.clear();\n        for (let i = 0; i < this.counter; i++) {\n            this.container.createEmbeddedView(this.template,\n                new CounterDirectiveContext(i + 1));\n        }\n    }\n}\n\nclass CounterDirectiveContext {\n    constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n    <div class=\"row\">\n  \n      <div class=\"col-3 p-2\">\n        <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n          Home\n        </button>\n        <button *ngFor=\"let cat of categories\" \n             class=\"btn btn-outline-primary btn-block\"\n             [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n          {{cat}}\n        </button>\n      </div>\n  \n      <div class=\"col-9 p-2\">\n        <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n          <h4>\n            {{product.name}}\n            <span class=\"badge badge-pill badge-primary float-right\">\n              {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n            </span>\n          </h4>\n          <div class=\"card-text bg-white p-1\">{{product.description}}</div>\n        </div>\n  \n        <div class=\"form-inline float-left mr-1\">\n          <select class=\"form-control\" [value]=\"productsPerPage\"\n                  (change)=\"changePageSize($event.target.value)\">\n            <option value=\"3\">3 per Page</option>\n            <option value=\"4\">4 per Page</option>\n            <option value=\"6\">6 per Page</option>\n            <option value=\"8\">8 per Page</option>\n          </select>\n        </div>\n  \n        <div class=\"btn-group float-right\">\n          <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n              class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n            {{page}}\n          </button>\n        </div>\n  \n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository) {}\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    //get pageNumbers(): number[] {\n    //    return Array(Math.ceil(this.repository\n    //        .getProducts(this.selectedCategory).length / this.productsPerPage))\n    //            .fill(0).map((x, i) => i + 1);\n    //}\n}\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule],\n    declarations: [StoreComponent, CounterDirective],\n    exports: [StoreComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n</body>\n</html>\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "07 - SportsStore/End of Chapter/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"                         \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/data.js",
    "content": "module.exports = function () {\n    return { \n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", \n                description: \"A boat for one person\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", \n                description: \"Protective and fashionable\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", \n                description: \"FIFA-approved size and weight\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", \n                description: \"Give your playing field a professional touch\", \n                price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", \n                description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", \n                description: \"Improve brain efficiency by 75%\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", \n                description: \"Secretly give your opponent a disadvantage\", \n                price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", \n                description: \"A fun game for the family\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", \n                description: \"Gold-plated, diamond-studded King\", price: 1200 }\n        ],\n        orders: []\n    }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"    \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<store></store>\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\n\n@NgModule({\n    imports: [BrowserModule, StoreModule],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@NgModule({\n    providers: [ProductRepository, StaticDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(\n        public id?: number,\n        public name?: string,\n        public category?: string,\n        public description?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: StaticDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) {\n    }\n\n    @Input(\"counterOf\")\n    counter: number;\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.container.clear();\n        for (let i = 0; i < this.counter; i++) {\n            this.container.createEmbeddedView(this.template,\n                new CounterDirectiveContext(i + 1));\n        }\n    }\n}\n\nclass CounterDirectiveContext {\n    constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n    <div class=\"row\">\n  \n      <div class=\"col-3 p-2\">\n        <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n          Home\n        </button>\n        <button *ngFor=\"let cat of categories\" \n             class=\"btn btn-outline-primary btn-block\"\n             [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n          {{cat}}\n        </button>\n      </div>\n  \n      <div class=\"col-9 p-2\">\n        <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n          <h4>\n            {{product.name}}\n            <span class=\"badge badge-pill badge-primary float-right\">\n              {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n            </span>\n          </h4>\n          <div class=\"card-text bg-white p-1\">{{product.description}}</div>\n        </div>\n  \n        <div class=\"form-inline float-left mr-1\">\n          <select class=\"form-control\" [value]=\"productsPerPage\"\n                  (change)=\"changePageSize($event.target.value)\">\n            <option value=\"3\">3 per Page</option>\n            <option value=\"4\">4 per Page</option>\n            <option value=\"6\">6 per Page</option>\n            <option value=\"8\">8 per Page</option>\n          </select>\n        </div>\n  \n        <div class=\"btn-group float-right\">\n          <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n              class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n            {{page}}\n          </button>\n        </div>\n  \n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository) {}\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    //get pageNumbers(): number[] {\n    //    return Array(Math.ceil(this.repository\n    //        .getProducts(this.selectedCategory).length / this.productsPerPage))\n    //            .fill(0).map((x, i) => i + 1);\n    //}\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule],\n    declarations: [StoreComponent, CounterDirective],\n    exports: [StoreComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n</body>\n</html>\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/Beginning of Chapter/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"                         \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/data.js",
    "content": "module.exports = function () {\n    return { \n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", \n                description: \"A boat for one person\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", \n                description: \"Protective and fashionable\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", \n                description: \"FIFA-approved size and weight\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", \n                description: \"Give your playing field a professional touch\", \n                price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", \n                description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", \n                description: \"Improve brain efficiency by 75%\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", \n                description: \"Secretly give your opponent a disadvantage\", \n                price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", \n                description: \"A fun game for the family\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", \n                description: \"Gold-plated, diamond-studded King\", price: 1200 }\n        ],\n        orders: []\n    }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"    \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<router-outlet></router-outlet>\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\nimport { StoreComponent } from \"./store/store.component\";\nimport { CheckoutComponent } from \"./store/checkout.component\";\nimport { CartDetailComponent } from \"./store/cartDetail.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { StoreFirstGuard } from \"./storeFirst.guard\";\n\n@NgModule({\n    imports: [BrowserModule, StoreModule,\n        RouterModule.forRoot([\n            {\n                path: \"store\", component: StoreComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"cart\", component: CartDetailComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"checkout\", component: CheckoutComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            { path: \"**\", redirectTo: \"/store\" }\n        ])],\n    providers: [StoreFirstGuard],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/model/cart.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class Cart {\n    public lines: CartLine[] = [];\n    public itemCount: number = 0;\n    public cartPrice: number = 0;\n\n    addLine(product: Product, quantity: number = 1) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity += quantity;    \n        } else {\n            this.lines.push(new CartLine(product, quantity));\n        }\n        this.recalculate();\n    }\n\n    updateQuantity(product: Product, quantity: number) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity = Number(quantity);\n        }\n        this.recalculate();\n    }\n\n    removeLine(id: number) {\n        let index = this.lines.findIndex(line => line.product.id == id);\n        this.lines.splice(index, 1);\n        this.recalculate();\n    }\n\n    clear() {\n        this.lines = [];\n        this.itemCount = 0;\n        this.cartPrice = 0;\n    }\n\n    private recalculate() {\n        this.itemCount = 0;\n        this.cartPrice = 0;\n        this.lines.forEach(l => {\n            this.itemCount += l.quantity;\n            this.cartPrice += (l.quantity * l.product.price);\n        })\n    }\n}\n\nexport class CartLine {\n    \n    constructor(public product: Product,\n        public quantity: number) {}\n\n    get lineTotal() {\n        return this.quantity * this.product.price;\n    }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { OrderRepository } from \"./order.repository\";\nimport { RestDataSource } from \"./rest.datasource\";\nimport { HttpClientModule } from \"@angular/common/http\";\n\n@NgModule({\n  imports: [HttpClientModule],\n  providers: [ProductRepository, Cart, Order, OrderRepository,\n    { provide: StaticDataSource, useClass: RestDataSource }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/model/order.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Cart } from \"./cart.model\";\n\n@Injectable()\nexport class Order {\n    public id: number;\n    public name: string;\n    public address: string;\n    public city: string;\n    public state: string;\n    public zip: string;\n    public country: string;\n    public shipped: boolean = false;\n\n    constructor(public cart: Cart) { }\n\n    clear() {\n        this.id = null;\n        this.name = this.address = this.city = null;\n        this.state = this.zip = this.country = null;\n        this.shipped = false;\n        this.cart.clear();\n    }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/model/order.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { Order } from \"./order.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class OrderRepository {\n    private orders: Order[] = [];\n\n    constructor(private dataSource: StaticDataSource) {}\n\n    getOrders(): Order[] {\n        return this.orders;\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.dataSource.saveOrder(order);\n    }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(\n        public id?: number,\n        public name?: string,\n        public category?: string,\n        public description?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: StaticDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/model/rest.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\n\nconst PROTOCOL = \"http\";\nconst PORT = 3500;\n\n@Injectable()\nexport class RestDataSource {\n  baseUrl: string;\n\n  constructor(private http: HttpClient) {\n    this.baseUrl = `${PROTOCOL}://${location.hostname}:${PORT}/`;\n  }\n\n  getProducts(): Observable<Product[]> {\n    return this.http.get<Product[]>(this.baseUrl + \"products\");\n  }\n\n  saveOrder(order: Order): Observable<Order> {\n    return this.http.post<Order>(this.baseUrl + \"orders\", order);\n  }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\nimport { Order } from \"./order.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        console.log(JSON.stringify(order));\n        return from([order]);\n    }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/store/cartDetail.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col mt-2\">\n        <h2 class=\"text-center\">Your Cart</h2>\n        <table class=\"table table-bordered table-striped p-2\">\n          <thead>\n            <tr>\n              <th>Quantity</th>\n              <th>Product</th>\n              <th class=\"text-right\">Price</th>\n              <th class=\"text-right\">Subtotal</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr *ngIf=\"cart.lines.length == 0\">\n              <td colspan=\"4\" class=\"text-center\">\n                Your cart is empty\n              </td>\n            </tr>\n            <tr *ngFor=\"let line of cart.lines\">\n              <td>\n                <input type=\"number\" class=\"form-control-sm\"\n                       style=\"width:5em\"\n                       [value]=\"line.quantity\"\n                       (change)=\"cart.updateQuantity(line.product,\n                                  $event.target.value)\" />\n              </td>\n              <td>{{line.product.name}}</td>\n              <td class=\"text-right\">\n                  {{line.product.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n              <td class=\"text-right\">\n                  {{(line.lineTotal) | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n              </td>\n              <td class=\"text-center\">\n                <button class=\"btn btn-sm btn-danger\"\n                        (click)=\"cart.removeLine(line.product.id)\">\n                  Remove\n                </button>\n              </td>\n            </tr>\n          </tbody>\n          <tfoot>\n            <tr>\n              <td colspan=\"3\" class=\"text-right\">Total:</td>\n              <td class=\"text-right\">\n                {{cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n            </tr>\n          </tfoot>\n        </table>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col\">\n      <div class=\"text-center\">\n        <button class=\"btn btn-primary m-1\" routerLink=\"/store\">\n            Continue Shopping\n        </button>\n        <button class=\"btn btn-secondary m-1\" routerLink=\"/checkout\"\n                [disabled]=\"cart.lines.length == 0\">\n          Checkout\n        </button>\n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/store/cartDetail.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    templateUrl: \"cartDetail.component.html\"\n})\nexport class CartDetailComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/store/cartSummary.component.html",
    "content": "<div class=\"float-right\">\n    <small>\n      Your cart:\n      <span *ngIf=\"cart.itemCount > 0\">\n        {{ cart.itemCount }} item(s)\n        {{ cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n      </span>\n      <span *ngIf=\"cart.itemCount == 0\">\n        (empty)\n      </span>\n    </small>\n    <button class=\"btn btn-sm bg-dark text-white\"\n        [disabled]=\"cart.itemCount == 0\" routerLink=\"/cart\">\n      <i class=\"fa fa-shopping-cart\"></i>\n    </button>\n  </div>\n  "
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/store/cartSummary.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    selector: \"cart-summary\",\n    templateUrl: \"cartSummary.component.html\"\n})\nexport class CartSummaryComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/store/checkout.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/store/checkout.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n  </div>\n  \n  <div *ngIf=\"orderSent\" class=\"m-2 text-center\">\n    <h2>Thanks!</h2>\n    <p>Thanks for placing your order.</p>\n    <p>We'll ship your goods as soon as possible.</p>\n    <button class=\"btn btn-primary\" routerLink=\"/store\">Return to Store</button>\n  </div>\n  <form *ngIf=\"!orderSent\" #form=\"ngForm\" novalidate\n        (ngSubmit)=\"submitOrder(form)\" class=\"m-2\">\n    <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" #name=\"ngModel\" name=\"name\"\n              [(ngModel)]=\"order.name\" required />\n      <span *ngIf=\"submitted && name.invalid\" class=\"text-danger\">\n        Please enter your name\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Address</label>\n      <input class=\"form-control\" #address=\"ngModel\" name=\"address\"\n              [(ngModel)]=\"order.address\" required />\n      <span *ngIf=\"submitted && address.invalid\" class=\"text-danger\">\n        Please enter your address\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>City</label>\n      <input class=\"form-control\" #city=\"ngModel\" name=\"city\"\n              [(ngModel)]=\"order.city\" required />\n      <span *ngIf=\"submitted && city.invalid\" class=\"text-danger\">\n        Please enter your city\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>State</label>\n      <input class=\"form-control\" #state=\"ngModel\" name=\"state\"\n              [(ngModel)]=\"order.state\" required />\n      <span *ngIf=\"submitted && state.invalid\" class=\"text-danger\">\n        Please enter your state\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Zip/Postal Code</label>\n      <input class=\"form-control\" #zip=\"ngModel\" name=\"zip\"\n              [(ngModel)]=\"order.zip\" required />\n      <span *ngIf=\"submitted && zip.invalid\" class=\"text-danger\">\n        Please enter your zip/postal code\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Country</label>\n      <input class=\"form-control\" #country=\"ngModel\" name=\"country\"\n              [(ngModel)]=\"order.country\" required />\n      <span *ngIf=\"submitted && country.invalid\" class=\"text-danger\">\n        Please enter your country\n      </span>\n    </div>\n    <div class=\"text-center\">\n      <button class=\"btn btn-secondary m-1\" routerLink=\"/cart\">Back</button>\n      <button class=\"btn btn-primary m-1\" type=\"submit\">Complete Order</button>\n    </div>\n  </form>\n  "
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/store/checkout.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { OrderRepository } from \"../model/order.repository\";\nimport { Order } from \"../model/order.model\";\n\n@Component({\n    templateUrl: \"checkout.component.html\",\n    styleUrls: [\"checkout.component.css\"]\n})\nexport class CheckoutComponent {\n    orderSent: boolean = false;\n    submitted: boolean = false;\n\n    constructor(public repository: OrderRepository,\n                public order: Order) {}\n\n    submitOrder(form: NgForm) {\n        this.submitted = true;\n        if (form.valid) {\n            this.repository.saveOrder(this.order).subscribe(order => {\n                this.order.clear();\n                this.orderSent = true;\n                this.submitted = false;\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) {\n    }\n\n    @Input(\"counterOf\")\n    counter: number;\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.container.clear();\n        for (let i = 0; i < this.counter; i++) {\n            this.container.createEmbeddedView(this.template,\n                new CounterDirectiveContext(i + 1));\n        }\n    }\n}\n\nclass CounterDirectiveContext {\n    constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n        <cart-summary></cart-summary>\n      </div>\n    </div>\n    <div class=\"row\">\n  \n      <div class=\"col-3 p-2\">\n        <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n          Home\n        </button>\n        <button *ngFor=\"let cat of categories\" \n            class=\"btn btn-outline-primary btn-block\"\n            [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n          {{cat}}\n        </button>\n      </div>\n  \n      <div class=\"col-9 p-2\">\n        <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n          <h4>\n            {{product.name}}\n            <span class=\"badge badge-pill badge-primary float-right\">\n              {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n            </span>\n          </h4>\n          <div class=\"card-text bg-white p-1\">\n            {{product.description}}\n            <button class=\"btn btn-success btn-sm float-right\"\n                    (click)=\"addProductToCart(product)\">\n              Add To Cart\n            </button>\n          </div>\n        </div>\n  \n        <div class=\"form-inline float-left mr-1\">\n          <select class=\"form-control\" [value]=\"productsPerPage\"\n                  (change)=\"changePageSize($event.target.value)\">\n            <option value=\"3\">3 per Page</option>\n            <option value=\"4\">4 per Page</option>\n            <option value=\"6\">6 per Page</option>\n            <option value=\"8\">8 per Page</option>\n          </select>\n        </div>\n  \n        <div class=\"btn-group float-right\">\n          <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n              class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n            {{page}}\n          </button>\n        </div>\n  \n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\nimport { Cart } from \"../model/cart.model\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository,\n        private cart: Cart,\n        private router: Router) { }\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    addProductToCart(product: Product) {\n        this.cart.addLine(product);\n        this.router.navigateByUrl(\"/cart\");\n    }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\nimport { CartSummaryComponent } from \"./cartSummary.component\";\nimport { CartDetailComponent } from \"./cartDetail.component\";\nimport { CheckoutComponent } from \"./checkout.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule, RouterModule],\n    declarations: [StoreComponent, CounterDirective, CartSummaryComponent,\n        CartDetailComponent, CheckoutComponent],\n    exports: [StoreComponent, CartDetailComponent, CheckoutComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/app/storeFirst.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { StoreComponent } from \"./store/store.component\";\n\n@Injectable()\nexport class StoreFirstGuard {\n    private firstNavigation = true;\n\n    constructor(private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n        if (this.firstNavigation) {\n            this.firstNavigation = false;\n            if (route.component != StoreComponent) {\n                this.router.navigateByUrl(\"/\");\n                return false;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n</body>\n</html>\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "08 - SportsStore - Orders and Checkout/End of Chapter/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"                         \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/data.js",
    "content": "module.exports = function () {\n    return { \n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", \n                description: \"A boat for one person\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", \n                description: \"Protective and fashionable\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", \n                description: \"FIFA-approved size and weight\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", \n                description: \"Give your playing field a professional touch\", \n                price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", \n                description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", \n                description: \"Improve brain efficiency by 75%\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", \n                description: \"Secretly give your opponent a disadvantage\", \n                price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", \n                description: \"A fun game for the family\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", \n                description: \"Gold-plated, diamond-studded King\", price: 1200 }\n        ],\n        orders: []\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"    \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<router-outlet></router-outlet>\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\nimport { StoreComponent } from \"./store/store.component\";\nimport { CheckoutComponent } from \"./store/checkout.component\";\nimport { CartDetailComponent } from \"./store/cartDetail.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { StoreFirstGuard } from \"./storeFirst.guard\";\n\n@NgModule({\n    imports: [BrowserModule, StoreModule,\n        RouterModule.forRoot([\n            {\n                path: \"store\", component: StoreComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"cart\", component: CartDetailComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"checkout\", component: CheckoutComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            { path: \"**\", redirectTo: \"/store\" }\n        ])],\n    providers: [StoreFirstGuard],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/model/cart.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class Cart {\n    public lines: CartLine[] = [];\n    public itemCount: number = 0;\n    public cartPrice: number = 0;\n\n    addLine(product: Product, quantity: number = 1) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity += quantity;    \n        } else {\n            this.lines.push(new CartLine(product, quantity));\n        }\n        this.recalculate();\n    }\n\n    updateQuantity(product: Product, quantity: number) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity = Number(quantity);\n        }\n        this.recalculate();\n    }\n\n    removeLine(id: number) {\n        let index = this.lines.findIndex(line => line.product.id == id);\n        this.lines.splice(index, 1);\n        this.recalculate();\n    }\n\n    clear() {\n        this.lines = [];\n        this.itemCount = 0;\n        this.cartPrice = 0;\n    }\n\n    private recalculate() {\n        this.itemCount = 0;\n        this.cartPrice = 0;\n        this.lines.forEach(l => {\n            this.itemCount += l.quantity;\n            this.cartPrice += (l.quantity * l.product.price);\n        })\n    }\n}\n\nexport class CartLine {\n    \n    constructor(public product: Product,\n        public quantity: number) {}\n\n    get lineTotal() {\n        return this.quantity * this.product.price;\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { OrderRepository } from \"./order.repository\";\nimport { RestDataSource } from \"./rest.datasource\";\nimport { HttpClientModule } from \"@angular/common/http\";\n\n@NgModule({\n  imports: [HttpClientModule],\n  providers: [ProductRepository, Cart, Order, OrderRepository,\n    { provide: StaticDataSource, useClass: RestDataSource }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/model/order.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Cart } from \"./cart.model\";\n\n@Injectable()\nexport class Order {\n    public id: number;\n    public name: string;\n    public address: string;\n    public city: string;\n    public state: string;\n    public zip: string;\n    public country: string;\n    public shipped: boolean = false;\n\n    constructor(public cart: Cart) { }\n\n    clear() {\n        this.id = null;\n        this.name = this.address = this.city = null;\n        this.state = this.zip = this.country = null;\n        this.shipped = false;\n        this.cart.clear();\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/model/order.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { Order } from \"./order.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class OrderRepository {\n    private orders: Order[] = [];\n\n    constructor(private dataSource: StaticDataSource) {}\n\n    getOrders(): Order[] {\n        return this.orders;\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.dataSource.saveOrder(order);\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(\n        public id?: number,\n        public name?: string,\n        public category?: string,\n        public description?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: StaticDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/model/rest.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\n\nconst PROTOCOL = \"http\";\nconst PORT = 3500;\n\n@Injectable()\nexport class RestDataSource {\n  baseUrl: string;\n\n  constructor(private http: HttpClient) {\n    this.baseUrl = `${PROTOCOL}://${location.hostname}:${PORT}/`;\n  }\n\n  getProducts(): Observable<Product[]> {\n    return this.http.get<Product[]>(this.baseUrl + \"products\");\n  }\n\n  saveOrder(order: Order): Observable<Order> {\n    return this.http.post<Order>(this.baseUrl + \"orders\", order);\n  }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\nimport { Order } from \"./order.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        console.log(JSON.stringify(order));\n        return from([order]);\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/store/cartDetail.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col mt-2\">\n        <h2 class=\"text-center\">Your Cart</h2>\n        <table class=\"table table-bordered table-striped p-2\">\n          <thead>\n            <tr>\n              <th>Quantity</th>\n              <th>Product</th>\n              <th class=\"text-right\">Price</th>\n              <th class=\"text-right\">Subtotal</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr *ngIf=\"cart.lines.length == 0\">\n              <td colspan=\"4\" class=\"text-center\">\n                Your cart is empty\n              </td>\n            </tr>\n            <tr *ngFor=\"let line of cart.lines\">\n              <td>\n                <input type=\"number\" class=\"form-control-sm\"\n                       style=\"width:5em\"\n                       [value]=\"line.quantity\"\n                       (change)=\"cart.updateQuantity(line.product,\n                                  $event.target.value)\" />\n              </td>\n              <td>{{line.product.name}}</td>\n              <td class=\"text-right\">\n                  {{line.product.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n              <td class=\"text-right\">\n                  {{(line.lineTotal) | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n              </td>\n              <td class=\"text-center\">\n                <button class=\"btn btn-sm btn-danger\"\n                        (click)=\"cart.removeLine(line.product.id)\">\n                  Remove\n                </button>\n              </td>\n            </tr>\n          </tbody>\n          <tfoot>\n            <tr>\n              <td colspan=\"3\" class=\"text-right\">Total:</td>\n              <td class=\"text-right\">\n                {{cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n            </tr>\n          </tfoot>\n        </table>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col\">\n      <div class=\"text-center\">\n        <button class=\"btn btn-primary m-1\" routerLink=\"/store\">\n            Continue Shopping\n        </button>\n        <button class=\"btn btn-secondary m-1\" routerLink=\"/checkout\"\n                [disabled]=\"cart.lines.length == 0\">\n          Checkout\n        </button>\n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/store/cartDetail.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    templateUrl: \"cartDetail.component.html\"\n})\nexport class CartDetailComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/store/cartSummary.component.html",
    "content": "<div class=\"float-right\">\n    <small>\n      Your cart:\n      <span *ngIf=\"cart.itemCount > 0\">\n        {{ cart.itemCount }} item(s)\n        {{ cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n      </span>\n      <span *ngIf=\"cart.itemCount == 0\">\n        (empty)\n      </span>\n    </small>\n    <button class=\"btn btn-sm bg-dark text-white\"\n        [disabled]=\"cart.itemCount == 0\" routerLink=\"/cart\">\n      <i class=\"fa fa-shopping-cart\"></i>\n    </button>\n  </div>\n  "
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/store/cartSummary.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    selector: \"cart-summary\",\n    templateUrl: \"cartSummary.component.html\"\n})\nexport class CartSummaryComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/store/checkout.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/store/checkout.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n  </div>\n  \n  <div *ngIf=\"orderSent\" class=\"m-2 text-center\">\n    <h2>Thanks!</h2>\n    <p>Thanks for placing your order.</p>\n    <p>We'll ship your goods as soon as possible.</p>\n    <button class=\"btn btn-primary\" routerLink=\"/store\">Return to Store</button>\n  </div>\n  <form *ngIf=\"!orderSent\" #form=\"ngForm\" novalidate\n        (ngSubmit)=\"submitOrder(form)\" class=\"m-2\">\n    <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" #name=\"ngModel\" name=\"name\"\n              [(ngModel)]=\"order.name\" required />\n      <span *ngIf=\"submitted && name.invalid\" class=\"text-danger\">\n        Please enter your name\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Address</label>\n      <input class=\"form-control\" #address=\"ngModel\" name=\"address\"\n              [(ngModel)]=\"order.address\" required />\n      <span *ngIf=\"submitted && address.invalid\" class=\"text-danger\">\n        Please enter your address\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>City</label>\n      <input class=\"form-control\" #city=\"ngModel\" name=\"city\"\n              [(ngModel)]=\"order.city\" required />\n      <span *ngIf=\"submitted && city.invalid\" class=\"text-danger\">\n        Please enter your city\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>State</label>\n      <input class=\"form-control\" #state=\"ngModel\" name=\"state\"\n              [(ngModel)]=\"order.state\" required />\n      <span *ngIf=\"submitted && state.invalid\" class=\"text-danger\">\n        Please enter your state\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Zip/Postal Code</label>\n      <input class=\"form-control\" #zip=\"ngModel\" name=\"zip\"\n              [(ngModel)]=\"order.zip\" required />\n      <span *ngIf=\"submitted && zip.invalid\" class=\"text-danger\">\n        Please enter your zip/postal code\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Country</label>\n      <input class=\"form-control\" #country=\"ngModel\" name=\"country\"\n              [(ngModel)]=\"order.country\" required />\n      <span *ngIf=\"submitted && country.invalid\" class=\"text-danger\">\n        Please enter your country\n      </span>\n    </div>\n    <div class=\"text-center\">\n      <button class=\"btn btn-secondary m-1\" routerLink=\"/cart\">Back</button>\n      <button class=\"btn btn-primary m-1\" type=\"submit\">Complete Order</button>\n    </div>\n  </form>\n  "
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/store/checkout.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { OrderRepository } from \"../model/order.repository\";\nimport { Order } from \"../model/order.model\";\n\n@Component({\n    templateUrl: \"checkout.component.html\",\n    styleUrls: [\"checkout.component.css\"]\n})\nexport class CheckoutComponent {\n    orderSent: boolean = false;\n    submitted: boolean = false;\n\n    constructor(public repository: OrderRepository,\n                public order: Order) {}\n\n    submitOrder(form: NgForm) {\n        this.submitted = true;\n        if (form.valid) {\n            this.repository.saveOrder(this.order).subscribe(order => {\n                this.order.clear();\n                this.orderSent = true;\n                this.submitted = false;\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) {\n    }\n\n    @Input(\"counterOf\")\n    counter: number;\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.container.clear();\n        for (let i = 0; i < this.counter; i++) {\n            this.container.createEmbeddedView(this.template,\n                new CounterDirectiveContext(i + 1));\n        }\n    }\n}\n\nclass CounterDirectiveContext {\n    constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n        <cart-summary></cart-summary>\n      </div>\n    </div>\n    <div class=\"row\">\n  \n      <div class=\"col-3 p-2\">\n        <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n          Home\n        </button>\n        <button *ngFor=\"let cat of categories\" \n            class=\"btn btn-outline-primary btn-block\"\n            [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n          {{cat}}\n        </button>\n      </div>\n  \n      <div class=\"col-9 p-2\">\n        <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n          <h4>\n            {{product.name}}\n            <span class=\"badge badge-pill badge-primary float-right\">\n              {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n            </span>\n          </h4>\n          <div class=\"card-text bg-white p-1\">\n            {{product.description}}\n            <button class=\"btn btn-success btn-sm float-right\"\n                    (click)=\"addProductToCart(product)\">\n              Add To Cart\n            </button>\n          </div>\n        </div>\n  \n        <div class=\"form-inline float-left mr-1\">\n          <select class=\"form-control\" [value]=\"productsPerPage\"\n                  (change)=\"changePageSize($event.target.value)\">\n            <option value=\"3\">3 per Page</option>\n            <option value=\"4\">4 per Page</option>\n            <option value=\"6\">6 per Page</option>\n            <option value=\"8\">8 per Page</option>\n          </select>\n        </div>\n  \n        <div class=\"btn-group float-right\">\n          <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n              class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n            {{page}}\n          </button>\n        </div>\n  \n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\nimport { Cart } from \"../model/cart.model\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository,\n        private cart: Cart,\n        private router: Router) { }\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    addProductToCart(product: Product) {\n        this.cart.addLine(product);\n        this.router.navigateByUrl(\"/cart\");\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\nimport { CartSummaryComponent } from \"./cartSummary.component\";\nimport { CartDetailComponent } from \"./cartDetail.component\";\nimport { CheckoutComponent } from \"./checkout.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule, RouterModule],\n    declarations: [StoreComponent, CounterDirective, CartSummaryComponent,\n        CartDetailComponent, CheckoutComponent],\n    exports: [StoreComponent, CartDetailComponent, CheckoutComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/app/storeFirst.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { StoreComponent } from \"./store/store.component\";\n\n@Injectable()\nexport class StoreFirstGuard {\n    private firstNavigation = true;\n\n    constructor(private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n        if (this.firstNavigation) {\n            this.firstNavigation = false;\n            if (route.component != StoreComponent) {\n                this.router.navigateByUrl(\"/\");\n                return false;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n</body>\n</html>\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/Beginning of Chapter/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"                         \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/data.js",
    "content": "module.exports = function () {\n    return { \n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", \n                description: \"A boat for one person\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", \n                description: \"Protective and fashionable\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", \n                description: \"FIFA-approved size and weight\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", \n                description: \"Give your playing field a professional touch\", \n                price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", \n                description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", \n                description: \"Improve brain efficiency by 75%\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", \n                description: \"Secretly give your opponent a disadvantage\", \n                price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", \n                description: \"A fun game for the family\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", \n                description: \"Gold-plated, diamond-studded King\", price: 1200 }\n        ],\n        orders: []\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"    \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/admin/admin.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col bg-dark text-white\">\n            <a class=\"navbar-brand\">SPORTS STORE</a>\n        </div>\n    </div>\n    <div class=\"row mt-2\">\n        <div class=\"col-3\">\n            <button class=\"btn btn-outline-info btn-block\"\n                    routerLink=\"/admin/main/products\"\n                    routerLinkActive=\"active\">\n                Products\n            </button>\n            <button class=\"btn btn-outline-info btn-block\"\n                    routerLink=\"/admin/main/orders\"\n                    routerLinkActive=\"active\">\n                Orders\n            </button>\n            <button class=\"btn btn-outline-danger btn-block\" (click)=\"logout()\">\n                Logout\n            </button>\n        </div>\n        <div class=\"col-9\">\n            <router-outlet></router-outlet>\n        </div>\n    </div>\n</div>\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/admin/admin.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Component({\n    templateUrl: \"admin.component.html\"\n})\nexport class AdminComponent {\n\n    constructor(private auth: AuthService,\n                private router: Router) { }\n\n    logout() {\n        this.auth.clear();\n        this.router.navigateByUrl(\"/\");\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/admin/admin.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { RouterModule } from \"@angular/router\";\nimport { AuthComponent } from \"./auth.component\";\nimport { AdminComponent } from \"./admin.component\";\nimport { AuthGuard } from \"./auth.guard\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductEditorComponent } from \"./productEditor.component\";\nimport { OrderTableComponent } from \"./orderTable.component\";\n\nlet routing = RouterModule.forChild([\n    { path: \"auth\", component: AuthComponent },\n    {\n        path: \"main\", component: AdminComponent, canActivate: [AuthGuard],\n        children: [\n            { path: \"products/:mode/:id\", component: ProductEditorComponent },\n            { path: \"products/:mode\", component: ProductEditorComponent },\n            { path: \"products\", component: ProductTableComponent },\n            { path: \"orders\", component: OrderTableComponent },\n            { path: \"**\", redirectTo: \"products\" }\n        ]\n    },\n    { path: \"**\", redirectTo: \"auth\" }\n]);\n\n@NgModule({\n    imports: [CommonModule, FormsModule, routing],\n    providers: [AuthGuard],\n    declarations: [AuthComponent, AdminComponent,\n        ProductTableComponent, ProductEditorComponent, OrderTableComponent]\n})\nexport class AdminModule {}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/admin/auth.component.html",
    "content": "<div class=\"bg-info p-2 text-center text-white\">\n    <h3>SportsStore Admin</h3>\n  </div>\n  <div class=\"bg-danger mt-2 p-2 text-center text-white\"\n       *ngIf=\"errorMessage != null\">\n    {{errorMessage}}\n  </div>\n  <div class=\"p-2\">\n    <form novalidate #form=\"ngForm\" (ngSubmit)=\"authenticate(form)\">\n      <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"username\"\n               [(ngModel)]=\"username\" required />\n      </div>\n      <div class=\"form-group\">\n        <label>Password</label>\n        <input class=\"form-control\" type=\"password\" name=\"password\"\n               [(ngModel)]=\"password\" required />\n      </div>\n      <div class=\"text-center\">\n        <button class=\"btn btn-secondary m-1\" routerLink=\"/\">Go back</button>\n        <button class=\"btn btn-primary m-1\" type=\"submit\">Log In</button>\n      </div>\n    </form>\n  </div>\n  "
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/admin/auth.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Component({\n    templateUrl: \"auth.component.html\"\n})\nexport class AuthComponent {\n    public username: string;\n    public password: string;\n    public errorMessage: string;\n\n    constructor(private router: Router,\n                private auth: AuthService) { }\n\n    authenticate(form: NgForm) {\n        if (form.valid) {\n            this.auth.authenticate(this.username, this.password)\n                .subscribe(response => {\n                    if (response) {\n                        this.router.navigateByUrl(\"/admin/main\");\n                    }\n                    this.errorMessage = \"Authentication Failed\";\n                })\n        } else {\n            this.errorMessage = \"Form Data Invalid\";\n        }\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/admin/auth.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot,\n            Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Injectable()\nexport class AuthGuard {\n\n    constructor(private router: Router,\n                private auth: AuthService) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n\n        if (!this.auth.authenticated) {\n            this.router.navigateByUrl(\"/admin/auth\");\n            return false;\n        } \n        return true;\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/admin/orderTable.component.html",
    "content": "<div class=\"form-check\">\n    <label class=\"form-check-label\">\n    <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"includeShipped\"/>        \n        Display Shipped Orders\n    </label>\n</div>\n<table class=\"table table-sm\">\n    <thead>\n        <tr><th>Name</th><th>Zip</th><th colspan=\"2\">Cart</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *ngIf=\"getOrders().length == 0\">\n            <td colspan=\"5\">There are no orders</td>\n        </tr>\n        <ng-template ngFor let-o [ngForOf]=\"getOrders()\">\n            <tr>\n                <td>{{o.name}}</td><td>{{o.zip}}</td>\n                <th>Product</th><th>Quantity</th>\n                <td>\n                    <button class=\"btn btn-warning m-1\" (click)=\"markShipped(o)\">\n                        Ship\n                    </button>\n                    <button class=\"btn btn-danger\" (click)=\"delete(o.id)\">\n                        Delete\n                    </button>\n                </td>\n            </tr>\n            <tr *ngFor=\"let line of o.cart.lines\">\n                <td colspan=\"2\"></td>\n                <td>{{line.product.name}}</td>\n                <td>{{line.quantity}}</td>\n            </tr>\n        </ng-template>\n    </tbody>\n</table>\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/admin/orderTable.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Order } from \"../model/order.model\";\nimport { OrderRepository } from \"../model/order.repository\";\n\n@Component({\n    templateUrl: \"orderTable.component.html\"\n})\nexport class OrderTableComponent {\n    includeShipped = false;\n\n    constructor(private repository: OrderRepository) {}\n\n    getOrders(): Order[] {\n        return this.repository.getOrders()\n            .filter(o => this.includeShipped || !o.shipped);\n    }\n \n    markShipped(order: Order) {\n        order.shipped = true;\n        this.repository.updateOrder(order);\n    }\n\n    delete(id: number) {\n        this.repository.deleteOrder(id);\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/admin/productEditor.component.html",
    "content": "<div class=\"bg-primary p-2 text-white\" [class.bg-warning]=\"editing\"\n     [class.text-dark]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"save(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" [(ngModel)]=\"product.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" [(ngModel)]=\"product.category\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Description</label>\n        <textarea class=\"form-control\" name=\"description\"\n                  [(ngModel)]=\"product.description\">\n        </textarea>\n    </div>\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" [(ngModel)]=\"product.price\" />\n    </div>\n    <button type=\"submit\" class=\"btn btn-primary m-1\" [class.btn-warning]=\"editing\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary\" routerLink=\"/admin/main/products\">\n        Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/admin/productEditor.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    templateUrl: \"productEditor.component.html\"\n})\nexport class ProductEditorComponent {\n    editing: boolean = false;\n    product: Product = new Product();\n\n    constructor(private repository: ProductRepository,\n                private router: Router,\n                activeRoute: ActivatedRoute) {\n\n        this.editing = activeRoute.snapshot.params[\"mode\"] == \"edit\";\n        if (this.editing) {\n            Object.assign(this.product,\n                repository.getProduct(activeRoute.snapshot.params[\"id\"]));\n        }\n    }\n\n    save(form: NgForm) {\n        this.repository.saveProduct(this.product);\n        this.router.navigateByUrl(\"/admin/main/products\");\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/admin/productTable.component.html",
    "content": "<table class=\"table table-sm table-striped\">\n    <thead>\n        <tr>\n            <th>ID</th><th>Name</th><th>Category</th><th>Price</th>\n            <th></th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr *ngFor=\"let p of getProducts()\">\n            <td>{{p.id}}</td>\n            <td>{{p.name}}</td>\n            <td>{{p.category}}</td>\n            <td>{{p.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}</td>\n            <td>\n                <button class=\"btn btn-sm btn-warning m-1\"\n                        [routerLink]=\"['/admin/main/products/edit', p.id]\">\n                    Edit\n                </button>\n                <button class=\"btn btn-sm btn-danger\" (click)=\"deleteProduct(p.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>\n</table>\n<button class=\"btn btn-primary\" routerLink=\"/admin/main/products/create\">\n    Create New Product\n</button>\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/admin/productTable.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n\n    constructor(private repository: ProductRepository) { }\n\n    getProducts(): Product[] {\n        return this.repository.getProducts();\n    }\n\n    deleteProduct(id: number) {\n        this.repository.deleteProduct(id);\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<router-outlet></router-outlet>\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\nimport { StoreComponent } from \"./store/store.component\";\nimport { CheckoutComponent } from \"./store/checkout.component\";\nimport { CartDetailComponent } from \"./store/cartDetail.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { StoreFirstGuard } from \"./storeFirst.guard\";\n\n@NgModule({\n    imports: [BrowserModule, StoreModule,\n        RouterModule.forRoot([\n            {\n                path: \"store\", component: StoreComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"cart\", component: CartDetailComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"checkout\", component: CheckoutComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"admin\",\n                loadChildren: () => import(\"./admin/admin.module\")\n                    .then(m => m.AdminModule),\n                canActivate: [StoreFirstGuard]\n            },\n            { path: \"**\", redirectTo: \"/store\" }\n        ])],\n    providers: [StoreFirstGuard],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/model/auth.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class AuthService {\n\n    constructor(private datasource: RestDataSource) {}\n\n    authenticate(username: string, password: string): Observable<boolean> {\n        return this.datasource.authenticate(username, password);\n    }\n\n    get authenticated(): boolean {\n        return this.datasource.auth_token != null;\n    }\n\n    clear() {\n        this.datasource.auth_token = null;\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/model/cart.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class Cart {\n    public lines: CartLine[] = [];\n    public itemCount: number = 0;\n    public cartPrice: number = 0;\n\n    addLine(product: Product, quantity: number = 1) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity += quantity;    \n        } else {\n            this.lines.push(new CartLine(product, quantity));\n        }\n        this.recalculate();\n    }\n\n    updateQuantity(product: Product, quantity: number) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity = Number(quantity);\n        }\n        this.recalculate();\n    }\n\n    removeLine(id: number) {\n        let index = this.lines.findIndex(line => line.product.id == id);\n        this.lines.splice(index, 1);\n        this.recalculate();\n    }\n\n    clear() {\n        this.lines = [];\n        this.itemCount = 0;\n        this.cartPrice = 0;\n    }\n\n    private recalculate() {\n        this.itemCount = 0;\n        this.cartPrice = 0;\n        this.lines.forEach(l => {\n            this.itemCount += l.quantity;\n            this.cartPrice += (l.quantity * l.product.price);\n        })\n    }\n}\n\nexport class CartLine {\n    \n    constructor(public product: Product,\n        public quantity: number) {}\n\n    get lineTotal() {\n        return this.quantity * this.product.price;\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { OrderRepository } from \"./order.repository\";\nimport { RestDataSource } from \"./rest.datasource\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { AuthService } from \"./auth.service\";\n\n@NgModule({\n  imports: [HttpClientModule],\n  providers: [ProductRepository, Cart, Order, OrderRepository,\n    { provide: StaticDataSource, useClass: RestDataSource },\n    RestDataSource, AuthService]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/model/order.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Cart } from \"./cart.model\";\n\n@Injectable()\nexport class Order {\n    public id: number;\n    public name: string;\n    public address: string;\n    public city: string;\n    public state: string;\n    public zip: string;\n    public country: string;\n    public shipped: boolean = false;\n\n    constructor(public cart: Cart) { }\n\n    clear() {\n        this.id = null;\n        this.name = this.address = this.city = null;\n        this.state = this.zip = this.country = null;\n        this.shipped = false;\n        this.cart.clear();\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/model/order.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { Order } from \"./order.model\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class OrderRepository {\n    private orders: Order[] = [];\n    private loaded: boolean = false;\n\n    constructor(private dataSource: RestDataSource) { }\n\n    loadOrders() {\n        this.loaded = true;\n        this.dataSource.getOrders()\n            .subscribe(orders => this.orders = orders);\n    }\n\n    getOrders(): Order[] {\n        if (!this.loaded) {\n            this.loadOrders();\n        }\n        return this.orders;\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.dataSource.saveOrder(order);\n    }\n\n    updateOrder(order: Order) {\n        this.dataSource.updateOrder(order).subscribe(order => {\n            this.orders.splice(this.orders.\n                findIndex(o => o.id == order.id), 1, order);\n        });\n    }\n\n    deleteOrder(id: number) {\n        this.dataSource.deleteOrder(id).subscribe(order => {\n            this.orders.splice(this.orders.findIndex(o => id == o.id), 1);\n        });\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(\n        public id?: number,\n        public name?: string,\n        public category?: string,\n        public description?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: RestDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == null || product.id == 0) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product)\n                .subscribe(p => {\n                    this.products.splice(this.products.\n                        findIndex(p => p.id == product.id), 1, product);\n                });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(p => {\n            this.products.splice(this.products.\n                findIndex(p => p.id == id), 1);\n        })\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/model/rest.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { map } from \"rxjs/operators\";\nimport { HttpHeaders } from '@angular/common/http';\n\nconst PROTOCOL = \"http\";\nconst PORT = 3500;\n\n@Injectable()\nexport class RestDataSource {\n    baseUrl: string;\n    auth_token: string;\n\n    constructor(private http: HttpClient) {\n        this.baseUrl = `${PROTOCOL}://${location.hostname}:${PORT}/`;\n    }\n\n    getProducts(): Observable<Product[]> {\n        return this.http.get<Product[]>(this.baseUrl + \"products\");\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.http.post<Order>(this.baseUrl + \"orders\", order);\n    }\n\n    authenticate(user: string, pass: string): Observable<boolean> {\n        return this.http.post<any>(this.baseUrl + \"login\", {\n            name: user, password: pass\n        }).pipe(map(response => {\n            this.auth_token = response.success ? response.token : null;\n            return response.success;\n        }));\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.http.post<Product>(this.baseUrl + \"products\",\n            product, this.getOptions());\n    }\n\n    updateProduct(product): Observable<Product> {\n        return this.http.put<Product>(`${this.baseUrl}products/${product.id}`,\n            product, this.getOptions());\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.http.delete<Product>(`${this.baseUrl}products/${id}`,\n            this.getOptions());\n    }\n\n    getOrders(): Observable<Order[]> {\n        return this.http.get<Order[]>(this.baseUrl + \"orders\", this.getOptions());\n    }\n\n    deleteOrder(id: number): Observable<Order> {\n        return this.http.delete<Order>(`${this.baseUrl}orders/${id}`,\n            this.getOptions());\n    }\n\n    updateOrder(order: Order): Observable<Order> {\n        return this.http.put<Order>(`${this.baseUrl}orders/${order.id}`,\n            order, this.getOptions());\n    }\n\n    private getOptions() {\n        return {\n            headers: new HttpHeaders({\n                \"Authorization\": `Bearer<${this.auth_token}>`\n            })\n        }\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\nimport { Order } from \"./order.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        console.log(JSON.stringify(order));\n        return from([order]);\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/store/cartDetail.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col mt-2\">\n        <h2 class=\"text-center\">Your Cart</h2>\n        <table class=\"table table-bordered table-striped p-2\">\n          <thead>\n            <tr>\n              <th>Quantity</th>\n              <th>Product</th>\n              <th class=\"text-right\">Price</th>\n              <th class=\"text-right\">Subtotal</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr *ngIf=\"cart.lines.length == 0\">\n              <td colspan=\"4\" class=\"text-center\">\n                Your cart is empty\n              </td>\n            </tr>\n            <tr *ngFor=\"let line of cart.lines\">\n              <td>\n                <input type=\"number\" class=\"form-control-sm\"\n                       style=\"width:5em\"\n                       [value]=\"line.quantity\"\n                       (change)=\"cart.updateQuantity(line.product,\n                                  $event.target.value)\" />\n              </td>\n              <td>{{line.product.name}}</td>\n              <td class=\"text-right\">\n                  {{line.product.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n              <td class=\"text-right\">\n                  {{(line.lineTotal) | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n              </td>\n              <td class=\"text-center\">\n                <button class=\"btn btn-sm btn-danger\"\n                        (click)=\"cart.removeLine(line.product.id)\">\n                  Remove\n                </button>\n              </td>\n            </tr>\n          </tbody>\n          <tfoot>\n            <tr>\n              <td colspan=\"3\" class=\"text-right\">Total:</td>\n              <td class=\"text-right\">\n                {{cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n            </tr>\n          </tfoot>\n        </table>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col\">\n      <div class=\"text-center\">\n        <button class=\"btn btn-primary m-1\" routerLink=\"/store\">\n            Continue Shopping\n        </button>\n        <button class=\"btn btn-secondary m-1\" routerLink=\"/checkout\"\n                [disabled]=\"cart.lines.length == 0\">\n          Checkout\n        </button>\n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/store/cartDetail.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    templateUrl: \"cartDetail.component.html\"\n})\nexport class CartDetailComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/store/cartSummary.component.html",
    "content": "<div class=\"float-right\">\n    <small>\n      Your cart:\n      <span *ngIf=\"cart.itemCount > 0\">\n        {{ cart.itemCount }} item(s)\n        {{ cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n      </span>\n      <span *ngIf=\"cart.itemCount == 0\">\n        (empty)\n      </span>\n    </small>\n    <button class=\"btn btn-sm bg-dark text-white\"\n        [disabled]=\"cart.itemCount == 0\" routerLink=\"/cart\">\n      <i class=\"fa fa-shopping-cart\"></i>\n    </button>\n  </div>\n  "
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/store/cartSummary.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    selector: \"cart-summary\",\n    templateUrl: \"cartSummary.component.html\"\n})\nexport class CartSummaryComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/store/checkout.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/store/checkout.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n  </div>\n  \n  <div *ngIf=\"orderSent\" class=\"m-2 text-center\">\n    <h2>Thanks!</h2>\n    <p>Thanks for placing your order.</p>\n    <p>We'll ship your goods as soon as possible.</p>\n    <button class=\"btn btn-primary\" routerLink=\"/store\">Return to Store</button>\n  </div>\n  <form *ngIf=\"!orderSent\" #form=\"ngForm\" novalidate\n        (ngSubmit)=\"submitOrder(form)\" class=\"m-2\">\n    <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" #name=\"ngModel\" name=\"name\"\n              [(ngModel)]=\"order.name\" required />\n      <span *ngIf=\"submitted && name.invalid\" class=\"text-danger\">\n        Please enter your name\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Address</label>\n      <input class=\"form-control\" #address=\"ngModel\" name=\"address\"\n              [(ngModel)]=\"order.address\" required />\n      <span *ngIf=\"submitted && address.invalid\" class=\"text-danger\">\n        Please enter your address\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>City</label>\n      <input class=\"form-control\" #city=\"ngModel\" name=\"city\"\n              [(ngModel)]=\"order.city\" required />\n      <span *ngIf=\"submitted && city.invalid\" class=\"text-danger\">\n        Please enter your city\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>State</label>\n      <input class=\"form-control\" #state=\"ngModel\" name=\"state\"\n              [(ngModel)]=\"order.state\" required />\n      <span *ngIf=\"submitted && state.invalid\" class=\"text-danger\">\n        Please enter your state\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Zip/Postal Code</label>\n      <input class=\"form-control\" #zip=\"ngModel\" name=\"zip\"\n              [(ngModel)]=\"order.zip\" required />\n      <span *ngIf=\"submitted && zip.invalid\" class=\"text-danger\">\n        Please enter your zip/postal code\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Country</label>\n      <input class=\"form-control\" #country=\"ngModel\" name=\"country\"\n              [(ngModel)]=\"order.country\" required />\n      <span *ngIf=\"submitted && country.invalid\" class=\"text-danger\">\n        Please enter your country\n      </span>\n    </div>\n    <div class=\"text-center\">\n      <button class=\"btn btn-secondary m-1\" routerLink=\"/cart\">Back</button>\n      <button class=\"btn btn-primary m-1\" type=\"submit\">Complete Order</button>\n    </div>\n  </form>\n  "
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/store/checkout.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { OrderRepository } from \"../model/order.repository\";\nimport { Order } from \"../model/order.model\";\n\n@Component({\n    templateUrl: \"checkout.component.html\",\n    styleUrls: [\"checkout.component.css\"]\n})\nexport class CheckoutComponent {\n    orderSent: boolean = false;\n    submitted: boolean = false;\n\n    constructor(public repository: OrderRepository,\n                public order: Order) {}\n\n    submitOrder(form: NgForm) {\n        this.submitted = true;\n        if (form.valid) {\n            this.repository.saveOrder(this.order).subscribe(order => {\n                this.order.clear();\n                this.orderSent = true;\n                this.submitted = false;\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) {\n    }\n\n    @Input(\"counterOf\")\n    counter: number;\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.container.clear();\n        for (let i = 0; i < this.counter; i++) {\n            this.container.createEmbeddedView(this.template,\n                new CounterDirectiveContext(i + 1));\n        }\n    }\n}\n\nclass CounterDirectiveContext {\n    constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n        <cart-summary></cart-summary>\n      </div>\n    </div>\n    <div class=\"row\">\n  \n      <div class=\"col-3 p-2\">\n        <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n          Home\n        </button>\n        <button *ngFor=\"let cat of categories\" \n            class=\"btn btn-outline-primary btn-block\"\n            [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n          {{cat}}\n        </button>\n        <button class=\"btn btn-block btn-danger mt-5\" routerLink=\"/admin\">\n            Admin\n          </button>    \n      </div>\n  \n      <div class=\"col-9 p-2\">\n        <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n          <h4>\n            {{product.name}}\n            <span class=\"badge badge-pill badge-primary float-right\">\n              {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n            </span>\n          </h4>\n          <div class=\"card-text bg-white p-1\">\n            {{product.description}}\n            <button class=\"btn btn-success btn-sm float-right\"\n                    (click)=\"addProductToCart(product)\">\n              Add To Cart\n            </button>\n          </div>\n        </div>\n  \n        <div class=\"form-inline float-left mr-1\">\n          <select class=\"form-control\" [value]=\"productsPerPage\"\n                  (change)=\"changePageSize($event.target.value)\">\n            <option value=\"3\">3 per Page</option>\n            <option value=\"4\">4 per Page</option>\n            <option value=\"6\">6 per Page</option>\n            <option value=\"8\">8 per Page</option>\n          </select>\n        </div>\n  \n        <div class=\"btn-group float-right\">\n          <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n              class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n            {{page}}\n          </button>\n        </div>\n  \n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\nimport { Cart } from \"../model/cart.model\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository,\n        private cart: Cart,\n        private router: Router) { }\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    addProductToCart(product: Product) {\n        this.cart.addLine(product);\n        this.router.navigateByUrl(\"/cart\");\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\nimport { CartSummaryComponent } from \"./cartSummary.component\";\nimport { CartDetailComponent } from \"./cartDetail.component\";\nimport { CheckoutComponent } from \"./checkout.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule, RouterModule],\n    declarations: [StoreComponent, CounterDirective, CartSummaryComponent,\n        CartDetailComponent, CheckoutComponent],\n    exports: [StoreComponent, CartDetailComponent, CheckoutComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/app/storeFirst.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { StoreComponent } from \"./store/store.component\";\n\n@Injectable()\nexport class StoreFirstGuard {\n    private firstNavigation = true;\n\n    constructor(private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n        if (this.firstNavigation) {\n            this.firstNavigation = false;\n            if (route.component != StoreComponent) {\n                this.router.navigateByUrl(\"/\");\n                return false;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n</body>\n</html>\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "09 - SportsStore - Admin/End of Chapter/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"                         \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/data.js",
    "content": "module.exports = function () {\n    return { \n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", \n                description: \"A boat for one person\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", \n                description: \"Protective and fashionable\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", \n                description: \"FIFA-approved size and weight\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", \n                description: \"Give your playing field a professional touch\", \n                price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", \n                description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", \n                description: \"Improve brain efficiency by 75%\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", \n                description: \"Secretly give your opponent a disadvantage\", \n                price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", \n                description: \"A fun game for the family\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", \n                description: \"Gold-plated, diamond-studded King\", price: 1200 }\n        ],\n        orders: []\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"    \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/admin/admin.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col bg-dark text-white\">\n            <a class=\"navbar-brand\">SPORTS STORE</a>\n        </div>\n    </div>\n    <div class=\"row mt-2\">\n        <div class=\"col-3\">\n            <button class=\"btn btn-outline-info btn-block\"\n                    routerLink=\"/admin/main/products\"\n                    routerLinkActive=\"active\">\n                Products\n            </button>\n            <button class=\"btn btn-outline-info btn-block\"\n                    routerLink=\"/admin/main/orders\"\n                    routerLinkActive=\"active\">\n                Orders\n            </button>\n            <button class=\"btn btn-outline-danger btn-block\" (click)=\"logout()\">\n                Logout\n            </button>\n        </div>\n        <div class=\"col-9\">\n            <router-outlet></router-outlet>\n        </div>\n    </div>\n</div>\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/admin/admin.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Component({\n    templateUrl: \"admin.component.html\"\n})\nexport class AdminComponent {\n\n    constructor(private auth: AuthService,\n                private router: Router) { }\n\n    logout() {\n        this.auth.clear();\n        this.router.navigateByUrl(\"/\");\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/admin/admin.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { RouterModule } from \"@angular/router\";\nimport { AuthComponent } from \"./auth.component\";\nimport { AdminComponent } from \"./admin.component\";\nimport { AuthGuard } from \"./auth.guard\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductEditorComponent } from \"./productEditor.component\";\nimport { OrderTableComponent } from \"./orderTable.component\";\n\nlet routing = RouterModule.forChild([\n    { path: \"auth\", component: AuthComponent },\n    {\n        path: \"main\", component: AdminComponent, canActivate: [AuthGuard],\n        children: [\n            { path: \"products/:mode/:id\", component: ProductEditorComponent },\n            { path: \"products/:mode\", component: ProductEditorComponent },\n            { path: \"products\", component: ProductTableComponent },\n            { path: \"orders\", component: OrderTableComponent },\n            { path: \"**\", redirectTo: \"products\" }\n        ]\n    },\n    { path: \"**\", redirectTo: \"auth\" }\n]);\n\n@NgModule({\n    imports: [CommonModule, FormsModule, routing],\n    providers: [AuthGuard],\n    declarations: [AuthComponent, AdminComponent,\n        ProductTableComponent, ProductEditorComponent, OrderTableComponent]\n})\nexport class AdminModule {}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/admin/auth.component.html",
    "content": "<div class=\"bg-info p-2 text-center text-white\">\n    <h3>SportsStore Admin</h3>\n  </div>\n  <div class=\"bg-danger mt-2 p-2 text-center text-white\"\n       *ngIf=\"errorMessage != null\">\n    {{errorMessage}}\n  </div>\n  <div class=\"p-2\">\n    <form novalidate #form=\"ngForm\" (ngSubmit)=\"authenticate(form)\">\n      <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"username\"\n               [(ngModel)]=\"username\" required />\n      </div>\n      <div class=\"form-group\">\n        <label>Password</label>\n        <input class=\"form-control\" type=\"password\" name=\"password\"\n               [(ngModel)]=\"password\" required />\n      </div>\n      <div class=\"text-center\">\n        <button class=\"btn btn-secondary m-1\" routerLink=\"/\">Go back</button>\n        <button class=\"btn btn-primary m-1\" type=\"submit\">Log In</button>\n      </div>\n    </form>\n  </div>\n  "
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/admin/auth.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Component({\n    templateUrl: \"auth.component.html\"\n})\nexport class AuthComponent {\n    public username: string;\n    public password: string;\n    public errorMessage: string;\n\n    constructor(private router: Router,\n                private auth: AuthService) { }\n\n    authenticate(form: NgForm) {\n        if (form.valid) {\n            this.auth.authenticate(this.username, this.password)\n                .subscribe(response => {\n                    if (response) {\n                        this.router.navigateByUrl(\"/admin/main\");\n                    }\n                    this.errorMessage = \"Authentication Failed\";\n                })\n        } else {\n            this.errorMessage = \"Form Data Invalid\";\n        }\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/admin/auth.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot,\n            Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Injectable()\nexport class AuthGuard {\n\n    constructor(private router: Router,\n                private auth: AuthService) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n\n        if (!this.auth.authenticated) {\n            this.router.navigateByUrl(\"/admin/auth\");\n            return false;\n        } \n        return true;\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/admin/orderTable.component.html",
    "content": "<div class=\"form-check\">\n    <label class=\"form-check-label\">\n    <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"includeShipped\"/>        \n        Display Shipped Orders\n    </label>\n</div>\n<table class=\"table table-sm\">\n    <thead>\n        <tr><th>Name</th><th>Zip</th><th colspan=\"2\">Cart</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *ngIf=\"getOrders().length == 0\">\n            <td colspan=\"5\">There are no orders</td>\n        </tr>\n        <ng-template ngFor let-o [ngForOf]=\"getOrders()\">\n            <tr>\n                <td>{{o.name}}</td><td>{{o.zip}}</td>\n                <th>Product</th><th>Quantity</th>\n                <td>\n                    <button class=\"btn btn-warning m-1\" (click)=\"markShipped(o)\">\n                        Ship\n                    </button>\n                    <button class=\"btn btn-danger\" (click)=\"delete(o.id)\">\n                        Delete\n                    </button>\n                </td>\n            </tr>\n            <tr *ngFor=\"let line of o.cart.lines\">\n                <td colspan=\"2\"></td>\n                <td>{{line.product.name}}</td>\n                <td>{{line.quantity}}</td>\n            </tr>\n        </ng-template>\n    </tbody>\n</table>\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/admin/orderTable.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Order } from \"../model/order.model\";\nimport { OrderRepository } from \"../model/order.repository\";\n\n@Component({\n    templateUrl: \"orderTable.component.html\"\n})\nexport class OrderTableComponent {\n    includeShipped = false;\n\n    constructor(private repository: OrderRepository) {}\n\n    getOrders(): Order[] {\n        return this.repository.getOrders()\n            .filter(o => this.includeShipped || !o.shipped);\n    }\n \n    markShipped(order: Order) {\n        order.shipped = true;\n        this.repository.updateOrder(order);\n    }\n\n    delete(id: number) {\n        this.repository.deleteOrder(id);\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/admin/productEditor.component.html",
    "content": "<div class=\"bg-primary p-2 text-white\" [class.bg-warning]=\"editing\"\n     [class.text-dark]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"save(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" [(ngModel)]=\"product.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" [(ngModel)]=\"product.category\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Description</label>\n        <textarea class=\"form-control\" name=\"description\"\n                  [(ngModel)]=\"product.description\">\n        </textarea>\n    </div>\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" [(ngModel)]=\"product.price\" />\n    </div>\n    <button type=\"submit\" class=\"btn btn-primary m-1\" [class.btn-warning]=\"editing\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary\" routerLink=\"/admin/main/products\">\n        Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/admin/productEditor.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    templateUrl: \"productEditor.component.html\"\n})\nexport class ProductEditorComponent {\n    editing: boolean = false;\n    product: Product = new Product();\n\n    constructor(private repository: ProductRepository,\n                private router: Router,\n                activeRoute: ActivatedRoute) {\n\n        this.editing = activeRoute.snapshot.params[\"mode\"] == \"edit\";\n        if (this.editing) {\n            Object.assign(this.product,\n                repository.getProduct(activeRoute.snapshot.params[\"id\"]));\n        }\n    }\n\n    save(form: NgForm) {\n        this.repository.saveProduct(this.product);\n        this.router.navigateByUrl(\"/admin/main/products\");\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/admin/productTable.component.html",
    "content": "<table class=\"table table-sm table-striped\">\n    <thead>\n        <tr>\n            <th>ID</th><th>Name</th><th>Category</th><th>Price</th>\n            <th></th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr *ngFor=\"let p of getProducts()\">\n            <td>{{p.id}}</td>\n            <td>{{p.name}}</td>\n            <td>{{p.category}}</td>\n            <td>{{p.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}</td>\n            <td>\n                <button class=\"btn btn-sm btn-warning m-1\"\n                        [routerLink]=\"['/admin/main/products/edit', p.id]\">\n                    Edit\n                </button>\n                <button class=\"btn btn-sm btn-danger\" (click)=\"deleteProduct(p.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>\n</table>\n<button class=\"btn btn-primary\" routerLink=\"/admin/main/products/create\">\n    Create New Product\n</button>\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/admin/productTable.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n\n    constructor(private repository: ProductRepository) { }\n\n    getProducts(): Product[] {\n        return this.repository.getProducts();\n    }\n\n    deleteProduct(id: number) {\n        this.repository.deleteProduct(id);\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<router-outlet></router-outlet>\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\nimport { StoreComponent } from \"./store/store.component\";\nimport { CheckoutComponent } from \"./store/checkout.component\";\nimport { CartDetailComponent } from \"./store/cartDetail.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { StoreFirstGuard } from \"./storeFirst.guard\";\n\n@NgModule({\n    imports: [BrowserModule, StoreModule,\n        RouterModule.forRoot([\n            {\n                path: \"store\", component: StoreComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"cart\", component: CartDetailComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"checkout\", component: CheckoutComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"admin\",\n                loadChildren: () => import(\"./admin/admin.module\")\n                    .then(m => m.AdminModule),\n                canActivate: [StoreFirstGuard]\n            },\n            { path: \"**\", redirectTo: \"/store\" }\n        ])],\n    providers: [StoreFirstGuard],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/model/auth.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class AuthService {\n\n    constructor(private datasource: RestDataSource) {}\n\n    authenticate(username: string, password: string): Observable<boolean> {\n        return this.datasource.authenticate(username, password);\n    }\n\n    get authenticated(): boolean {\n        return this.datasource.auth_token != null;\n    }\n\n    clear() {\n        this.datasource.auth_token = null;\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/model/cart.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class Cart {\n    public lines: CartLine[] = [];\n    public itemCount: number = 0;\n    public cartPrice: number = 0;\n\n    addLine(product: Product, quantity: number = 1) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity += quantity;    \n        } else {\n            this.lines.push(new CartLine(product, quantity));\n        }\n        this.recalculate();\n    }\n\n    updateQuantity(product: Product, quantity: number) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity = Number(quantity);\n        }\n        this.recalculate();\n    }\n\n    removeLine(id: number) {\n        let index = this.lines.findIndex(line => line.product.id == id);\n        this.lines.splice(index, 1);\n        this.recalculate();\n    }\n\n    clear() {\n        this.lines = [];\n        this.itemCount = 0;\n        this.cartPrice = 0;\n    }\n\n    private recalculate() {\n        this.itemCount = 0;\n        this.cartPrice = 0;\n        this.lines.forEach(l => {\n            this.itemCount += l.quantity;\n            this.cartPrice += (l.quantity * l.product.price);\n        })\n    }\n}\n\nexport class CartLine {\n    \n    constructor(public product: Product,\n        public quantity: number) {}\n\n    get lineTotal() {\n        return this.quantity * this.product.price;\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { OrderRepository } from \"./order.repository\";\nimport { RestDataSource } from \"./rest.datasource\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { AuthService } from \"./auth.service\";\n\n@NgModule({\n  imports: [HttpClientModule],\n  providers: [ProductRepository, Cart, Order, OrderRepository,\n    { provide: StaticDataSource, useClass: RestDataSource },\n    RestDataSource, AuthService]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/model/order.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Cart } from \"./cart.model\";\n\n@Injectable()\nexport class Order {\n    public id: number;\n    public name: string;\n    public address: string;\n    public city: string;\n    public state: string;\n    public zip: string;\n    public country: string;\n    public shipped: boolean = false;\n\n    constructor(public cart: Cart) { }\n\n    clear() {\n        this.id = null;\n        this.name = this.address = this.city = null;\n        this.state = this.zip = this.country = null;\n        this.shipped = false;\n        this.cart.clear();\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/model/order.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { Order } from \"./order.model\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class OrderRepository {\n    private orders: Order[] = [];\n    private loaded: boolean = false;\n\n    constructor(private dataSource: RestDataSource) { }\n\n    loadOrders() {\n        this.loaded = true;\n        this.dataSource.getOrders()\n            .subscribe(orders => this.orders = orders);\n    }\n\n    getOrders(): Order[] {\n        if (!this.loaded) {\n            this.loadOrders();\n        }\n        return this.orders;\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.dataSource.saveOrder(order);\n    }\n\n    updateOrder(order: Order) {\n        this.dataSource.updateOrder(order).subscribe(order => {\n            this.orders.splice(this.orders.\n                findIndex(o => o.id == order.id), 1, order);\n        });\n    }\n\n    deleteOrder(id: number) {\n        this.dataSource.deleteOrder(id).subscribe(order => {\n            this.orders.splice(this.orders.findIndex(o => id == o.id), 1);\n        });\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(\n        public id?: number,\n        public name?: string,\n        public category?: string,\n        public description?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: RestDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == null || product.id == 0) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product)\n                .subscribe(p => {\n                    this.products.splice(this.products.\n                        findIndex(p => p.id == product.id), 1, product);\n                });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(p => {\n            this.products.splice(this.products.\n                findIndex(p => p.id == id), 1);\n        })\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/model/rest.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { map } from \"rxjs/operators\";\nimport { HttpHeaders } from '@angular/common/http';\n\nconst PROTOCOL = \"http\";\nconst PORT = 3500;\n\n@Injectable()\nexport class RestDataSource {\n    baseUrl: string;\n    auth_token: string;\n\n    constructor(private http: HttpClient) {\n        this.baseUrl = `${PROTOCOL}://${location.hostname}:${PORT}/`;\n    }\n\n    getProducts(): Observable<Product[]> {\n        return this.http.get<Product[]>(this.baseUrl + \"products\");\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.http.post<Order>(this.baseUrl + \"orders\", order);\n    }\n\n    authenticate(user: string, pass: string): Observable<boolean> {\n        return this.http.post<any>(this.baseUrl + \"login\", {\n            name: user, password: pass\n        }).pipe(map(response => {\n            this.auth_token = response.success ? response.token : null;\n            return response.success;\n        }));\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.http.post<Product>(this.baseUrl + \"products\",\n            product, this.getOptions());\n    }\n\n    updateProduct(product): Observable<Product> {\n        return this.http.put<Product>(`${this.baseUrl}products/${product.id}`,\n            product, this.getOptions());\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.http.delete<Product>(`${this.baseUrl}products/${id}`,\n            this.getOptions());\n    }\n\n    getOrders(): Observable<Order[]> {\n        return this.http.get<Order[]>(this.baseUrl + \"orders\", this.getOptions());\n    }\n\n    deleteOrder(id: number): Observable<Order> {\n        return this.http.delete<Order>(`${this.baseUrl}orders/${id}`,\n            this.getOptions());\n    }\n\n    updateOrder(order: Order): Observable<Order> {\n        return this.http.put<Order>(`${this.baseUrl}orders/${order.id}`,\n            order, this.getOptions());\n    }\n\n    private getOptions() {\n        return {\n            headers: new HttpHeaders({\n                \"Authorization\": `Bearer<${this.auth_token}>`\n            })\n        }\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\nimport { Order } from \"./order.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        console.log(JSON.stringify(order));\n        return from([order]);\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/store/cartDetail.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col mt-2\">\n        <h2 class=\"text-center\">Your Cart</h2>\n        <table class=\"table table-bordered table-striped p-2\">\n          <thead>\n            <tr>\n              <th>Quantity</th>\n              <th>Product</th>\n              <th class=\"text-right\">Price</th>\n              <th class=\"text-right\">Subtotal</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr *ngIf=\"cart.lines.length == 0\">\n              <td colspan=\"4\" class=\"text-center\">\n                Your cart is empty\n              </td>\n            </tr>\n            <tr *ngFor=\"let line of cart.lines\">\n              <td>\n                <input type=\"number\" class=\"form-control-sm\"\n                       style=\"width:5em\"\n                       [value]=\"line.quantity\"\n                       (change)=\"cart.updateQuantity(line.product,\n                                  $event.target.value)\" />\n              </td>\n              <td>{{line.product.name}}</td>\n              <td class=\"text-right\">\n                  {{line.product.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n              <td class=\"text-right\">\n                  {{(line.lineTotal) | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n              </td>\n              <td class=\"text-center\">\n                <button class=\"btn btn-sm btn-danger\"\n                        (click)=\"cart.removeLine(line.product.id)\">\n                  Remove\n                </button>\n              </td>\n            </tr>\n          </tbody>\n          <tfoot>\n            <tr>\n              <td colspan=\"3\" class=\"text-right\">Total:</td>\n              <td class=\"text-right\">\n                {{cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n            </tr>\n          </tfoot>\n        </table>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col\">\n      <div class=\"text-center\">\n        <button class=\"btn btn-primary m-1\" routerLink=\"/store\">\n            Continue Shopping\n        </button>\n        <button class=\"btn btn-secondary m-1\" routerLink=\"/checkout\"\n                [disabled]=\"cart.lines.length == 0\">\n          Checkout\n        </button>\n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/store/cartDetail.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    templateUrl: \"cartDetail.component.html\"\n})\nexport class CartDetailComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/store/cartSummary.component.html",
    "content": "<div class=\"float-right\">\n    <small>\n      Your cart:\n      <span *ngIf=\"cart.itemCount > 0\">\n        {{ cart.itemCount }} item(s)\n        {{ cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n      </span>\n      <span *ngIf=\"cart.itemCount == 0\">\n        (empty)\n      </span>\n    </small>\n    <button class=\"btn btn-sm bg-dark text-white\"\n        [disabled]=\"cart.itemCount == 0\" routerLink=\"/cart\">\n      <i class=\"fa fa-shopping-cart\"></i>\n    </button>\n  </div>\n  "
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/store/cartSummary.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    selector: \"cart-summary\",\n    templateUrl: \"cartSummary.component.html\"\n})\nexport class CartSummaryComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/store/checkout.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/store/checkout.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n  </div>\n  \n  <div *ngIf=\"orderSent\" class=\"m-2 text-center\">\n    <h2>Thanks!</h2>\n    <p>Thanks for placing your order.</p>\n    <p>We'll ship your goods as soon as possible.</p>\n    <button class=\"btn btn-primary\" routerLink=\"/store\">Return to Store</button>\n  </div>\n  <form *ngIf=\"!orderSent\" #form=\"ngForm\" novalidate\n        (ngSubmit)=\"submitOrder(form)\" class=\"m-2\">\n    <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" #name=\"ngModel\" name=\"name\"\n              [(ngModel)]=\"order.name\" required />\n      <span *ngIf=\"submitted && name.invalid\" class=\"text-danger\">\n        Please enter your name\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Address</label>\n      <input class=\"form-control\" #address=\"ngModel\" name=\"address\"\n              [(ngModel)]=\"order.address\" required />\n      <span *ngIf=\"submitted && address.invalid\" class=\"text-danger\">\n        Please enter your address\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>City</label>\n      <input class=\"form-control\" #city=\"ngModel\" name=\"city\"\n              [(ngModel)]=\"order.city\" required />\n      <span *ngIf=\"submitted && city.invalid\" class=\"text-danger\">\n        Please enter your city\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>State</label>\n      <input class=\"form-control\" #state=\"ngModel\" name=\"state\"\n              [(ngModel)]=\"order.state\" required />\n      <span *ngIf=\"submitted && state.invalid\" class=\"text-danger\">\n        Please enter your state\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Zip/Postal Code</label>\n      <input class=\"form-control\" #zip=\"ngModel\" name=\"zip\"\n              [(ngModel)]=\"order.zip\" required />\n      <span *ngIf=\"submitted && zip.invalid\" class=\"text-danger\">\n        Please enter your zip/postal code\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Country</label>\n      <input class=\"form-control\" #country=\"ngModel\" name=\"country\"\n              [(ngModel)]=\"order.country\" required />\n      <span *ngIf=\"submitted && country.invalid\" class=\"text-danger\">\n        Please enter your country\n      </span>\n    </div>\n    <div class=\"text-center\">\n      <button class=\"btn btn-secondary m-1\" routerLink=\"/cart\">Back</button>\n      <button class=\"btn btn-primary m-1\" type=\"submit\">Complete Order</button>\n    </div>\n  </form>\n  "
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/store/checkout.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { OrderRepository } from \"../model/order.repository\";\nimport { Order } from \"../model/order.model\";\n\n@Component({\n    templateUrl: \"checkout.component.html\",\n    styleUrls: [\"checkout.component.css\"]\n})\nexport class CheckoutComponent {\n    orderSent: boolean = false;\n    submitted: boolean = false;\n\n    constructor(public repository: OrderRepository,\n                public order: Order) {}\n\n    submitOrder(form: NgForm) {\n        this.submitted = true;\n        if (form.valid) {\n            this.repository.saveOrder(this.order).subscribe(order => {\n                this.order.clear();\n                this.orderSent = true;\n                this.submitted = false;\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) {\n    }\n\n    @Input(\"counterOf\")\n    counter: number;\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.container.clear();\n        for (let i = 0; i < this.counter; i++) {\n            this.container.createEmbeddedView(this.template,\n                new CounterDirectiveContext(i + 1));\n        }\n    }\n}\n\nclass CounterDirectiveContext {\n    constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n        <cart-summary></cart-summary>\n      </div>\n    </div>\n    <div class=\"row\">\n  \n      <div class=\"col-3 p-2\">\n        <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n          Home\n        </button>\n        <button *ngFor=\"let cat of categories\" \n            class=\"btn btn-outline-primary btn-block\"\n            [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n          {{cat}}\n        </button>\n        <button class=\"btn btn-block btn-danger mt-5\" routerLink=\"/admin\">\n            Admin\n          </button>    \n      </div>\n  \n      <div class=\"col-9 p-2\">\n        <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n          <h4>\n            {{product.name}}\n            <span class=\"badge badge-pill badge-primary float-right\">\n              {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n            </span>\n          </h4>\n          <div class=\"card-text bg-white p-1\">\n            {{product.description}}\n            <button class=\"btn btn-success btn-sm float-right\"\n                    (click)=\"addProductToCart(product)\">\n              Add To Cart\n            </button>\n          </div>\n        </div>\n  \n        <div class=\"form-inline float-left mr-1\">\n          <select class=\"form-control\" [value]=\"productsPerPage\"\n                  (change)=\"changePageSize($event.target.value)\">\n            <option value=\"3\">3 per Page</option>\n            <option value=\"4\">4 per Page</option>\n            <option value=\"6\">6 per Page</option>\n            <option value=\"8\">8 per Page</option>\n          </select>\n        </div>\n  \n        <div class=\"btn-group float-right\">\n          <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n              class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n            {{page}}\n          </button>\n        </div>\n  \n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\nimport { Cart } from \"../model/cart.model\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository,\n        private cart: Cart,\n        private router: Router) { }\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    addProductToCart(product: Product) {\n        this.cart.addLine(product);\n        this.router.navigateByUrl(\"/cart\");\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\nimport { CartSummaryComponent } from \"./cartSummary.component\";\nimport { CartDetailComponent } from \"./cartDetail.component\";\nimport { CheckoutComponent } from \"./checkout.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule, RouterModule],\n    declarations: [StoreComponent, CounterDirective, CartSummaryComponent,\n        CartDetailComponent, CheckoutComponent],\n    exports: [StoreComponent, CartDetailComponent, CheckoutComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/app/storeFirst.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { StoreComponent } from \"./store/store.component\";\n\n@Injectable()\nexport class StoreFirstGuard {\n    private firstNavigation = true;\n\n    constructor(private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n        if (this.firstNavigation) {\n            this.firstNavigation = false;\n            if (route.component != StoreComponent) {\n                this.router.navigateByUrl(\"/\");\n                return false;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n</body>\n</html>\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/Beginning of Chapter/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/.dockerignore",
    "content": "node_modules"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/Dockerfile",
    "content": "FROM node:12.15.0\n\nRUN mkdir -p /usr/src/sportsstore\n\nCOPY dist/SportsStore /usr/src/sportsstore/dist/SportsStore\nCOPY ssl /usr/src/sportsstore/ssl\n\nCOPY authMiddleware.js /usr/src/sportsstore/\nCOPY serverdata.json /usr/src/sportsstore/\nCOPY server.js /usr/src/sportsstore/server.js\nCOPY deploy-package.json /usr/src/sportsstore/package.json\n\nWORKDIR /usr/src/sportsstore\n\nRUN npm install\n\nEXPOSE 80\n\nCMD [\"node\", \"server.js\"]\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\",\n              \"src/manifest.webmanifest\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"                         \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ],\n              \"serviceWorker\": true,\n              \"ngswConfigPath\": \"ngsw-config.json\"\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\",\n              \"src/manifest.webmanifest\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/data.js",
    "content": "module.exports = function () {\n    return { \n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", \n                description: \"A boat for one person\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", \n                description: \"Protective and fashionable\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", \n                description: \"FIFA-approved size and weight\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", \n                description: \"Give your playing field a professional touch\", \n                price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", \n                description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", \n                description: \"Improve brain efficiency by 75%\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", \n                description: \"Secretly give your opponent a disadvantage\", \n                price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", \n                description: \"A fun game for the family\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", \n                description: \"Gold-plated, diamond-studded King\", price: 1200 }\n        ],\n        orders: []\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/deploy-package.json",
    "content": "{\n    \"dependencies\": {\n        \"@fortawesome/fontawesome-free\": \"5.12.1\",\n        \"bootstrap\": \"4.4.1\"\n    },\n  \n    \"devDependencies\": {\n      \"json-server\": \"0.16.0\",\n      \"jsonwebtoken\": \"8.5.1\",\n      \"express\": \"4.17.1\",\n      \"https\": \"1.0.0\",\n      \"connect-history-api-fallback\": \"1.6.0\"       \n    },\n  \n    \"scripts\": {\n      \"start\":  \"node server.js\"\n    }\n  }\n  "
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/forms\nMIT\n\n@angular/platform-browser\nMIT\n\n@angular/router\nMIT\n\n@angular/service-worker\nMIT\n\n@fortawesome/fontawesome-free\n(CC-BY-4.0 AND OFL-1.1 AND MIT)\nFont Awesome Free License\n-------------------------\n\nFont Awesome Free is free, open source, and GPL friendly. You can use it for\ncommercial projects, open source projects, or really almost whatever you want.\nFull Font Awesome Free license: https://fontawesome.com/license/free.\n\n# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)\nIn the Font Awesome Free download, the CC BY 4.0 license applies to all icons\npackaged as SVG and JS file types.\n\n# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)\nIn the Font Awesome Free download, the SIL OFL license applies to all icons\npackaged as web and desktop font files.\n\n# Code: MIT License (https://opensource.org/licenses/MIT)\nIn the Font Awesome Free download, the MIT license applies to all non-font and\nnon-icon files.\n\n# Attribution\nAttribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font\nAwesome Free files already contain embedded comments with sufficient\nattribution, so you shouldn't need to do anything additional when using these\nfiles normally.\n\nWe've kept attribution comments terse, so we ask that you do not actively work\nto remove them from files, especially code. They're a great way for folks to\nlearn about Font Awesome.\n\n# Brand Icons\nAll brand icons are trademarks of their respective owners. The use of these\ntrademarks does not indicate endorsement of the trademark holder by Font\nAwesome, nor vice versa. **Please do not use brand logos for any purpose except\nto represent the company, product, or service to which they refer.**\n\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/5-es2015.b2d2985f67757f20fa32.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{jkDv:function(t,e,n){\"use strict\";n.r(e);var r=n(\"ofXK\"),b=n(\"3Pt+\"),o=n(\"tyNb\"),c=n(\"fXoL\"),i=n(\"hO0c\");function a(t,e){if(1&t&&(c.Mb(0,\"div\",11),c.hc(1),c.Lb()),2&t){const t=c.Wb();c.zb(1),c.jc(\" \",t.errorMessage,\" \")}}let d=(()=>{class t{constructor(t,e){this.router=t,this.auth=e}authenticate(t){t.valid?this.auth.authenticate(this.username,this.password).subscribe(t=>{t&&this.router.navigateByUrl(\"/admin/main\"),this.errorMessage=\"Authentication Failed\"}):this.errorMessage=\"Form Data Invalid\"}}return t.\\u0275fac=function(e){return new(e||t)(c.Jb(o.b),c.Jb(i.a))},t.\\u0275cmp=c.Db({type:t,selectors:[[\"ng-component\"]],decls:20,vars:3,consts:[[1,\"bg-info\",\"p-2\",\"text-center\",\"text-white\"],[\"class\",\"bg-danger mt-2 p-2 text-center text-white\",4,\"ngIf\"],[1,\"p-2\"],[\"novalidate\",\"\",3,\"ngSubmit\"],[\"form\",\"ngForm\"],[1,\"form-group\"],[\"name\",\"username\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"type\",\"password\",\"name\",\"password\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[1,\"text-center\"],[\"routerLink\",\"/\",1,\"btn\",\"btn-secondary\",\"m-1\"],[\"type\",\"submit\",1,\"btn\",\"btn-primary\",\"m-1\"],[1,\"bg-danger\",\"mt-2\",\"p-2\",\"text-center\",\"text-white\"]],template:function(t,e){if(1&t){const t=c.Nb();c.Mb(0,\"div\",0),c.Mb(1,\"h3\"),c.hc(2,\"SportsStore Admin\"),c.Lb(),c.Lb(),c.gc(3,a,2,1,\"div\",1),c.Mb(4,\"div\",2),c.Mb(5,\"form\",3,4),c.Ub(\"ngSubmit\",(function(n){c.dc(t);const r=c.cc(6);return e.authenticate(r)})),c.Mb(7,\"div\",5),c.Mb(8,\"label\"),c.hc(9,\"Name\"),c.Lb(),c.Mb(10,\"input\",6),c.Ub(\"ngModelChange\",(function(t){return e.username=t})),c.Lb(),c.Lb(),c.Mb(11,\"div\",5),c.Mb(12,\"label\"),c.hc(13,\"Password\"),c.Lb(),c.Mb(14,\"input\",7),c.Ub(\"ngModelChange\",(function(t){return e.password=t})),c.Lb(),c.Lb(),c.Mb(15,\"div\",8),c.Mb(16,\"button\",9),c.hc(17,\"Go back\"),c.Lb(),c.Mb(18,\"button\",10),c.hc(19,\"Log In\"),c.Lb(),c.Lb(),c.Lb(),c.Lb()}2&t&&(c.zb(3),c.Zb(\"ngIf\",null!=e.errorMessage),c.zb(7),c.Zb(\"ngModel\",e.username),c.zb(4),c.Zb(\"ngModel\",e.password))},directives:[r.j,b.k,b.e,b.f,b.b,b.i,b.d,b.g,o.c],encapsulation:2}),t})(),s=(()=>{class t{constructor(t,e){this.auth=t,this.router=e}logout(){this.auth.clear(),this.router.navigateByUrl(\"/\")}}return t.\\u0275fac=function(e){return new(e||t)(c.Jb(i.a),c.Jb(o.b))},t.\\u0275cmp=c.Db({type:t,selectors:[[\"ng-component\"]],decls:15,vars:0,consts:[[1,\"container-fluid\"],[1,\"row\"],[1,\"col\",\"bg-dark\",\"text-white\"],[1,\"navbar-brand\"],[1,\"row\",\"mt-2\"],[1,\"col-3\"],[\"routerLink\",\"/admin/main/products\",\"routerLinkActive\",\"active\",1,\"btn\",\"btn-outline-info\",\"btn-block\"],[\"routerLink\",\"/admin/main/orders\",\"routerLinkActive\",\"active\",1,\"btn\",\"btn-outline-info\",\"btn-block\"],[1,\"btn\",\"btn-outline-danger\",\"btn-block\",3,\"click\"],[1,\"col-9\"]],template:function(t,e){1&t&&(c.Mb(0,\"div\",0),c.Mb(1,\"div\",1),c.Mb(2,\"div\",2),c.Mb(3,\"a\",3),c.hc(4,\"SPORTS STORE\"),c.Lb(),c.Lb(),c.Lb(),c.Mb(5,\"div\",4),c.Mb(6,\"div\",5),c.Mb(7,\"button\",6),c.hc(8,\" Products \"),c.Lb(),c.Mb(9,\"button\",7),c.hc(10,\" Orders \"),c.Lb(),c.Mb(11,\"button\",8),c.Ub(\"click\",(function(t){return e.logout()})),c.hc(12,\" Logout \"),c.Lb(),c.Lb(),c.Mb(13,\"div\",9),c.Kb(14,\"router-outlet\"),c.Lb(),c.Lb(),c.Lb())},directives:[o.c,o.d,o.f],encapsulation:2}),t})(),u=(()=>{class t{constructor(t,e){this.router=t,this.auth=e}canActivate(t,e){return!!this.auth.authenticated||(this.router.navigateByUrl(\"/admin/auth\"),!1)}}return t.\\u0275fac=function(e){return new(e||t)(c.Qb(o.b),c.Qb(i.a))},t.\\u0275prov=c.Fb({token:t,factory:t.\\u0275fac}),t})();var h=n(\"jU2X\");const p=function(t){return[\"/admin/main/products/edit\",t]};function l(t,e){if(1&t){const t=c.Nb();c.Mb(0,\"tr\"),c.Mb(1,\"td\"),c.hc(2),c.Lb(),c.Mb(3,\"td\"),c.hc(4),c.Lb(),c.Mb(5,\"td\"),c.hc(6),c.Lb(),c.Mb(7,\"td\"),c.hc(8),c.Xb(9,\"currency\"),c.Lb(),c.Mb(10,\"td\"),c.Mb(11,\"button\",3),c.hc(12,\" Edit \"),c.Lb(),c.Mb(13,\"button\",4),c.Ub(\"click\",(function(n){c.dc(t);const r=e.$implicit;return c.Wb().deleteProduct(r.id)})),c.hc(14,\" Delete \"),c.Lb(),c.Lb(),c.Lb()}if(2&t){const t=e.$implicit;c.zb(2),c.ic(t.id),c.zb(2),c.ic(t.name),c.zb(2),c.ic(t.category),c.zb(2),c.ic(c.Yb(9,5,t.price,\"USD\",\"symbol\",\"2.2-2\")),c.zb(3),c.Zb(\"routerLink\",c.ac(10,p,t.id))}}let g=(()=>{class t{constructor(t){this.repository=t}getProducts(){return this.repository.getProducts()}deleteProduct(t){this.repository.deleteProduct(t)}}return t.\\u0275fac=function(e){return new(e||t)(c.Jb(h.a))},t.\\u0275cmp=c.Db({type:t,selectors:[[\"ng-component\"]],decls:16,vars:1,consts:[[1,\"table\",\"table-sm\",\"table-striped\"],[4,\"ngFor\",\"ngForOf\"],[\"routerLink\",\"/admin/main/products/create\",1,\"btn\",\"btn-primary\"],[1,\"btn\",\"btn-sm\",\"btn-warning\",\"m-1\",3,\"routerLink\"],[1,\"btn\",\"btn-sm\",\"btn-danger\",3,\"click\"]],template:function(t,e){1&t&&(c.Mb(0,\"table\",0),c.Mb(1,\"thead\"),c.Mb(2,\"tr\"),c.Mb(3,\"th\"),c.hc(4,\"ID\"),c.Lb(),c.Mb(5,\"th\"),c.hc(6,\"Name\"),c.Lb(),c.Mb(7,\"th\"),c.hc(8,\"Category\"),c.Lb(),c.Mb(9,\"th\"),c.hc(10,\"Price\"),c.Lb(),c.Kb(11,\"th\"),c.Lb(),c.Lb(),c.Mb(12,\"tbody\"),c.gc(13,l,15,12,\"tr\",1),c.Lb(),c.Lb(),c.Mb(14,\"button\",2),c.hc(15,\" Create New Product\\n\"),c.Lb()),2&t&&(c.zb(13),c.Zb(\"ngForOf\",e.getProducts()))},directives:[r.i,o.c],pipes:[r.c],encapsulation:2}),t})();var m=n(\"4Sfc\");let M=(()=>{class t{constructor(t,e,n){this.repository=t,this.router=e,this.editing=!1,this.product=new m.a,this.editing=\"edit\"==n.snapshot.params.mode,this.editing&&Object.assign(this.product,t.getProduct(n.snapshot.params.id))}save(t){this.repository.saveProduct(this.product),this.router.navigateByUrl(\"/admin/main/products\")}}return t.\\u0275fac=function(e){return new(e||t)(c.Jb(h.a),c.Jb(o.b),c.Jb(o.a))},t.\\u0275cmp=c.Db({type:t,selectors:[[\"ng-component\"]],decls:26,vars:12,consts:[[1,\"bg-primary\",\"p-2\",\"text-white\"],[\"novalidate\",\"\",3,\"ngSubmit\"],[\"form\",\"ngForm\"],[1,\"form-group\"],[\"name\",\"name\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"name\",\"category\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"name\",\"description\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"name\",\"price\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"type\",\"submit\",1,\"btn\",\"btn-primary\",\"m-1\"],[\"type\",\"reset\",\"routerLink\",\"/admin/main/products\",1,\"btn\",\"btn-secondary\"]],template:function(t,e){if(1&t){const t=c.Nb();c.Mb(0,\"div\",0),c.Mb(1,\"h5\"),c.hc(2),c.Lb(),c.Lb(),c.Mb(3,\"form\",1,2),c.Ub(\"ngSubmit\",(function(n){c.dc(t);const r=c.cc(4);return e.save(r)})),c.Mb(5,\"div\",3),c.Mb(6,\"label\"),c.hc(7,\"Name\"),c.Lb(),c.Mb(8,\"input\",4),c.Ub(\"ngModelChange\",(function(t){return e.product.name=t})),c.Lb(),c.Lb(),c.Mb(9,\"div\",3),c.Mb(10,\"label\"),c.hc(11,\"Category\"),c.Lb(),c.Mb(12,\"input\",5),c.Ub(\"ngModelChange\",(function(t){return e.product.category=t})),c.Lb(),c.Lb(),c.Mb(13,\"div\",3),c.Mb(14,\"label\"),c.hc(15,\"Description\"),c.Lb(),c.Mb(16,\"textarea\",6),c.Ub(\"ngModelChange\",(function(t){return e.product.description=t})),c.hc(17,\"        \"),c.Lb(),c.Lb(),c.Mb(18,\"div\",3),c.Mb(19,\"label\"),c.hc(20,\"Price\"),c.Lb(),c.Mb(21,\"input\",7),c.Ub(\"ngModelChange\",(function(t){return e.product.price=t})),c.Lb(),c.Lb(),c.Mb(22,\"button\",8),c.hc(23),c.Lb(),c.Mb(24,\"button\",9),c.hc(25,\" Cancel \"),c.Lb(),c.Lb()}2&t&&(c.Bb(\"bg-warning\",e.editing)(\"text-dark\",e.editing),c.zb(2),c.jc(\"\",e.editing?\"Edit\":\"Create\",\" Product\"),c.zb(6),c.Zb(\"ngModel\",e.product.name),c.zb(4),c.Zb(\"ngModel\",e.product.category),c.zb(4),c.Zb(\"ngModel\",e.product.description),c.zb(5),c.Zb(\"ngModel\",e.product.price),c.zb(1),c.Bb(\"btn-warning\",e.editing),c.zb(1),c.jc(\" \",e.editing?\"Save\":\"Create\",\" \"))},directives:[b.k,b.e,b.f,b.b,b.d,b.g,o.c],encapsulation:2}),t})();var L=n(\"hf/X\");function f(t,e){1&t&&(c.Mb(0,\"tr\"),c.Mb(1,\"td\",7),c.hc(2,\"There are no orders\"),c.Lb(),c.Lb())}function v(t,e){if(1&t&&(c.Mb(0,\"tr\"),c.Kb(1,\"td\",4),c.Mb(2,\"td\"),c.hc(3),c.Lb(),c.Mb(4,\"td\"),c.hc(5),c.Lb(),c.Lb()),2&t){const t=e.$implicit;c.zb(3),c.ic(t.product.name),c.zb(2),c.ic(t.quantity)}}function y(t,e){if(1&t){const t=c.Nb();c.Mb(0,\"tr\"),c.Mb(1,\"td\"),c.hc(2),c.Lb(),c.Mb(3,\"td\"),c.hc(4),c.Lb(),c.Mb(5,\"th\"),c.hc(6,\"Product\"),c.Lb(),c.Mb(7,\"th\"),c.hc(8,\"Quantity\"),c.Lb(),c.Mb(9,\"td\"),c.Mb(10,\"button\",8),c.Ub(\"click\",(function(n){c.dc(t);const r=e.$implicit;return c.Wb().markShipped(r)})),c.hc(11,\" Ship \"),c.Lb(),c.Mb(12,\"button\",9),c.Ub(\"click\",(function(n){c.dc(t);const r=e.$implicit;return c.Wb().delete(r.id)})),c.hc(13,\" Delete \"),c.Lb(),c.Lb(),c.Lb(),c.gc(14,v,6,2,\"tr\",10)}if(2&t){const t=e.$implicit;c.zb(2),c.ic(t.name),c.zb(2),c.ic(t.zip),c.zb(10),c.Zb(\"ngForOf\",t.cart.lines)}}let k=(()=>{class t{constructor(t){this.repository=t,this.includeShipped=!1}getOrders(){return this.repository.getOrders().filter(t=>this.includeShipped||!t.shipped)}markShipped(t){t.shipped=!0,this.repository.updateOrder(t)}delete(t){this.repository.deleteOrder(t)}}return t.\\u0275fac=function(e){return new(e||t)(c.Jb(L.a))},t.\\u0275cmp=c.Db({type:t,selectors:[[\"ng-component\"]],decls:17,vars:3,consts:[[1,\"form-check\"],[1,\"form-check-label\"],[\"type\",\"checkbox\",1,\"form-check-input\",3,\"ngModel\",\"ngModelChange\"],[1,\"table\",\"table-sm\"],[\"colspan\",\"2\"],[4,\"ngIf\"],[\"ngFor\",\"\",3,\"ngForOf\"],[\"colspan\",\"5\"],[1,\"btn\",\"btn-warning\",\"m-1\",3,\"click\"],[1,\"btn\",\"btn-danger\",3,\"click\"],[4,\"ngFor\",\"ngForOf\"]],template:function(t,e){1&t&&(c.Mb(0,\"div\",0),c.Mb(1,\"label\",1),c.Mb(2,\"input\",2),c.Ub(\"ngModelChange\",(function(t){return e.includeShipped=t})),c.Lb(),c.hc(3,\" Display Shipped Orders \"),c.Lb(),c.Lb(),c.Mb(4,\"table\",3),c.Mb(5,\"thead\"),c.Mb(6,\"tr\"),c.Mb(7,\"th\"),c.hc(8,\"Name\"),c.Lb(),c.Mb(9,\"th\"),c.hc(10,\"Zip\"),c.Lb(),c.Mb(11,\"th\",4),c.hc(12,\"Cart\"),c.Lb(),c.Kb(13,\"th\"),c.Lb(),c.Lb(),c.Mb(14,\"tbody\"),c.gc(15,f,3,0,\"tr\",5),c.gc(16,y,15,3,\"ng-template\",6),c.Lb(),c.Lb()),2&t&&(c.zb(2),c.Zb(\"ngModel\",e.includeShipped),c.zb(13),c.Zb(\"ngIf\",0==e.getOrders().length),c.zb(1),c.Zb(\"ngForOf\",e.getOrders()))},directives:[b.a,b.d,b.g,r.j,r.i],encapsulation:2}),t})();n.d(e,\"AdminModule\",(function(){return z}));let w=o.e.forChild([{path:\"auth\",component:d},{path:\"main\",component:s,canActivate:[u],children:[{path:\"products/:mode/:id\",component:M},{path:\"products/:mode\",component:M},{path:\"products\",component:g},{path:\"orders\",component:k},{path:\"**\",redirectTo:\"products\"}]},{path:\"**\",redirectTo:\"auth\"}]),z=(()=>{class t{}return t.\\u0275mod=c.Hb({type:t}),t.\\u0275inj=c.Gb({factory:function(e){return new(e||t)},providers:[u],imports:[[r.b,b.c,w]]}),t})()}}]);"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/5-es5.b2d2985f67757f20fa32.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{jkDv:function(t,e,n){\"use strict\";n.r(e);var r=n(\"ofXK\"),i=n(\"3Pt+\"),c=n(\"tyNb\"),b=n(\"fXoL\"),o=n(\"hO0c\");function a(t,e){if(1&t&&(b.Mb(0,\"div\",11),b.hc(1),b.Lb()),2&t){var n=b.Wb();b.zb(1),b.jc(\" \",n.errorMessage,\" \")}}var u,d,s,l=((s=function(){function t(e,n){_classCallCheck(this,t),this.router=e,this.auth=n}return _createClass(t,[{key:\"authenticate\",value:function(t){var e=this;t.valid?this.auth.authenticate(this.username,this.password).subscribe((function(t){t&&e.router.navigateByUrl(\"/admin/main\"),e.errorMessage=\"Authentication Failed\"})):this.errorMessage=\"Form Data Invalid\"}}]),t}()).\\u0275fac=function(t){return new(t||s)(b.Jb(c.b),b.Jb(o.a))},s.\\u0275cmp=b.Db({type:s,selectors:[[\"ng-component\"]],decls:20,vars:3,consts:[[1,\"bg-info\",\"p-2\",\"text-center\",\"text-white\"],[\"class\",\"bg-danger mt-2 p-2 text-center text-white\",4,\"ngIf\"],[1,\"p-2\"],[\"novalidate\",\"\",3,\"ngSubmit\"],[\"form\",\"ngForm\"],[1,\"form-group\"],[\"name\",\"username\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"type\",\"password\",\"name\",\"password\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[1,\"text-center\"],[\"routerLink\",\"/\",1,\"btn\",\"btn-secondary\",\"m-1\"],[\"type\",\"submit\",1,\"btn\",\"btn-primary\",\"m-1\"],[1,\"bg-danger\",\"mt-2\",\"p-2\",\"text-center\",\"text-white\"]],template:function(t,e){if(1&t){var n=b.Nb();b.Mb(0,\"div\",0),b.Mb(1,\"h3\"),b.hc(2,\"SportsStore Admin\"),b.Lb(),b.Lb(),b.gc(3,a,2,1,\"div\",1),b.Mb(4,\"div\",2),b.Mb(5,\"form\",3,4),b.Ub(\"ngSubmit\",(function(t){b.dc(n);var r=b.cc(6);return e.authenticate(r)})),b.Mb(7,\"div\",5),b.Mb(8,\"label\"),b.hc(9,\"Name\"),b.Lb(),b.Mb(10,\"input\",6),b.Ub(\"ngModelChange\",(function(t){return e.username=t})),b.Lb(),b.Lb(),b.Mb(11,\"div\",5),b.Mb(12,\"label\"),b.hc(13,\"Password\"),b.Lb(),b.Mb(14,\"input\",7),b.Ub(\"ngModelChange\",(function(t){return e.password=t})),b.Lb(),b.Lb(),b.Mb(15,\"div\",8),b.Mb(16,\"button\",9),b.hc(17,\"Go back\"),b.Lb(),b.Mb(18,\"button\",10),b.hc(19,\"Log In\"),b.Lb(),b.Lb(),b.Lb(),b.Lb()}2&t&&(b.zb(3),b.Zb(\"ngIf\",null!=e.errorMessage),b.zb(7),b.Zb(\"ngModel\",e.username),b.zb(4),b.Zb(\"ngModel\",e.password))},directives:[r.j,i.k,i.e,i.f,i.b,i.i,i.d,i.g,c.c],encapsulation:2}),s),h=((d=function(){function t(e,n){_classCallCheck(this,t),this.auth=e,this.router=n}return _createClass(t,[{key:\"logout\",value:function(){this.auth.clear(),this.router.navigateByUrl(\"/\")}}]),t}()).\\u0275fac=function(t){return new(t||d)(b.Jb(o.a),b.Jb(c.b))},d.\\u0275cmp=b.Db({type:d,selectors:[[\"ng-component\"]],decls:15,vars:0,consts:[[1,\"container-fluid\"],[1,\"row\"],[1,\"col\",\"bg-dark\",\"text-white\"],[1,\"navbar-brand\"],[1,\"row\",\"mt-2\"],[1,\"col-3\"],[\"routerLink\",\"/admin/main/products\",\"routerLinkActive\",\"active\",1,\"btn\",\"btn-outline-info\",\"btn-block\"],[\"routerLink\",\"/admin/main/orders\",\"routerLinkActive\",\"active\",1,\"btn\",\"btn-outline-info\",\"btn-block\"],[1,\"btn\",\"btn-outline-danger\",\"btn-block\",3,\"click\"],[1,\"col-9\"]],template:function(t,e){1&t&&(b.Mb(0,\"div\",0),b.Mb(1,\"div\",1),b.Mb(2,\"div\",2),b.Mb(3,\"a\",3),b.hc(4,\"SPORTS STORE\"),b.Lb(),b.Lb(),b.Lb(),b.Mb(5,\"div\",4),b.Mb(6,\"div\",5),b.Mb(7,\"button\",6),b.hc(8,\" Products \"),b.Lb(),b.Mb(9,\"button\",7),b.hc(10,\" Orders \"),b.Lb(),b.Mb(11,\"button\",8),b.Ub(\"click\",(function(t){return e.logout()})),b.hc(12,\" Logout \"),b.Lb(),b.Lb(),b.Mb(13,\"div\",9),b.Kb(14,\"router-outlet\"),b.Lb(),b.Lb(),b.Lb())},directives:[c.c,c.d,c.f],encapsulation:2}),d),p=((u=function(){function t(e,n){_classCallCheck(this,t),this.router=e,this.auth=n}return _createClass(t,[{key:\"canActivate\",value:function(t,e){return!!this.auth.authenticated||(this.router.navigateByUrl(\"/admin/auth\"),!1)}}]),t}()).\\u0275fac=function(t){return new(t||u)(b.Qb(c.b),b.Qb(o.a))},u.\\u0275prov=b.Fb({token:u,factory:u.\\u0275fac}),u),g=n(\"jU2X\"),f=function(t){return[\"/admin/main/products/edit\",t]};function m(t,e){if(1&t){var n=b.Nb();b.Mb(0,\"tr\"),b.Mb(1,\"td\"),b.hc(2),b.Lb(),b.Mb(3,\"td\"),b.hc(4),b.Lb(),b.Mb(5,\"td\"),b.hc(6),b.Lb(),b.Mb(7,\"td\"),b.hc(8),b.Xb(9,\"currency\"),b.Lb(),b.Mb(10,\"td\"),b.Mb(11,\"button\",3),b.hc(12,\" Edit \"),b.Lb(),b.Mb(13,\"button\",4),b.Ub(\"click\",(function(t){b.dc(n);var r=e.$implicit;return b.Wb().deleteProduct(r.id)})),b.hc(14,\" Delete \"),b.Lb(),b.Lb(),b.Lb()}if(2&t){var r=e.$implicit;b.zb(2),b.ic(r.id),b.zb(2),b.ic(r.name),b.zb(2),b.ic(r.category),b.zb(2),b.ic(b.Yb(9,5,r.price,\"USD\",\"symbol\",\"2.2-2\")),b.zb(3),b.Zb(\"routerLink\",b.ac(10,f,r.id))}}var M,L,v=((M=function(){function t(e){_classCallCheck(this,t),this.repository=e}return _createClass(t,[{key:\"getProducts\",value:function(){return this.repository.getProducts()}},{key:\"deleteProduct\",value:function(t){this.repository.deleteProduct(t)}}]),t}()).\\u0275fac=function(t){return new(t||M)(b.Jb(g.a))},M.\\u0275cmp=b.Db({type:M,selectors:[[\"ng-component\"]],decls:16,vars:1,consts:[[1,\"table\",\"table-sm\",\"table-striped\"],[4,\"ngFor\",\"ngForOf\"],[\"routerLink\",\"/admin/main/products/create\",1,\"btn\",\"btn-primary\"],[1,\"btn\",\"btn-sm\",\"btn-warning\",\"m-1\",3,\"routerLink\"],[1,\"btn\",\"btn-sm\",\"btn-danger\",3,\"click\"]],template:function(t,e){1&t&&(b.Mb(0,\"table\",0),b.Mb(1,\"thead\"),b.Mb(2,\"tr\"),b.Mb(3,\"th\"),b.hc(4,\"ID\"),b.Lb(),b.Mb(5,\"th\"),b.hc(6,\"Name\"),b.Lb(),b.Mb(7,\"th\"),b.hc(8,\"Category\"),b.Lb(),b.Mb(9,\"th\"),b.hc(10,\"Price\"),b.Lb(),b.Kb(11,\"th\"),b.Lb(),b.Lb(),b.Mb(12,\"tbody\"),b.gc(13,m,15,12,\"tr\",1),b.Lb(),b.Lb(),b.Mb(14,\"button\",2),b.hc(15,\" Create New Product\\n\"),b.Lb()),2&t&&(b.zb(13),b.Zb(\"ngForOf\",e.getProducts()))},directives:[r.i,c.c],pipes:[r.c],encapsulation:2}),M),y=n(\"4Sfc\"),k=((L=function(){function t(e,n,r){_classCallCheck(this,t),this.repository=e,this.router=n,this.editing=!1,this.product=new y.a,this.editing=\"edit\"==r.snapshot.params.mode,this.editing&&Object.assign(this.product,e.getProduct(r.snapshot.params.id))}return _createClass(t,[{key:\"save\",value:function(t){this.repository.saveProduct(this.product),this.router.navigateByUrl(\"/admin/main/products\")}}]),t}()).\\u0275fac=function(t){return new(t||L)(b.Jb(g.a),b.Jb(c.b),b.Jb(c.a))},L.\\u0275cmp=b.Db({type:L,selectors:[[\"ng-component\"]],decls:26,vars:12,consts:[[1,\"bg-primary\",\"p-2\",\"text-white\"],[\"novalidate\",\"\",3,\"ngSubmit\"],[\"form\",\"ngForm\"],[1,\"form-group\"],[\"name\",\"name\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"name\",\"category\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"name\",\"description\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"name\",\"price\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"type\",\"submit\",1,\"btn\",\"btn-primary\",\"m-1\"],[\"type\",\"reset\",\"routerLink\",\"/admin/main/products\",1,\"btn\",\"btn-secondary\"]],template:function(t,e){if(1&t){var n=b.Nb();b.Mb(0,\"div\",0),b.Mb(1,\"h5\"),b.hc(2),b.Lb(),b.Lb(),b.Mb(3,\"form\",1,2),b.Ub(\"ngSubmit\",(function(t){b.dc(n);var r=b.cc(4);return e.save(r)})),b.Mb(5,\"div\",3),b.Mb(6,\"label\"),b.hc(7,\"Name\"),b.Lb(),b.Mb(8,\"input\",4),b.Ub(\"ngModelChange\",(function(t){return e.product.name=t})),b.Lb(),b.Lb(),b.Mb(9,\"div\",3),b.Mb(10,\"label\"),b.hc(11,\"Category\"),b.Lb(),b.Mb(12,\"input\",5),b.Ub(\"ngModelChange\",(function(t){return e.product.category=t})),b.Lb(),b.Lb(),b.Mb(13,\"div\",3),b.Mb(14,\"label\"),b.hc(15,\"Description\"),b.Lb(),b.Mb(16,\"textarea\",6),b.Ub(\"ngModelChange\",(function(t){return e.product.description=t})),b.hc(17,\"        \"),b.Lb(),b.Lb(),b.Mb(18,\"div\",3),b.Mb(19,\"label\"),b.hc(20,\"Price\"),b.Lb(),b.Mb(21,\"input\",7),b.Ub(\"ngModelChange\",(function(t){return e.product.price=t})),b.Lb(),b.Lb(),b.Mb(22,\"button\",8),b.hc(23),b.Lb(),b.Mb(24,\"button\",9),b.hc(25,\" Cancel \"),b.Lb(),b.Lb()}2&t&&(b.Bb(\"bg-warning\",e.editing)(\"text-dark\",e.editing),b.zb(2),b.jc(\"\",e.editing?\"Edit\":\"Create\",\" Product\"),b.zb(6),b.Zb(\"ngModel\",e.product.name),b.zb(4),b.Zb(\"ngModel\",e.product.category),b.zb(4),b.Zb(\"ngModel\",e.product.description),b.zb(5),b.Zb(\"ngModel\",e.product.price),b.zb(1),b.Bb(\"btn-warning\",e.editing),b.zb(1),b.jc(\" \",e.editing?\"Save\":\"Create\",\" \"))},directives:[i.k,i.e,i.f,i.b,i.d,i.g,c.c],encapsulation:2}),L),C=n(\"hf/X\");function w(t,e){1&t&&(b.Mb(0,\"tr\"),b.Mb(1,\"td\",7),b.hc(2,\"There are no orders\"),b.Lb(),b.Lb())}function z(t,e){if(1&t&&(b.Mb(0,\"tr\"),b.Kb(1,\"td\",4),b.Mb(2,\"td\"),b.hc(3),b.Lb(),b.Mb(4,\"td\"),b.hc(5),b.Lb(),b.Lb()),2&t){var n=e.$implicit;b.zb(3),b.ic(n.product.name),b.zb(2),b.ic(n.quantity)}}function P(t,e){if(1&t){var n=b.Nb();b.Mb(0,\"tr\"),b.Mb(1,\"td\"),b.hc(2),b.Lb(),b.Mb(3,\"td\"),b.hc(4),b.Lb(),b.Mb(5,\"th\"),b.hc(6,\"Product\"),b.Lb(),b.Mb(7,\"th\"),b.hc(8,\"Quantity\"),b.Lb(),b.Mb(9,\"td\"),b.Mb(10,\"button\",8),b.Ub(\"click\",(function(t){b.dc(n);var r=e.$implicit;return b.Wb().markShipped(r)})),b.hc(11,\" Ship \"),b.Lb(),b.Mb(12,\"button\",9),b.Ub(\"click\",(function(t){b.dc(n);var r=e.$implicit;return b.Wb().delete(r.id)})),b.hc(13,\" Delete \"),b.Lb(),b.Lb(),b.Lb(),b.gc(14,z,6,2,\"tr\",10)}if(2&t){var r=e.$implicit;b.zb(2),b.ic(r.name),b.zb(2),b.ic(r.zip),b.zb(10),b.Zb(\"ngForOf\",r.cart.lines)}}var S,O=((S=function(){function t(e){_classCallCheck(this,t),this.repository=e,this.includeShipped=!1}return _createClass(t,[{key:\"getOrders\",value:function(){var t=this;return this.repository.getOrders().filter((function(e){return t.includeShipped||!e.shipped}))}},{key:\"markShipped\",value:function(t){t.shipped=!0,this.repository.updateOrder(t)}},{key:\"delete\",value:function(t){this.repository.deleteOrder(t)}}]),t}()).\\u0275fac=function(t){return new(t||S)(b.Jb(C.a))},S.\\u0275cmp=b.Db({type:S,selectors:[[\"ng-component\"]],decls:17,vars:3,consts:[[1,\"form-check\"],[1,\"form-check-label\"],[\"type\",\"checkbox\",1,\"form-check-input\",3,\"ngModel\",\"ngModelChange\"],[1,\"table\",\"table-sm\"],[\"colspan\",\"2\"],[4,\"ngIf\"],[\"ngFor\",\"\",3,\"ngForOf\"],[\"colspan\",\"5\"],[1,\"btn\",\"btn-warning\",\"m-1\",3,\"click\"],[1,\"btn\",\"btn-danger\",3,\"click\"],[4,\"ngFor\",\"ngForOf\"]],template:function(t,e){1&t&&(b.Mb(0,\"div\",0),b.Mb(1,\"label\",1),b.Mb(2,\"input\",2),b.Ub(\"ngModelChange\",(function(t){return e.includeShipped=t})),b.Lb(),b.hc(3,\" Display Shipped Orders \"),b.Lb(),b.Lb(),b.Mb(4,\"table\",3),b.Mb(5,\"thead\"),b.Mb(6,\"tr\"),b.Mb(7,\"th\"),b.hc(8,\"Name\"),b.Lb(),b.Mb(9,\"th\"),b.hc(10,\"Zip\"),b.Lb(),b.Mb(11,\"th\",4),b.hc(12,\"Cart\"),b.Lb(),b.Kb(13,\"th\"),b.Lb(),b.Lb(),b.Mb(14,\"tbody\"),b.gc(15,w,3,0,\"tr\",5),b.gc(16,P,15,3,\"ng-template\",6),b.Lb(),b.Lb()),2&t&&(b.zb(2),b.Zb(\"ngModel\",e.includeShipped),b.zb(13),b.Zb(\"ngIf\",0==e.getOrders().length),b.zb(1),b.Zb(\"ngForOf\",e.getOrders()))},directives:[i.a,i.d,i.g,r.j,r.i],encapsulation:2}),S);n.d(e,\"AdminModule\",(function(){return F}));var U,_=c.e.forChild([{path:\"auth\",component:l},{path:\"main\",component:h,canActivate:[p],children:[{path:\"products/:mode/:id\",component:k},{path:\"products/:mode\",component:k},{path:\"products\",component:v},{path:\"orders\",component:O},{path:\"**\",redirectTo:\"products\"}]},{path:\"**\",redirectTo:\"auth\"}]),F=((U=function t(){_classCallCheck(this,t)}).\\u0275mod=b.Hb({type:U}),U.\\u0275inj=b.Gb({factory:function(t){return new(t||U)},providers:[p],imports:[[r.b,i.c,_]]}),U)}}]);"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n  <link rel=\"manifest\" href=\"manifest.webmanifest\">\n  <meta name=\"theme-color\" content=\"#1976d2\">\n<link rel=\"stylesheet\" href=\"styles.87fc5b77face4b6618ed.css\"></head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n  <noscript>Please enable JavaScript to continue using this application.</noscript>\n<script src=\"runtime-es2015.ef57c12ac0fc432d4c88.js\" type=\"module\"></script><script src=\"runtime-es5.ef57c12ac0fc432d4c88.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.17a65f3ef96068aef242.js\" type=\"module\"></script><script src=\"main-es5.17a65f3ef96068aef242.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/main-es2015.17a65f3ef96068aef242.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(t,e,n){t.exports=n(\"zUnb\")},\"0EUg\":function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return s}));var r=n(\"bHdf\");function s(){return Object(r.a)(1)}},\"2QA8\":function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return r}));const r=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())()},\"2fFW\":function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return s}));let r=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else r&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");r=t},get useDeprecatedSynchronousErrorHandling(){return r}}},\"3Pt+\":function(t,e,n){\"use strict\";var r=n(\"fXoL\"),s=n(\"ofXK\"),i=n(\"HDdC\"),o=n(\"DH7j\"),a=n(\"lJxs\"),c=n(\"XoHu\"),u=n(\"Cfvw\");function l(t,e){return new i.a(n=>{const r=t.length;if(0===r)return void n.complete();const s=new Array(r);let i=0,o=0;for(let a=0;a<r;a++){const c=Object(u.a)(t[a]);let l=!1;n.add(c.subscribe({next:t=>{l||(l=!0,o++),s[a]=t},error:t=>n.error(t),complete:()=>{i++,i!==r&&l||(o===r&&n.next(e?e.reduce((t,e,n)=>(t[e]=s[n],t),{}):s),n.complete())}}))}})}n.d(e,\"a\",(function(){return p})),n.d(e,\"b\",(function(){return m})),n.d(e,\"c\",(function(){return Tt})),n.d(e,\"d\",(function(){return S})),n.d(e,\"e\",(function(){return O})),n.d(e,\"f\",(function(){return ft})),n.d(e,\"g\",(function(){return Ct})),n.d(e,\"h\",(function(){return W})),n.d(e,\"i\",(function(){return Et})),n.d(e,\"j\",(function(){return K})),n.d(e,\"k\",(function(){return St}));const h=new r.q(\"NgValueAccessor\"),d={provide:h,useExisting:Object(r.S)(()=>p),multi:!0};let p=(()=>{class t{constructor(t,e){this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,\"checked\",t)}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(r.D),r.Jb(r.l))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"input\",\"type\",\"checkbox\",\"formControlName\",\"\"],[\"input\",\"type\",\"checkbox\",\"formControl\",\"\"],[\"input\",\"type\",\"checkbox\",\"ngModel\",\"\"]],hostBindings:function(t,e){1&t&&r.Ub(\"change\",(function(t){return e.onChange(t.target.checked)}))(\"blur\",(function(t){return e.onTouched()}))},features:[r.yb([d])]}),t})();const f={provide:h,useExisting:Object(r.S)(()=>m),multi:!0},g=new r.q(\"CompositionEventMode\");let m=(()=>{class t{constructor(t,e,n){this._renderer=t,this._elementRef=e,this._compositionMode=n,this.onChange=t=>{},this.onTouched=()=>{},this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function(){const t=Object(s.q)()?Object(s.q)().getUserAgent():\"\";return/android (\\d+)/.test(t.toLowerCase())}())}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,\"value\",null==t?\"\":t)}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",t)}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(r.D),r.Jb(r.l),r.Jb(g,8))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"input\",\"formControlName\",\"\",3,\"type\",\"checkbox\"],[\"textarea\",\"formControlName\",\"\"],[\"input\",\"formControl\",\"\",3,\"type\",\"checkbox\"],[\"textarea\",\"formControl\",\"\"],[\"input\",\"ngModel\",\"\",3,\"type\",\"checkbox\"],[\"textarea\",\"ngModel\",\"\"],[\"\",\"ngDefaultControl\",\"\"]],hostBindings:function(t,e){1&t&&r.Ub(\"input\",(function(t){return e._handleInput(t.target.value)}))(\"blur\",(function(t){return e.onTouched()}))(\"compositionstart\",(function(t){return e._compositionStart()}))(\"compositionend\",(function(t){return e._compositionEnd(t.target.value)}))},features:[r.yb([f])]}),t})(),b=(()=>{class t{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}reset(t){this.control&&this.control.reset(t)}hasError(t,e){return!!this.control&&this.control.hasError(t,e)}getError(t,e){return this.control?this.control.getError(t,e):null}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275dir=r.Eb({type:t}),t})(),y=(()=>{class t extends b{get formDirective(){return null}get path(){return null}}return t.\\u0275fac=function(e){return v(e||t)},t.\\u0275dir=r.Eb({type:t,features:[r.wb]}),t})();const v=r.Ob(y);function _(){throw new Error(\"unimplemented\")}class w extends b{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null,this._rawValidators=[],this._rawAsyncValidators=[]}get validator(){return _()}get asyncValidator(){return _()}}class C{constructor(t){this._cd=t}get ngClassUntouched(){return!!this._cd.control&&this._cd.control.untouched}get ngClassTouched(){return!!this._cd.control&&this._cd.control.touched}get ngClassPristine(){return!!this._cd.control&&this._cd.control.pristine}get ngClassDirty(){return!!this._cd.control&&this._cd.control.dirty}get ngClassValid(){return!!this._cd.control&&this._cd.control.valid}get ngClassInvalid(){return!!this._cd.control&&this._cd.control.invalid}get ngClassPending(){return!!this._cd.control&&this._cd.control.pending}}let S=(()=>{class t extends C{constructor(t){super(t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(w,2))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"\",\"formControlName\",\"\"],[\"\",\"ngModel\",\"\"],[\"\",\"formControl\",\"\"]],hostVars:14,hostBindings:function(t,e){2&t&&r.Bb(\"ng-untouched\",e.ngClassUntouched)(\"ng-touched\",e.ngClassTouched)(\"ng-pristine\",e.ngClassPristine)(\"ng-dirty\",e.ngClassDirty)(\"ng-valid\",e.ngClassValid)(\"ng-invalid\",e.ngClassInvalid)(\"ng-pending\",e.ngClassPending)},features:[r.wb]}),t})(),O=(()=>{class t extends C{constructor(t){super(t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(y,2))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"\",\"formGroupName\",\"\"],[\"\",\"formArrayName\",\"\"],[\"\",\"ngModelGroup\",\"\"],[\"\",\"formGroup\",\"\"],[\"form\",3,\"ngNoForm\",\"\"],[\"\",\"ngForm\",\"\"]],hostVars:14,hostBindings:function(t,e){2&t&&r.Bb(\"ng-untouched\",e.ngClassUntouched)(\"ng-touched\",e.ngClassTouched)(\"ng-pristine\",e.ngClassPristine)(\"ng-dirty\",e.ngClassDirty)(\"ng-valid\",e.ngClassValid)(\"ng-invalid\",e.ngClassInvalid)(\"ng-pending\",e.ngClassPending)},features:[r.wb]}),t})();function E(t){return null==t||0===t.length}const x=new r.q(\"NgValidators\"),T=new r.q(\"NgAsyncValidators\"),k=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class A{static min(t){return e=>{if(E(e.value)||E(t))return null;const n=parseFloat(e.value);return!isNaN(n)&&n<t?{min:{min:t,actual:e.value}}:null}}static max(t){return e=>{if(E(e.value)||E(t))return null;const n=parseFloat(e.value);return!isNaN(n)&&n>t?{max:{max:t,actual:e.value}}:null}}static required(t){return E(t.value)?{required:!0}:null}static requiredTrue(t){return!0===t.value?null:{required:!0}}static email(t){return E(t.value)?null:k.test(t.value)?null:{email:!0}}static minLength(t){return e=>{if(E(e.value))return null;const n=e.value?e.value.length:0;return n<t?{minlength:{requiredLength:t,actualLength:n}}:null}}static maxLength(t){return e=>{const n=e.value?e.value.length:0;return n>t?{maxlength:{requiredLength:t,actualLength:n}}:null}}static pattern(t){if(!t)return A.nullValidator;let e,n;return\"string\"==typeof t?(n=\"\",\"^\"!==t.charAt(0)&&(n+=\"^\"),n+=t,\"$\"!==t.charAt(t.length-1)&&(n+=\"$\"),e=new RegExp(n)):(n=t.toString(),e=t),t=>{if(E(t.value))return null;const r=t.value;return e.test(r)?null:{pattern:{requiredPattern:n,actualValue:r}}}}static nullValidator(t){return null}static compose(t){if(!t)return null;const e=t.filter(j);return 0==e.length?null:function(t){return I(function(t,e){return e.map(e=>e(t))}(t,e))}}static composeAsync(t){if(!t)return null;const e=t.filter(j);return 0==e.length?null:function(t){return function(...t){if(1===t.length){const e=t[0];if(Object(o.a)(e))return l(e,null);if(Object(c.a)(e)&&Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);return l(t.map(t=>e[t]),t)}}if(\"function\"==typeof t[t.length-1]){const e=t.pop();return l(t=1===t.length&&Object(o.a)(t[0])?t[0]:t,null).pipe(Object(a.a)(t=>e(...t)))}return l(t,null)}(function(t,e){return e.map(e=>e(t))}(t,e).map(P)).pipe(Object(a.a)(I))}}}function j(t){return null!=t}function P(t){const e=Object(r.qb)(t)?Object(u.a)(t):t;if(!Object(r.pb)(e))throw new Error(\"Expected validator to return Promise or Observable.\");return e}function I(t){let e={};return t.forEach(t=>{e=null!=t?Object.assign(Object.assign({},e),t):e}),0===Object.keys(e).length?null:e}function R(t){return t.validate?e=>t.validate(e):t}function N(t){return t.validate?e=>t.validate(e):t}const M={provide:h,useExisting:Object(r.S)(()=>D),multi:!0};let D=(()=>{class t{constructor(t,e){this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,\"value\",null==t?\"\":t)}registerOnChange(t){this.onChange=e=>{t(\"\"==e?null:parseFloat(e))}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(r.D),r.Jb(r.l))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"input\",\"type\",\"number\",\"formControlName\",\"\"],[\"input\",\"type\",\"number\",\"formControl\",\"\"],[\"input\",\"type\",\"number\",\"ngModel\",\"\"]],hostBindings:function(t,e){1&t&&r.Ub(\"change\",(function(t){return e.onChange(t.target.value)}))(\"input\",(function(t){return e.onChange(t.target.value)}))(\"blur\",(function(t){return e.onTouched()}))},features:[r.yb([M])]}),t})();const L={provide:h,useExisting:Object(r.S)(()=>U),multi:!0};let V=(()=>{class t{constructor(){this._accessors=[]}add(t,e){this._accessors.push([t,e])}remove(t){for(let e=this._accessors.length-1;e>=0;--e)if(this._accessors[e][1]===t)return void this._accessors.splice(e,1)}select(t){this._accessors.forEach(e=>{this._isSameGroup(e,t)&&e[1]!==t&&e[1].fireUncheck(t.value)})}_isSameGroup(t,e){return!!t[0].control&&t[0]._parent===e._control._parent&&t[1].name===e.name}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})(),U=(()=>{class t{constructor(t,e,n,r){this._renderer=t,this._elementRef=e,this._registry=n,this._injector=r,this.onChange=()=>{},this.onTouched=()=>{}}ngOnInit(){this._control=this._injector.get(w),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(t){this._state=t===this.value,this._renderer.setProperty(this._elementRef.nativeElement,\"checked\",this._state)}registerOnChange(t){this._fn=t,this.onChange=()=>{t(this.value),this._registry.select(this)}}fireUncheck(t){this.writeValue(t)}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",t)}_checkName(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)}_throwNameError(){throw new Error('\\n      If you define both a name and a formControlName attribute on your radio button, their values\\n      must match. Ex: <input type=\"radio\" formControlName=\"food\" name=\"food\">\\n    ')}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(r.D),r.Jb(r.l),r.Jb(V),r.Jb(r.r))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"input\",\"type\",\"radio\",\"formControlName\",\"\"],[\"input\",\"type\",\"radio\",\"formControl\",\"\"],[\"input\",\"type\",\"radio\",\"ngModel\",\"\"]],hostBindings:function(t,e){1&t&&r.Ub(\"change\",(function(t){return e.onChange()}))(\"blur\",(function(t){return e.onTouched()}))},inputs:{name:\"name\",formControlName:\"formControlName\",value:\"value\"},features:[r.yb([L])]}),t})();const F={provide:h,useExisting:Object(r.S)(()=>H),multi:!0};let H=(()=>{class t{constructor(t,e){this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,\"value\",parseFloat(t))}registerOnChange(t){this.onChange=e=>{t(\"\"==e?null:parseFloat(e))}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(r.D),r.Jb(r.l))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"input\",\"type\",\"range\",\"formControlName\",\"\"],[\"input\",\"type\",\"range\",\"formControl\",\"\"],[\"input\",\"type\",\"range\",\"ngModel\",\"\"]],hostBindings:function(t,e){1&t&&r.Ub(\"change\",(function(t){return e.onChange(t.target.value)}))(\"input\",(function(t){return e.onChange(t.target.value)}))(\"blur\",(function(t){return e.onTouched()}))},features:[r.yb([F])]}),t})();const $='\\n    <div [formGroup]=\"myGroup\">\\n       <div formGroupName=\"person\">\\n          <input formControlName=\"firstName\">\\n       </div>\\n    </div>\\n\\n    In your class:\\n\\n    this.myGroup = new FormGroup({\\n       person: new FormGroup({ firstName: new FormControl() })\\n    });',z='\\n    <form>\\n       <div ngModelGroup=\"person\">\\n          <input [(ngModel)]=\"person.name\" name=\"firstName\">\\n       </div>\\n    </form>',q={provide:h,useExisting:Object(r.S)(()=>G),multi:!0};function B(t,e){return null==t?`${e}`:(e&&\"object\"==typeof e&&(e=\"Object\"),`${t}: ${e}`.slice(0,50))}let G=(()=>{class t{constructor(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=t=>{},this.onTouched=()=>{},this._compareWith=r.rb}set compareWith(t){if(\"function\"!=typeof t)throw new Error(`compareWith must be a function, but received ${JSON.stringify(t)}`);this._compareWith=t}writeValue(t){this.value=t;const e=this._getOptionId(t);null==e&&this._renderer.setProperty(this._elementRef.nativeElement,\"selectedIndex\",-1);const n=B(e,t);this._renderer.setProperty(this._elementRef.nativeElement,\"value\",n)}registerOnChange(t){this.onChange=e=>{this.value=this._getOptionValue(e),t(this.value)}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",t)}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const e of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(e),t))return e;return null}_getOptionValue(t){const e=function(t){return t.split(\":\")[0]}(t);return this._optionMap.has(e)?this._optionMap.get(e):t}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(r.D),r.Jb(r.l))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"select\",\"formControlName\",\"\",3,\"multiple\",\"\"],[\"select\",\"formControl\",\"\",3,\"multiple\",\"\"],[\"select\",\"ngModel\",\"\",3,\"multiple\",\"\"]],hostBindings:function(t,e){1&t&&r.Ub(\"change\",(function(t){return e.onChange(t.target.value)}))(\"blur\",(function(t){return e.onTouched()}))},inputs:{compareWith:\"compareWith\"},features:[r.yb([q])]}),t})(),W=(()=>{class t{constructor(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(B(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,\"value\",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(r.l),r.Jb(r.D),r.Jb(G,9))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"option\"]],inputs:{ngValue:\"ngValue\",value:\"value\"}}),t})();const Z={provide:h,useExisting:Object(r.S)(()=>J),multi:!0};function Q(t,e){return null==t?`${e}`:(\"string\"==typeof e&&(e=`'${e}'`),e&&\"object\"==typeof e&&(e=\"Object\"),`${t}: ${e}`.slice(0,50))}let J=(()=>{class t{constructor(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=t=>{},this.onTouched=()=>{},this._compareWith=r.rb}set compareWith(t){if(\"function\"!=typeof t)throw new Error(`compareWith must be a function, but received ${JSON.stringify(t)}`);this._compareWith=t}writeValue(t){let e;if(this.value=t,Array.isArray(t)){const n=t.map(t=>this._getOptionId(t));e=(t,e)=>{t._setSelected(n.indexOf(e.toString())>-1)}}else e=(t,e)=>{t._setSelected(!1)};this._optionMap.forEach(e)}registerOnChange(t){this.onChange=e=>{const n=[];if(e.hasOwnProperty(\"selectedOptions\")){const t=e.selectedOptions;for(let e=0;e<t.length;e++){const r=t.item(e),s=this._getOptionValue(r.value);n.push(s)}}else{const t=e.options;for(let e=0;e<t.length;e++){const r=t.item(e);if(r.selected){const t=this._getOptionValue(r.value);n.push(t)}}}this.value=n,t(n)}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",t)}_registerOption(t){const e=(this._idCounter++).toString();return this._optionMap.set(e,t),e}_getOptionId(t){for(const e of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(e)._value,t))return e;return null}_getOptionValue(t){const e=function(t){return t.split(\":\")[0]}(t);return this._optionMap.has(e)?this._optionMap.get(e)._value:t}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(r.D),r.Jb(r.l))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"select\",\"multiple\",\"\",\"formControlName\",\"\"],[\"select\",\"multiple\",\"\",\"formControl\",\"\"],[\"select\",\"multiple\",\"\",\"ngModel\",\"\"]],hostBindings:function(t,e){1&t&&r.Ub(\"change\",(function(t){return e.onChange(t.target)}))(\"blur\",(function(t){return e.onTouched()}))},inputs:{compareWith:\"compareWith\"},features:[r.yb([Z])]}),t})(),K=(()=>{class t{constructor(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(Q(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(Q(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,\"value\",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,\"selected\",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(r.l),r.Jb(r.D),r.Jb(J,9))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"option\"]],inputs:{ngValue:\"ngValue\",value:\"value\"}}),t})();function X(t,e){return[...e.path,t]}function Y(t,e){t||et(e,\"Cannot find control with\"),e.valueAccessor||et(e,\"No value accessor for form control with\"),t.validator=A.compose([t.validator,e.validator]),t.asyncValidator=A.composeAsync([t.asyncValidator,e.asyncValidator]),e.valueAccessor.writeValue(t.value),function(t,e){e.valueAccessor.registerOnChange(n=>{t._pendingValue=n,t._pendingChange=!0,t._pendingDirty=!0,\"change\"===t.updateOn&&tt(t,e)})}(t,e),function(t,e){t.registerOnChange((t,n)=>{e.valueAccessor.writeValue(t),n&&e.viewToModelUpdate(t)})}(t,e),function(t,e){e.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,\"blur\"===t.updateOn&&t._pendingChange&&tt(t,e),\"submit\"!==t.updateOn&&t.markAsTouched()})}(t,e),e.valueAccessor.setDisabledState&&t.registerOnDisabledChange(t=>{e.valueAccessor.setDisabledState(t)}),e._rawValidators.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(()=>t.updateValueAndValidity())}),e._rawAsyncValidators.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(()=>t.updateValueAndValidity())})}function tt(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function et(t,e){let n;throw n=t.path.length>1?`path: '${t.path.join(\" -> \")}'`:t.path[0]?`name: '${t.path}'`:\"unspecified name attribute\",new Error(`${e} ${n}`)}function nt(t){return null!=t?A.compose(t.map(R)):null}function rt(t){return null!=t?A.composeAsync(t.map(N)):null}const st=[p,H,D,G,J,U];function it(t){const e=at(t)?t.validators:t;return Array.isArray(e)?nt(e):e||null}function ot(t,e){const n=at(e)?e.asyncValidators:t;return Array.isArray(n)?rt(n):n||null}function at(t){return null!=t&&!Array.isArray(t)&&\"object\"==typeof t}class ct{constructor(t,e){this.validator=t,this.asyncValidator=e,this._onCollectionChange=()=>{},this.pristine=!0,this.touched=!1,this._onDisabledChange=[]}get parent(){return this._parent}get valid(){return\"VALID\"===this.status}get invalid(){return\"INVALID\"===this.status}get pending(){return\"PENDING\"==this.status}get disabled(){return\"DISABLED\"===this.status}get enabled(){return\"DISABLED\"!==this.status}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:\"change\"}setValidators(t){this.validator=it(t)}setAsyncValidators(t){this.asyncValidator=ot(t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(t=>t.markAllAsTouched())}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(t=>{t.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=\"PENDING\",!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=\"DISABLED\",this.errors=null,this._forEachChild(e=>{e.disable(Object.assign(Object.assign({},t),{onlySelf:!0}))}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object.assign(Object.assign({},t),{skipPristineCheck:e})),this._onDisabledChange.forEach(t=>t(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=\"VALID\",this._forEachChild(e=>{e.enable(Object.assign(Object.assign({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(Object.assign(Object.assign({},t),{skipPristineCheck:e})),this._onDisabledChange.forEach(t=>t(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),\"VALID\"!==this.status&&\"PENDING\"!==this.status||this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?\"DISABLED\":\"VALID\"}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=\"PENDING\";const e=P(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(e=>this.setErrors(e,{emitEvent:t}))}}_cancelExistingSubscription(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)}get(t){return function(t,e,n){if(null==e)return null;if(Array.isArray(e)||(e=e.split(\".\")),Array.isArray(e)&&0===e.length)return null;let r=t;return e.forEach(t=>{r=r instanceof lt?r.controls.hasOwnProperty(t)?r.controls[t]:null:r instanceof ht&&r.at(t)||null}),r}(this,t)}getError(t,e){const n=e?this.get(e):this;return n&&n.errors?n.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new r.n,this.statusChanges=new r.n}_calculateStatus(){return this._allControlsDisabled()?\"DISABLED\":this.errors?\"INVALID\":this._anyControlsHaveStatus(\"PENDING\")?\"PENDING\":this._anyControlsHaveStatus(\"INVALID\")?\"INVALID\":\"VALID\"}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_isBoxedValue(t){return\"object\"==typeof t&&null!==t&&2===Object.keys(t).length&&\"value\"in t&&\"disabled\"in t}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){at(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&this._parent&&this._parent.dirty&&!this._parent._anyControlsDirty()}}class ut extends ct{constructor(t=null,e,n){super(it(e),ot(n,e)),this._onChange=[],this._applyFormState(t),this._setUpdateStrategy(e),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),this._initObservables()}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(t=>t(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=null,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_clearChangeFns(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=()=>{}}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_forEachChild(t){}_syncPendingControls(){return!(\"submit\"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(t){this._isBoxedValue(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}}class lt extends ct{constructor(t,e,n){super(it(e),ot(n,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1})}registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e){this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()}removeControl(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity(),this._onCollectionChange()}setControl(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){this._checkAllValuesPresent(t),Object.keys(t).forEach(n=>{this._throwIfControlMissing(n),this.controls[n].setValue(t[n],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){Object.keys(t).forEach(n=>{this.controls[n]&&this.controls[n].patchValue(t[n],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}reset(t={},e={}){this._forEachChild((n,r)=>{n.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,n)=>(t[n]=e instanceof ut?e.value:e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(t,e)=>!!e._syncPendingControls()||t);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_throwIfControlMissing(t){if(!Object.keys(this.controls).length)throw new Error(\"\\n        There are no form controls registered with this group yet.  If you're using ngModel,\\n        you may want to check next tick (e.g. use setTimeout).\\n      \");if(!this.controls[t])throw new Error(`Cannot find form control with name: ${t}.`)}_forEachChild(t){Object.keys(this.controls).forEach(e=>t(this.controls[e],e))}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){let e=!1;return this._forEachChild((n,r)=>{e=e||this.contains(r)&&t(n)}),e}_reduceValue(){return this._reduceChildren({},(t,e,n)=>((e.enabled||this.disabled)&&(t[n]=e.value),t))}_reduceChildren(t,e){let n=t;return this._forEachChild((t,r)=>{n=e(n,t,r)}),n}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_checkAllValuesPresent(t){this._forEachChild((e,n)=>{if(void 0===t[n])throw new Error(`Must supply a value for form control with name: '${n}'.`)})}}class ht extends ct{constructor(t,e,n){super(it(e),ot(n,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1})}at(t){return this.controls[t]}push(t){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()}insert(t,e){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity()}removeAt(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),this.controls.splice(t,1),this.updateValueAndValidity()}setControl(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity(),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){this._checkAllValuesPresent(t),t.forEach((t,n)=>{this._throwIfControlMissing(n),this.at(n).setValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t.forEach((t,n)=>{this.at(n)&&this.at(n).patchValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}reset(t=[],e={}){this._forEachChild((n,r)=>{n.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(t=>t instanceof ut?t.value:t.getRawValue())}clear(){this.controls.length<1||(this._forEachChild(t=>t._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity())}_syncPendingControls(){let t=this.controls.reduce((t,e)=>!!e._syncPendingControls()||t,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_throwIfControlMissing(t){if(!this.controls.length)throw new Error(\"\\n        There are no form controls registered with this array yet.  If you're using ngModel,\\n        you may want to check next tick (e.g. use setTimeout).\\n      \");if(!this.at(t))throw new Error(`Cannot find form control at index ${t}`)}_forEachChild(t){this.controls.forEach((e,n)=>{t(e,n)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(e=>e.enabled&&t(e))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_checkAllValuesPresent(t){this._forEachChild((e,n)=>{if(void 0===t[n])throw new Error(`Must supply a value for form control at index: ${n}.`)})}_allControlsDisabled(){for(const t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}}const dt={provide:y,useExisting:Object(r.S)(()=>ft)},pt=(()=>Promise.resolve(null))();let ft=(()=>{class t extends y{constructor(t,e){super(),this.submitted=!1,this._directives=[],this.ngSubmit=new r.n,this.form=new lt({},nt(t),rt(e))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(t){pt.then(()=>{const e=this._findContainer(t.path);t.control=e.registerControl(t.name,t.control),Y(t.control,t),t.control.updateValueAndValidity({emitEvent:!1}),this._directives.push(t)})}getControl(t){return this.form.get(t.path)}removeControl(t){pt.then(()=>{const e=this._findContainer(t.path);e&&e.removeControl(t.name),function(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}(this._directives,t)})}addFormGroup(t){pt.then(()=>{const e=this._findContainer(t.path),n=new lt({});(function(t,e){null==t&&et(e,\"Cannot find control with\"),t.validator=A.compose([t.validator,e.validator]),t.asyncValidator=A.composeAsync([t.asyncValidator,e.asyncValidator])})(n,t),e.registerControl(t.name,n),n.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(t){pt.then(()=>{const e=this._findContainer(t.path);e&&e.removeControl(t.name)})}getFormGroup(t){return this.form.get(t.path)}updateModel(t,e){pt.then(()=>{this.form.get(t.path).setValue(e)})}setValue(t){this.control.setValue(t)}onSubmit(t){return this.submitted=!0,e=this._directives,this.form._syncPendingControls(),e.forEach(t=>{const e=t.control;\"submit\"===e.updateOn&&e._pendingChange&&(t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1)}),this.ngSubmit.emit(t),!1;var e}onReset(){this.resetForm()}resetForm(t){this.form.reset(t),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(t){return t.pop(),t.length?this.form.get(t):this.form}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(x,10),r.Jb(T,10))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"form\",3,\"ngNoForm\",\"\",3,\"formGroup\",\"\"],[\"ng-form\"],[\"\",\"ngForm\",\"\"]],hostBindings:function(t,e){1&t&&r.Ub(\"submit\",(function(t){return e.onSubmit(t)}))(\"reset\",(function(t){return e.onReset()}))},inputs:{options:[\"ngFormOptions\",\"options\"]},outputs:{ngSubmit:\"ngSubmit\"},exportAs:[\"ngForm\"],features:[r.yb([dt]),r.wb]}),t})(),gt=(()=>{class t extends y{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return X(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}get validator(){return nt(this._validators)}get asyncValidator(){return rt(this._asyncValidators)}_checkParentType(){}}return t.\\u0275fac=function(e){return mt(e||t)},t.\\u0275dir=r.Eb({type:t,features:[r.wb]}),t})();const mt=r.Ob(gt);class bt{static modelParentException(){throw new Error('\\n      ngModel cannot be used to register form controls with a parent formGroup directive.  Try using\\n      formGroup\\'s partner directive \"formControlName\" instead.  Example:\\n\\n      \\n    <div [formGroup]=\"myGroup\">\\n      <input formControlName=\"firstName\">\\n    </div>\\n\\n    In your class:\\n\\n    this.myGroup = new FormGroup({\\n       firstName: new FormControl()\\n    });\\n\\n      Or, if you\\'d like to avoid registering this form control, indicate that it\\'s standalone in ngModelOptions:\\n\\n      Example:\\n\\n      \\n    <div [formGroup]=\"myGroup\">\\n       <input formControlName=\"firstName\">\\n       <input [(ngModel)]=\"showMoreControls\" [ngModelOptions]=\"{standalone: true}\">\\n    </div>\\n  ')}static formGroupNameException(){throw new Error(`\\n      ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\\n\\n      Option 1: Use formControlName instead of ngModel (reactive strategy):\\n\\n      ${$}\\n\\n      Option 2:  Update ngModel's parent be ngModelGroup (template-driven strategy):\\n\\n      ${z}`)}static missingNameException(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\\n      control must be defined as \\'standalone\\' in ngModelOptions.\\n\\n      Example 1: <input [(ngModel)]=\"person.firstName\" name=\"first\">\\n      Example 2: <input [(ngModel)]=\"person.firstName\" [ngModelOptions]=\"{standalone: true}\">')}static modelGroupParentException(){throw new Error(`\\n      ngModelGroup cannot be used with a parent formGroup directive.\\n\\n      Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\\n\\n      ${$}\\n\\n      Option 2:  Use a regular form tag instead of the formGroup directive (template-driven strategy):\\n\\n      ${z}`)}}const yt={provide:y,useExisting:Object(r.S)(()=>vt)};let vt=(()=>{class t extends gt{constructor(t,e,n){super(),this._parent=t,this._validators=e,this._asyncValidators=n}_checkParentType(){this._parent instanceof t||this._parent instanceof ft||bt.modelGroupParentException()}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(y,5),r.Jb(x,10),r.Jb(T,10))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"\",\"ngModelGroup\",\"\"]],inputs:{name:[\"ngModelGroup\",\"name\"]},exportAs:[\"ngModelGroup\"],features:[r.yb([yt]),r.wb]}),t})();const _t={provide:w,useExisting:Object(r.S)(()=>Ct)},wt=(()=>Promise.resolve(null))();let Ct=(()=>{class t extends w{constructor(t,e,n,s){super(),this.control=new ut,this._registered=!1,this.update=new r.n,this._parent=t,this._rawValidators=e||[],this._rawAsyncValidators=n||[],this.valueAccessor=function(t,e){if(!e)return null;Array.isArray(e)||et(t,\"Value accessor was not provided as an array for form control with\");let n=void 0,r=void 0,s=void 0;return e.forEach(e=>{var i;e.constructor===m?n=e:(i=e,st.some(t=>i.constructor===t)?(r&&et(t,\"More than one built-in value accessor matches form control with\"),r=e):(s&&et(t,\"More than one custom value accessor matches form control with\"),s=e))}),s||r||n||(et(t,\"No valid value accessor for form control with\"),null)}(this,s)}ngOnChanges(t){this._checkForErrors(),this._registered||this._setUpControl(),\"isDisabled\"in t&&this._updateDisabled(t),function(t,e){if(!t.hasOwnProperty(\"model\"))return!1;const n=t.model;return!!n.isFirstChange()||!Object(r.rb)(e,n.currentValue)}(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._parent?X(this.name,this._parent):[this.name]}get formDirective(){return this._parent?this._parent.formDirective:null}get validator(){return nt(this._rawValidators)}get asyncValidator(){return rt(this._rawAsyncValidators)}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Y(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){!(this._parent instanceof vt)&&this._parent instanceof gt?bt.formGroupNameException():this._parent instanceof vt||this._parent instanceof ft||bt.modelParentException()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||bt.missingNameException()}_updateValue(t){wt.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1})})}_updateDisabled(t){const e=t.isDisabled.currentValue,n=\"\"===e||e&&\"false\"!==e;wt.then(()=>{n&&!this.control.disabled?this.control.disable():!n&&this.control.disabled&&this.control.enable()})}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(y,9),r.Jb(x,10),r.Jb(T,10),r.Jb(h,10))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"\",\"ngModel\",\"\",3,\"formControlName\",\"\",3,\"formControl\",\"\"]],inputs:{name:\"name\",isDisabled:[\"disabled\",\"isDisabled\"],model:[\"ngModel\",\"model\"],options:[\"ngModelOptions\",\"options\"]},outputs:{update:\"ngModelChange\"},exportAs:[\"ngModel\"],features:[r.yb([_t]),r.wb,r.xb()]}),t})(),St=(()=>{class t{}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275dir=r.Eb({type:t,selectors:[[\"form\",3,\"ngNoForm\",\"\",3,\"ngNativeValidate\",\"\"]],hostAttrs:[\"novalidate\",\"\"]}),t})();const Ot={provide:x,useExisting:Object(r.S)(()=>Et),multi:!0};let Et=(()=>{class t{get required(){return this._required}set required(t){this._required=null!=t&&!1!==t&&\"false\"!==`${t}`,this._onChange&&this._onChange()}validate(t){return this.required?A.required(t):null}registerOnValidatorChange(t){this._onChange=t}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275dir=r.Eb({type:t,selectors:[[\"\",\"required\",\"\",\"formControlName\",\"\",3,\"type\",\"checkbox\"],[\"\",\"required\",\"\",\"formControl\",\"\",3,\"type\",\"checkbox\"],[\"\",\"required\",\"\",\"ngModel\",\"\",3,\"type\",\"checkbox\"]],hostVars:1,hostBindings:function(t,e){2&t&&r.Ab(\"required\",e.required?\"\":null)},inputs:{required:\"required\"},features:[r.yb([Ot])]}),t})(),xt=(()=>{class t{}return t.\\u0275mod=r.Hb({type:t}),t.\\u0275inj=r.Gb({factory:function(e){return new(e||t)}}),t})(),Tt=(()=>{class t{}return t.\\u0275mod=r.Hb({type:t}),t.\\u0275inj=r.Gb({factory:function(e){return new(e||t)},providers:[V],imports:[xt]}),t})()},\"4I5i\":function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return r}));const r=(()=>{function t(){return Error.call(this),this.message=\"argument out of range\",this.name=\"ArgumentOutOfRangeError\",this}return t.prototype=Object.create(Error.prototype),t})()},\"4Sfc\":function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return r}));class r{constructor(t,e,n,r,s){this.id=t,this.name=e,this.category=n,this.description=r,this.price=s}}},\"5+tZ\":function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return c}));var r=n(\"ZUHj\"),s=n(\"l7GE\"),i=n(\"51Dv\"),o=n(\"lJxs\"),a=n(\"Cfvw\");function c(t,e,n=Number.POSITIVE_INFINITY){return\"function\"==typeof e?r=>r.pipe(c((n,r)=>Object(a.a)(t(n,r)).pipe(Object(o.a)((t,s)=>e(n,t,r,s))),n)):(\"number\"==typeof e&&(n=e),e=>e.lift(new u(t,n)))}class u{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new l(t,this.project,this.concurrent))}}class l extends s.a{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e,t,n)}_innerSub(t,e,n){const s=new i.a(this,e,n),o=this.destination;o.add(s);const a=Object(r.a)(this,t,void 0,void 0,s);a!==s&&o.add(a)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t,e,n,r,s){this.destination.next(e)}notifyComplete(t){const e=this.buffer;this.remove(t),this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}},\"51Dv\":function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return s}));var r=n(\"7o/Q\");class s extends r.a{constructor(t,e,n){super(),this.parent=t,this.outerValue=e,this.outerIndex=n,this.index=0}_next(t){this.parent.notifyNext(this.outerValue,t,this.outerIndex,this.index++,this)}_error(t){this.parent.notifyError(t,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}},\"7o/Q\":function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return u}));var r=n(\"n6bG\"),s=n(\"gRHU\"),i=n(\"quSY\"),o=n(\"2QA8\"),a=n(\"2fFW\"),c=n(\"NJ4a\");class u extends i.a{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=s.a;break;case 1:if(!t){this.destination=s.a;break}if(\"object\"==typeof t){t instanceof u?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new l(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new l(this,t,e,n)}}[o.a](){return this}static create(t,e,n){const r=new u(t,e,n);return r.syncErrorThrowable=!1,r}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class l extends u{constructor(t,e,n,i){let o;super(),this._parentSubscriber=t;let a=this;Object(r.a)(e)?o=e:e&&(o=e.next,n=e.error,i=e.complete,e!==s.a&&(a=Object.create(e),Object(r.a)(a.unsubscribe)&&this.add(a.unsubscribe.bind(a)),a.unsubscribe=this.unsubscribe.bind(this))),this._context=a,this._next=o,this._error=n,this._complete=i}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;a.a.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:n}=a.a;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):Object(c.a)(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;Object(c.a)(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);a.a.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),a.a.useDeprecatedSynchronousErrorHandling)throw n;Object(c.a)(n)}}__tryOrSetError(t,e,n){if(!a.a.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{e.call(this._context,n)}catch(r){return a.a.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=r,t.syncErrorThrown=!0,!0):(Object(c.a)(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}},\"9ppp\":function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return r}));const r=(()=>{function t(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return t.prototype=Object.create(Error.prototype),t})()},Cfvw:function(t,e,n){\"use strict\";var r=n(\"HDdC\"),s=n(\"SeVD\"),i=n(\"quSY\"),o=n(\"kJWO\"),a=n(\"jZKg\"),c=n(\"Lhse\"),u=n(\"c2HN\"),l=n(\"I55L\");function h(t,e){return e?function(t,e){if(null!=t){if(function(t){return t&&\"function\"==typeof t[o.a]}(t))return function(t,e){return new r.a(n=>{const r=new i.a;return r.add(e.schedule(()=>{const s=t[o.a]();r.add(s.subscribe({next(t){r.add(e.schedule(()=>n.next(t)))},error(t){r.add(e.schedule(()=>n.error(t)))},complete(){r.add(e.schedule(()=>n.complete()))}}))})),r})}(t,e);if(Object(u.a)(t))return function(t,e){return new r.a(n=>{const r=new i.a;return r.add(e.schedule(()=>t.then(t=>{r.add(e.schedule(()=>{n.next(t),r.add(e.schedule(()=>n.complete()))}))},t=>{r.add(e.schedule(()=>n.error(t)))}))),r})}(t,e);if(Object(l.a)(t))return Object(a.a)(t,e);if(function(t){return t&&\"function\"==typeof t[c.a]}(t)||\"string\"==typeof t)return function(t,e){if(!t)throw new Error(\"Iterable cannot be null\");return new r.a(n=>{const r=new i.a;let s;return r.add(()=>{s&&\"function\"==typeof s.return&&s.return()}),r.add(e.schedule(()=>{s=t[c.a](),r.add(e.schedule((function(){if(n.closed)return;let t,e;try{const n=s.next();t=n.value,e=n.done}catch(r){return void n.error(r)}e?n.complete():(n.next(t),this.schedule())})))})),r})}(t,e)}throw new TypeError((null!==t&&typeof t||t)+\" is not observable\")}(t,e):t instanceof r.a?t:new r.a(Object(s.a)(t))}n.d(e,\"a\",(function(){return h}))},DH7j:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return r}));const r=(()=>Array.isArray||(t=>t&&\"number\"==typeof t.length))()},DZdm:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return o}));var r=n(\"lJxs\"),s=n(\"tk/3\"),i=n(\"fXoL\");let o=(()=>{class t{constructor(t){this.http=t,this.baseUrl=\"/api/\"}getProducts(){return this.http.get(this.baseUrl+\"products\")}saveOrder(t){return this.http.post(this.baseUrl+\"orders\",t)}authenticate(t,e){return this.http.post(this.baseUrl+\"login\",{name:t,password:e}).pipe(Object(r.a)(t=>(this.auth_token=t.success?t.token:null,t.success)))}saveProduct(t){return this.http.post(this.baseUrl+\"products\",t,this.getOptions())}updateProduct(t){return this.http.put(`${this.baseUrl}products/${t.id}`,t,this.getOptions())}deleteProduct(t){return this.http.delete(`${this.baseUrl}products/${t}`,this.getOptions())}getOrders(){return this.http.get(this.baseUrl+\"orders\",this.getOptions())}deleteOrder(t){return this.http.delete(`${this.baseUrl}orders/${t}`,this.getOptions())}updateOrder(t){return this.http.put(`${this.baseUrl}orders/${t.id}`,t,this.getOptions())}getOptions(){return{headers:new s.c({Authorization:`Bearer<${this.auth_token}>`})}}}return t.\\u0275fac=function(e){return new(e||t)(i.Qb(s.a))},t.\\u0275prov=i.Fb({token:t,factory:t.\\u0275fac}),t})()},EY2u:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return s})),n.d(e,\"b\",(function(){return i}));var r=n(\"HDdC\");const s=new r.a(t=>t.complete());function i(t){return t?function(t){return new r.a(e=>t.schedule(()=>e.complete()))}(t):s}},GyhO:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return i}));var r=n(\"LRne\"),s=n(\"0EUg\");function i(...t){return Object(s.a)()(Object(r.a)(...t))}},HDdC:function(t,e,n){\"use strict\";var r=n(\"7o/Q\"),s=n(\"2QA8\"),i=n(\"gRHU\"),o=n(\"kJWO\"),a=n(\"mCNh\"),c=n(\"2fFW\");n.d(e,\"a\",(function(){return u}));let u=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:o}=this,a=function(t,e,n){if(t){if(t instanceof r.a)return t;if(t[s.a])return t[s.a]()}return t||e||n?new r.a(t,e,n):new r.a(i.a)}(t,e,n);if(a.add(o?o.call(a,this.source):this.source||c.a.useDeprecatedSynchronousErrorHandling&&!a.syncErrorThrowable?this._subscribe(a):this._trySubscribe(a)),c.a.useDeprecatedSynchronousErrorHandling&&a.syncErrorThrowable&&(a.syncErrorThrowable=!1,a.syncErrorThrown))throw a.syncErrorValue;return a}_trySubscribe(t){try{return this._subscribe(t)}catch(e){c.a.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){const{closed:e,destination:n,isStopped:s}=t;if(e||s)return!1;t=n&&n instanceof r.a?n:null}return!0}(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=l(e))((e,n)=>{let r;r=this.subscribe(e=>{try{t(e)}catch(s){n(s),r&&r.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[o.a](){return this}pipe(...t){return 0===t.length?this:Object(a.b)(t)(this)}toPromise(t){return new(t=l(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function l(t){if(t||(t=c.a.Promise||Promise),!t)throw new Error(\"no Promise impl found\");return t}},I55L:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return r}));const r=t=>t&&\"number\"==typeof t.length&&\"function\"!=typeof t},IzEk:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return o}));var r=n(\"7o/Q\"),s=n(\"4I5i\"),i=n(\"EY2u\");function o(t){return e=>0===t?Object(i.b)():e.lift(new a(t))}class a{constructor(t){if(this.total=t,this.total<0)throw new s.a}call(t,e){return e.subscribe(new c(t,this.total))}}class c extends r.a{constructor(t,e){super(t),this.total=e,this.count=0}_next(t){const e=this.total,n=++this.count;n<=e&&(this.destination.next(t),n===e&&(this.destination.complete(),this.unsubscribe()))}}},KqfI:function(t,e,n){\"use strict\";function r(){}n.d(e,\"a\",(function(){return r}))},LRne:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return o}));var r=n(\"z+Ro\"),s=n(\"yCtX\"),i=n(\"jZKg\");function o(...t){let e=t[t.length-1];return Object(r.a)(e)?(t.pop(),Object(i.a)(t,e)):Object(s.a)(t)}},Lhse:function(t,e,n){\"use strict\";function r(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}n.d(e,\"a\",(function(){return s}));const s=r()},NJ4a:function(t,e,n){\"use strict\";function r(t){setTimeout(()=>{throw t},0)}n.d(e,\"a\",(function(){return r}))},NXyV:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return o}));var r=n(\"HDdC\"),s=n(\"Cfvw\"),i=n(\"EY2u\");function o(t){return new r.a(e=>{let n;try{n=t()}catch(r){return void e.error(r)}return(n?Object(s.a)(n):Object(i.b)()).subscribe(e)})}},SeVD:function(t,e,n){\"use strict\";var r=n(\"ngJS\"),s=n(\"NJ4a\"),i=n(\"Lhse\"),o=n(\"kJWO\"),a=n(\"I55L\"),c=n(\"c2HN\"),u=n(\"XoHu\");n.d(e,\"a\",(function(){return l}));const l=t=>{if(t&&\"function\"==typeof t[o.a])return l=t,t=>{const e=l[o.a]();if(\"function\"!=typeof e.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return e.subscribe(t)};if(Object(a.a)(t))return Object(r.a)(t);if(Object(c.a)(t))return n=t,t=>(n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,s.a),t);if(t&&\"function\"==typeof t[i.a])return e=t,t=>{const n=e[i.a]();for(;;){const e=n.next();if(e.done){t.complete();break}if(t.next(e.value),t.closed)break}return\"function\"==typeof n.return&&t.add(()=>{n.return&&n.return()}),t};{const e=Object(u.a)(t)?\"an invalid object\":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}var e,n,l}},SpAZ:function(t,e,n){\"use strict\";function r(t){return t}n.d(e,\"a\",(function(){return r}))},VRyK:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return a}));var r=n(\"HDdC\"),s=n(\"z+Ro\"),i=n(\"bHdf\"),o=n(\"yCtX\");function a(...t){let e=Number.POSITIVE_INFINITY,n=null,a=t[t.length-1];return Object(s.a)(a)?(n=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(e=t.pop())):\"number\"==typeof a&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof r.a?t[0]:Object(i.a)(e)(Object(o.a)(t,n))}},XNiG:function(t,e,n){\"use strict\";var r=n(\"HDdC\"),s=n(\"7o/Q\"),i=n(\"quSY\"),o=n(\"9ppp\");class a extends i.a{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}var c=n(\"2QA8\");n.d(e,\"b\",(function(){return u})),n.d(e,\"a\",(function(){return l}));class u extends s.a{constructor(t){super(t),this.destination=t}}let l=(()=>{class t extends r.a{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[c.a](){return new u(this)}lift(t){const e=new h(this,this);return e.operator=t,e}next(t){if(this.closed)throw new o.a;if(!this.isStopped){const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].next(t)}}error(t){if(this.closed)throw new o.a;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].error(t);this.observers.length=0}complete(){if(this.closed)throw new o.a;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let r=0;r<e;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new o.a;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new o.a;return this.hasError?(t.error(this.thrownError),i.a.EMPTY):this.isStopped?(t.complete(),i.a.EMPTY):(this.observers.push(t),new a(this,t))}asObservable(){const t=new r.a;return t.source=this,t}}return t.create=(t,e)=>new h(t,e),t})();class h extends l{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):i.a.EMPTY}}},XoHu:function(t,e,n){\"use strict\";function r(t){return null!==t&&\"object\"==typeof t}n.d(e,\"a\",(function(){return r}))},ZUHj:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return o}));var r=n(\"51Dv\"),s=n(\"SeVD\"),i=n(\"HDdC\");function o(t,e,n,o,a=new r.a(t,n,o)){if(!a.closed)return e instanceof i.a?e.subscribe(a):Object(s.a)(e)(a)}},bHdf:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return i}));var r=n(\"5+tZ\"),s=n(\"SpAZ\");function i(t=Number.POSITIVE_INFINITY){return Object(r.a)(s.a,t)}},bOdf:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return s}));var r=n(\"5+tZ\");function s(t,e){return Object(r.a)(t,e,1)}},c2HN:function(t,e,n){\"use strict\";function r(t){return!!t&&\"function\"!=typeof t.subscribe&&\"function\"==typeof t.then}n.d(e,\"a\",(function(){return r}))},eIep:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return c}));var r=n(\"l7GE\"),s=n(\"51Dv\"),i=n(\"ZUHj\"),o=n(\"lJxs\"),a=n(\"Cfvw\");function c(t,e){return\"function\"==typeof e?n=>n.pipe(c((n,r)=>Object(a.a)(t(n,r)).pipe(Object(o.a)((t,s)=>e(n,t,r,s))))):e=>e.lift(new u(t))}class u{constructor(t){this.project=t}call(t,e){return e.subscribe(new l(t,this.project))}}class l extends r.a{constructor(t,e){super(t),this.project=e,this.index=0}_next(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this._innerSub(e,t,n)}_innerSub(t,e,n){const r=this.innerSubscription;r&&r.unsubscribe();const o=new s.a(this,e,n),a=this.destination;a.add(o),this.innerSubscription=Object(i.a)(this,t,void 0,void 0,o),this.innerSubscription!==o&&a.add(this.innerSubscription)}_complete(){const{innerSubscription:t}=this;t&&!t.closed||super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=null}notifyComplete(t){this.destination.remove(t),this.innerSubscription=null,this.isStopped&&super._complete()}notifyNext(t,e,n,r,s){this.destination.next(e)}}},fXoL:function(t,e,n){\"use strict\";var r=n(\"XNiG\"),s=n(\"quSY\"),i=n(\"HDdC\"),o=n(\"VRyK\"),a=n(\"oB13\"),c=n(\"x+ZX\");function u(){return new r.a}function l(t,e,n){const r=function(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}(e);function s(...t){if(this instanceof s)return r.apply(this,t),this;const e=new s(...t);return n.annotation=e,n;function n(t,n,r){const s=t.hasOwnProperty(\"__parameters__\")?t.__parameters__:Object.defineProperty(t,\"__parameters__\",{value:[]}).__parameters__;for(;s.length<=r;)s.push(null);return(s[r]=s[r]||[]).push(e),t}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s}n.d(e,\"a\",(function(){return ai})),n.d(e,\"b\",(function(){return $a})),n.d(e,\"c\",(function(){return La})),n.d(e,\"d\",(function(){return Ma})),n.d(e,\"e\",(function(){return Da})),n.d(e,\"f\",(function(){return Nc})),n.d(e,\"g\",(function(){return Oc})),n.d(e,\"h\",(function(){return qs})),n.d(e,\"i\",(function(){return Ya})),n.d(e,\"j\",(function(){return wo})),n.d(e,\"k\",(function(){return Ba})),n.d(e,\"l\",(function(){return Co})),n.d(e,\"m\",(function(){return en})),n.d(e,\"n\",(function(){return va})),n.d(e,\"o\",(function(){return W})),n.d(e,\"p\",(function(){return h})),n.d(e,\"q\",(function(){return G})),n.d(e,\"r\",(function(){return oi})),n.d(e,\"s\",(function(){return Ho})),n.d(e,\"t\",(function(){return $o})),n.d(e,\"u\",(function(){return qa})),n.d(e,\"v\",(function(){return at})),n.d(e,\"w\",(function(){return xc})),n.d(e,\"x\",(function(){return ot})),n.d(e,\"y\",(function(){return vc})),n.d(e,\"z\",(function(){return rc})),n.d(e,\"A\",(function(){return d})),n.d(e,\"B\",(function(){return Ha})),n.d(e,\"C\",(function(){return Fa})),n.d(e,\"D\",(function(){return xo})),n.d(e,\"E\",(function(){return Oo})),n.d(e,\"F\",(function(){return Eo})),n.d(e,\"G\",(function(){return ko})),n.d(e,\"H\",(function(){return zn})),n.d(e,\"I\",(function(){return f})),n.d(e,\"J\",(function(){return Ac})),n.d(e,\"K\",(function(){return Go})),n.d(e,\"L\",(function(){return hc})),n.d(e,\"M\",(function(){return Ao})),n.d(e,\"N\",(function(){return Zo})),n.d(e,\"O\",(function(){return gt})),n.d(e,\"P\",(function(){return gi})),n.d(e,\"Q\",(function(){return _c})),n.d(e,\"R\",(function(){return _n})),n.d(e,\"S\",(function(){return P})),n.d(e,\"T\",(function(){return vn})),n.d(e,\"U\",(function(){return Ic})),n.d(e,\"V\",(function(){return fc})),n.d(e,\"W\",(function(){return za})),n.d(e,\"X\",(function(){return Gs})),n.d(e,\"Y\",(function(){return ua})),n.d(e,\"Z\",(function(){return Hn})),n.d(e,\"ab\",(function(){return Gn})),n.d(e,\"bb\",(function(){return On})),n.d(e,\"cb\",(function(){return ln})),n.d(e,\"db\",(function(){return dn})),n.d(e,\"eb\",(function(){return mn})),n.d(e,\"fb\",(function(){return fn})),n.d(e,\"gb\",(function(){return pn})),n.d(e,\"hb\",(function(){return gn})),n.d(e,\"ib\",(function(){return ia})),n.d(e,\"jb\",(function(){return Pc})),n.d(e,\"kb\",(function(){return oa})),n.d(e,\"lb\",(function(){return aa})),n.d(e,\"mb\",(function(){return hn})),n.d(e,\"nb\",(function(){return V})),n.d(e,\"ob\",(function(){return mi})),n.d(e,\"pb\",(function(){return Mi})),n.d(e,\"qb\",(function(){return Ni})),n.d(e,\"rb\",(function(){return fi})),n.d(e,\"sb\",(function(){return sa})),n.d(e,\"tb\",(function(){return ve})),n.d(e,\"ub\",(function(){return k})),n.d(e,\"vb\",(function(){return un})),n.d(e,\"wb\",(function(){return to})),n.d(e,\"xb\",(function(){return oo})),n.d(e,\"yb\",(function(){return yo})),n.d(e,\"zb\",(function(){return vr})),n.d(e,\"Ab\",(function(){return Ci})),n.d(e,\"Bb\",(function(){return zi})),n.d(e,\"Cb\",(function(){return Pa})),n.d(e,\"Db\",(function(){return _t})),n.d(e,\"Eb\",(function(){return Tt})),n.d(e,\"Fb\",(function(){return y})),n.d(e,\"Gb\",(function(){return v})),n.d(e,\"Hb\",(function(){return Ot})),n.d(e,\"Ib\",(function(){return kt})),n.d(e,\"Jb\",(function(){return Ei})),n.d(e,\"Kb\",(function(){return Ii})),n.d(e,\"Lb\",(function(){return Pi})),n.d(e,\"Mb\",(function(){return ji})),n.d(e,\"Nb\",(function(){return Ri})),n.d(e,\"Ob\",(function(){return Ke})),n.d(e,\"Pb\",(function(){return Xi})),n.d(e,\"Qb\",(function(){return nt})),n.d(e,\"Rb\",(function(){return xi})),n.d(e,\"Sb\",(function(){return Na})),n.d(e,\"Tb\",(function(){return Ti})),n.d(e,\"Ub\",(function(){return Di})),n.d(e,\"Vb\",(function(){return Ia})),n.d(e,\"Wb\",(function(){return Ui})),n.d(e,\"Xb\",(function(){return ba})),n.d(e,\"Yb\",(function(){return ya})),n.d(e,\"Zb\",(function(){return ki})),n.d(e,\"ac\",(function(){return ma})),n.d(e,\"bc\",(function(){return ja})),n.d(e,\"cc\",(function(){return Oi})),n.d(e,\"dc\",(function(){return zt})),n.d(e,\"ec\",(function(){return Wn})),n.d(e,\"fc\",(function(){return Et})),n.d(e,\"gc\",(function(){return Si})),n.d(e,\"hc\",(function(){return Zi})),n.d(e,\"ic\",(function(){return Qi})),n.d(e,\"jc\",(function(){return Ji})),n.d(e,\"kc\",(function(){return Ki}));const h=l(\"Inject\",t=>({token:t})),d=l(\"Optional\"),p=l(\"Self\"),f=l(\"SkipSelf\");var g=function(t){return t[t.Default=0]=\"Default\",t[t.Host=1]=\"Host\",t[t.Self=2]=\"Self\",t[t.SkipSelf=4]=\"SkipSelf\",t[t.Optional=8]=\"Optional\",t}({});function m(t){for(let e in t)if(t[e]===m)return e;throw Error(\"Could not find renamed property on target object.\")}function b(t,e){for(const n in e)e.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(t[n]=e[n])}function y(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function v(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function _(t){return w(t,t[S])||w(t,t[x])}function w(t,e){return e&&e.token===t?e:null}function C(t){return t&&(t.hasOwnProperty(O)||t.hasOwnProperty(T))?t[O]:null}const S=m({\"\\u0275prov\":m}),O=m({\"\\u0275inj\":m}),E=m({\"\\u0275provFallback\":m}),x=m({ngInjectableDef:m}),T=m({ngInjectorDef:m});function k(t){if(\"string\"==typeof t)return t;if(Array.isArray(t))return\"[\"+t.map(k).join(\", \")+\"]\";if(null==t)return\"\"+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const e=t.toString();if(null==e)return\"\"+e;const n=e.indexOf(\"\\n\");return-1===n?e:e.substring(0,n)}function A(t,e){return null==t||\"\"===t?null===e?\"\":e:null==e||\"\"===e?t:t+\" \"+e}const j=m({__forward_ref__:m});function P(t){return t.__forward_ref__=P,t.toString=function(){return k(this())},t}function I(t){return R(t)?t():t}function R(t){return\"function\"==typeof t&&t.hasOwnProperty(j)&&t.__forward_ref__===P}const N=\"undefined\"!=typeof globalThis&&globalThis,M=\"undefined\"!=typeof window&&window,D=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,L=\"undefined\"!=typeof global&&global,V=N||L||M||D,U=m({\"\\u0275cmp\":m}),F=m({\"\\u0275dir\":m}),H=m({\"\\u0275pipe\":m}),$=m({\"\\u0275mod\":m}),z=m({\"\\u0275loc\":m}),q=m({\"\\u0275fac\":m}),B=m({__NG_ELEMENT_ID__:m});class G{constructor(t,e){this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\\u0275prov=y({token:this,providedIn:e.providedIn||\"root\",factory:e.factory}))}toString(){return`InjectionToken ${this._desc}`}}const W=new G(\"INJECTOR\",-1),Z={},Q=/\\n/gm,J=m({provide:String,useValue:m});let K,X=void 0;function Y(t){const e=X;return X=t,e}function tt(t){const e=K;return K=t,e}function et(t,e=g.Default){if(void 0===X)throw new Error(\"inject() must be called from an injection context\");return null===X?rt(t,void 0,e):X.get(t,e&g.Optional?null:void 0,e)}function nt(t,e=g.Default){return(K||et)(I(t),e)}function rt(t,e,n){const r=_(t);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&g.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${k(t)}]`)}function st(t){const e=[];for(let n=0;n<t.length;n++){const r=I(t[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let t=void 0,n=g.Default;for(let e=0;e<r.length;e++){const s=r[e];s instanceof d||\"Optional\"===s.ngMetadataName||s===d?n|=g.Optional:s instanceof f||\"SkipSelf\"===s.ngMetadataName||s===f?n|=g.SkipSelf:s instanceof p||\"Self\"===s.ngMetadataName||s===p?n|=g.Self:t=s instanceof h||s===h?s.token:s}e.push(nt(t,n))}else e.push(nt(r))}return e}class it{get(t,e=Z){if(e===Z){const e=new Error(`NullInjectorError: No provider for ${k(t)}!`);throw e.name=\"NullInjectorError\",e}return e}}class ot{}class at{}function ct(t,e){t.forEach(t=>Array.isArray(t)?ct(t,e):e(t))}function ut(t,e,n){e>=t.length?t.push(n):t.splice(e,0,n)}function lt(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function ht(t,e,n){let r=pt(t,e);return r>=0?t[1|r]=n:(r=~r,function(t,e,n,r){let s=t.length;if(s==e)t.push(n,r);else if(1===s)t.push(r,t[0]),t[0]=n;else{for(s--,t.push(t[s-1],t[s]);s>e;)t[s]=t[s-2],s--;t[e]=n,t[e+1]=r}}(t,r,e,n)),r}function dt(t,e){const n=pt(t,e);if(n>=0)return t[1|n]}function pt(t,e){return function(t,e,n){let r=0,s=t.length>>1;for(;s!==r;){const n=r+(s-r>>1),i=t[n<<1];if(e===i)return n<<1;i>e?s=n:r=n+1}return~(s<<1)}(t,e)}const ft=function(){var t={OnPush:0,Default:1};return t[t.OnPush]=\"OnPush\",t[t.Default]=\"Default\",t}(),gt=function(){var t={Emulated:0,Native:1,None:2,ShadowDom:3};return t[t.Emulated]=\"Emulated\",t[t.Native]=\"Native\",t[t.None]=\"None\",t[t.ShadowDom]=\"ShadowDom\",t}();function mt(t){return\"\"+{toString:t}}const bt={},yt=[];let vt=0;function _t(t){const e=t.type,n=e.prototype,r={},s={type:e,providersResolver:null,decls:t.decls,vars:t.vars,factory:null,template:t.template||null,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:t.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:t.changeDetection===ft.OnPush,directiveDefs:null,pipeDefs:null,selectors:t.selectors||yt,viewQuery:t.viewQuery||null,features:t.features||null,data:t.data||{},encapsulation:t.encapsulation||gt.Emulated,id:\"c\",styles:t.styles||yt,_:null,setInput:null,schemas:t.schemas||null,tView:null};return s._=mt(()=>{const e=t.directives,n=t.features,i=t.pipes;s.id+=vt++,s.inputs=xt(t.inputs,r),s.outputs=xt(t.outputs),n&&n.forEach(t=>t(s)),s.directiveDefs=e?()=>(\"function\"==typeof e?e():e).map(wt):null,s.pipeDefs=i?()=>(\"function\"==typeof i?i():i).map(Ct):null}),s}function wt(t){return At(t)||function(t){return t[F]||null}(t)}function Ct(t){return function(t){return t[H]||null}(t)}const St={};function Ot(t){const e={type:t.type,bootstrap:t.bootstrap||yt,declarations:t.declarations||yt,imports:t.imports||yt,exports:t.exports||yt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&mt(()=>{St[t.id]=t.type}),e}function Et(t,e){return mt(()=>{const n=Pt(t,!0);n.declarations=e.declarations||yt,n.imports=e.imports||yt,n.exports=e.exports||yt})}function xt(t,e){if(null==t)return bt;const n={};for(const r in t)if(t.hasOwnProperty(r)){let s=t[r],i=s;Array.isArray(s)&&(i=s[1],s=s[0]),n[s]=r,e&&(e[s]=i)}return n}const Tt=_t;function kt(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,onDestroy:t.type.prototype.ngOnDestroy||null}}function At(t){return t[U]||null}function jt(t,e){return t.hasOwnProperty(q)?t[q]:null}function Pt(t,e){const n=t[$]||null;if(!n&&!0===e)throw new Error(`Type ${k(t)} does not have '\\u0275mod' property.`);return n}function It(t){return Array.isArray(t)&&\"object\"==typeof t[1]}function Rt(t){return Array.isArray(t)&&!0===t[1]}function Nt(t){return 0!=(8&t.flags)}function Mt(t){return 2==(2&t.flags)}function Dt(t){return 1==(1&t.flags)}function Lt(t){return null!==t.template}function Vt(t){return 0!=(512&t[2])}const Ut={lFrame:ie(null),bindingsEnabled:!0,checkNoChangesMode:!1};function Ft(){return Ut.bindingsEnabled}function Ht(){return Ut.lFrame.lView}function $t(){return Ut.lFrame.tView}function zt(t){Ut.lFrame.contextLView=t}function qt(){return Ut.lFrame.previousOrParentTNode}function Bt(t,e){Ut.lFrame.previousOrParentTNode=t,Ut.lFrame.isParent=e}function Gt(){return Ut.lFrame.isParent}function Wt(){return Ut.checkNoChangesMode}function Zt(t){Ut.checkNoChangesMode=t}function Qt(){const t=Ut.lFrame;let e=t.bindingRootIndex;return-1===e&&(e=t.bindingRootIndex=t.tView.bindingStartIndex),e}function Jt(){return Ut.lFrame.bindingIndex}function Kt(){return Ut.lFrame.bindingIndex++}function Xt(t){const e=Ut.lFrame,n=e.bindingIndex;return e.bindingIndex=e.bindingIndex+t,n}function Yt(t,e){const n=Ut.lFrame;n.bindingIndex=n.bindingRootIndex=t,n.currentDirectiveIndex=e}function te(){return Ut.lFrame.currentQueryIndex}function ee(t){Ut.lFrame.currentQueryIndex=t}function ne(t,e){const n=se();Ut.lFrame=n,n.previousOrParentTNode=e,n.lView=t}function re(t,e){const n=se(),r=t[1];Ut.lFrame=n,n.previousOrParentTNode=e,n.lView=t,n.tView=r,n.contextLView=t,n.bindingIndex=r.bindingStartIndex}function se(){const t=Ut.lFrame,e=null===t?null:t.child;return null===e?ie(t):e}function ie(t){const e={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null};return null!==t&&(t.child=e),e}function oe(){const t=Ut.lFrame;return Ut.lFrame=t.parent,t.previousOrParentTNode=null,t.lView=null,t}const ae=oe;function ce(){const t=oe();t.isParent=!0,t.tView=null,t.selectedIndex=0,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.currentSanitizer=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function ue(){return Ut.lFrame.selectedIndex}function le(t){Ut.lFrame.selectedIndex=t}function he(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n<r;n++){const e=t.data[n];e.afterContentInit&&(t.contentHooks||(t.contentHooks=[])).push(-n,e.afterContentInit),e.afterContentChecked&&((t.contentHooks||(t.contentHooks=[])).push(n,e.afterContentChecked),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,e.afterContentChecked)),e.afterViewInit&&(t.viewHooks||(t.viewHooks=[])).push(-n,e.afterViewInit),e.afterViewChecked&&((t.viewHooks||(t.viewHooks=[])).push(n,e.afterViewChecked),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,e.afterViewChecked)),null!=e.onDestroy&&(t.destroyHooks||(t.destroyHooks=[])).push(n,e.onDestroy)}}function de(t,e,n){ge(t,e,3,n)}function pe(t,e,n,r){(3&t[2])===n&&ge(t,e,n,r)}function fe(t,e){let n=t[2];(3&n)===e&&(n&=1023,n+=1,t[2]=n)}function ge(t,e,n,r){const s=null!=r?r:-1;let i=0;for(let o=void 0!==r?65535&t[18]:0;o<e.length;o++)if(\"number\"==typeof e[o+1]){if(i=e[o],null!=r&&i>=r)break}else e[o]<0&&(t[18]+=65536),(i<s||-1==s)&&(me(t,n,e,o),t[18]=(4294901760&t[18])+o+2),o++}function me(t,e,n,r){const s=n[r]<0,i=n[r+1],o=t[s?-n[r]:n[r]];s?t[2]>>10<t[18]>>16&&(3&t[2])===e&&(t[2]+=1024,i.call(o)):i.call(o)}class be{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}let ye=void 0;function ve(t){ye=t}function _e(t){return!!t.listen}const we={createRenderer:(t,e)=>void 0!==ye?ye:\"undefined\"!=typeof document?document:void 0};function Ce(t,e,n){const r=_e(t);let s=0;for(;s<n.length;){const i=n[s];if(\"number\"==typeof i){if(0!==i)break;s++;const o=n[s++],a=n[s++],c=n[s++];r?t.setAttribute(e,a,c,o):e.setAttributeNS(o,a,c)}else{const o=i,a=n[++s];Oe(o)?r&&t.setProperty(e,o,a):r?t.setAttribute(e,o,a):e.setAttribute(o,a),s++}}return s}function Se(t){return 3===t||4===t||6===t}function Oe(t){return 64===t.charCodeAt(0)}function Ee(t,e){if(null===e||0===e.length);else if(null===t||0===t.length)t=e.slice();else{let n=-1;for(let r=0;r<e.length;r++){const s=e[r];\"number\"==typeof s?n=s:0===n||xe(t,n,s,null,-1===n||2===n?e[++r]:null)}}return t}function xe(t,e,n,r,s){let i=0,o=t.length;if(-1===e)o=-1;else for(;i<t.length;){const n=t[i++];if(\"number\"==typeof n){if(n===e){o=-1;break}if(n>e){o=i-1;break}}}for(;i<t.length;){const e=t[i];if(\"number\"==typeof e)break;if(e===n){if(null===r)return void(null!==s&&(t[i+1]=s));if(r===t[i+1])return void(t[i+2]=s)}i++,null!==r&&i++,null!==s&&i++}-1!==o&&(t.splice(o,0,e),i=o+1),t.splice(i++,0,n),null!==r&&t.splice(i++,0,r),null!==s&&t.splice(i++,0,s)}function Te(t){return-1!==t}function ke(t){return 32767&t}function Ae(t){return t>>16}function je(t,e){let n=Ae(t),r=e;for(;n>0;)r=r[15],n--;return r}function Pe(t){return\"string\"==typeof t?t:null==t?\"\":\"\"+t}function Ie(t){return\"function\"==typeof t?t.name||t.toString():\"object\"==typeof t&&null!=t&&\"function\"==typeof t.type?t.type.name||t.type.toString():Pe(t)}const Re=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(V))();function Ne(t){return t instanceof Function?t():t}let Me=!0;function De(t){const e=Me;return Me=t,e}let Le=0;function Ve(t,e){const n=Fe(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,Ue(r.data,t),Ue(e,null),Ue(r.blueprint,null));const s=He(t,e),i=t.injectorIndex;if(Te(s)){const t=ke(s),n=je(s,e),r=n[1].data;for(let s=0;s<8;s++)e[i+s]=n[t+s]|r[t+s]}return e[i+8]=s,i}function Ue(t,e){t.push(0,0,0,0,0,0,0,0,e)}function Fe(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null==e[t.injectorIndex+8]?-1:t.injectorIndex}function He(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=e[6],r=1;for(;n&&-1===n.injectorIndex;)n=(e=e[15])?e[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function $e(t,e,n){!function(t,e,n){let r=\"string\"!=typeof n?n[B]:n.charCodeAt(0)||0;null==r&&(r=n[B]=Le++);const s=255&r,i=1<<s,o=64&s,a=32&s,c=e.data;128&s?o?a?c[t+7]|=i:c[t+6]|=i:a?c[t+5]|=i:c[t+4]|=i:o?a?c[t+3]|=i:c[t+2]|=i:a?c[t+1]|=i:c[t]|=i}(t,e,n)}function ze(t,e,n,r=g.Default,s){if(null!==t){const s=function(t){if(\"string\"==typeof t)return t.charCodeAt(0)||0;const e=t[B];return\"number\"==typeof e&&e>0?255&e:e}(n);if(\"function\"==typeof s){ne(e,t);try{const t=s();if(null!=t||r&g.Optional)return t;throw new Error(`No provider for ${Ie(n)}!`)}finally{ae()}}else if(\"number\"==typeof s){if(-1===s)return new Je(t,e);let i=null,o=Fe(t,e),a=-1,c=r&g.Host?e[16][6]:null;for((-1===o||r&g.SkipSelf)&&(a=-1===o?He(t,e):e[o+8],Qe(r,!1)?(i=e[1],o=ke(a),e=je(a,e)):o=-1);-1!==o;){a=e[o+8];const t=e[1];if(Ze(s,o,t.data)){const t=Be(o,e,n,i,r,c);if(t!==qe)return t}Qe(r,e[1].data[o+8]===c)&&Ze(s,o,e)?(i=t,o=ke(a),e=je(a,e)):o=-1}}}if(r&g.Optional&&void 0===s&&(s=null),0==(r&(g.Self|g.Host))){const t=e[9],i=tt(void 0);try{return t?t.get(n,s,r&g.Optional):rt(n,s,r&g.Optional)}finally{tt(i)}}if(r&g.Optional)return s;throw new Error(`NodeInjector: NOT_FOUND [${Ie(n)}]`)}const qe={};function Be(t,e,n,r,s,i){const o=e[1],a=o.data[t+8],c=Ge(a,o,n,null==r?Mt(a)&&Me:r!=o&&3===a.type,s&g.Host&&i===a);return null!==c?We(e,o,c,a):qe}function Ge(t,e,n,r,s){const i=t.providerIndexes,o=e.data,a=65535&i,c=t.directiveStart,u=i>>16,l=s?a+u:t.directiveEnd;for(let h=r?a:a+u;h<l;h++){const t=o[h];if(h<c&&n===t||h>=c&&t.type===n)return h}if(s){const t=o[c];if(t&&Lt(t)&&t.type===n)return c}return null}function We(t,e,n,r){let s=t[n];const i=e.data;if(s instanceof be){const o=s;if(o.resolving)throw new Error(`Circular dep for ${Ie(i[n])}`);const a=De(o.canSeeViewProviders);let c;o.resolving=!0,o.injectImpl&&(c=tt(o.injectImpl)),ne(t,r);try{s=t[n]=o.factory(void 0,i,t,r),e.firstCreatePass&&n>=r.directiveStart&&function(t,e,n){const{onChanges:r,onInit:s,doCheck:i}=e;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,r)),s&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-t,s),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,i))}(n,i[n],e)}finally{o.injectImpl&&tt(c),De(a),o.resolving=!1,ae()}}return s}function Ze(t,e,n){const r=64&t,s=32&t;let i;return i=128&t?r?s?n[e+7]:n[e+6]:s?n[e+5]:n[e+4]:r?s?n[e+3]:n[e+2]:s?n[e+1]:n[e],!!(i&1<<t)}function Qe(t,e){return!(t&g.Self||t&g.Host&&e)}class Je{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return ze(this._tNode,this._lView,t,void 0,e)}}function Ke(t){const e=Object.getPrototypeOf(t.prototype).constructor,n=e[q]||function t(e){const n=e;if(R(e))return()=>{const e=t(I(n));return e?e():null};let r=jt(n);if(null===r){const t=C(n);r=t&&t.factory}return r||null}(e);return null!==n?n:t=>new t}function Xe(t){return t.ngDebugContext}function Ye(t){return t.ngOriginalError}function tn(t,...e){t.error(...e)}class en{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),r=function(t){return t.ngErrorLogger||tn}(t);r(this._console,\"ERROR\",t),e&&r(this._console,\"ORIGINAL ERROR\",e),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(t){return t?Xe(t)?Xe(t):this._findContext(Ye(t)):null}_findOriginalError(t){let e=Ye(t);for(;e&&Ye(e);)e=Ye(e);return e}}class nn{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}`+\" (see http://g.co/ng/security#xss)\"}}class rn extends nn{getTypeName(){return\"HTML\"}}class sn extends nn{getTypeName(){return\"Style\"}}class on extends nn{getTypeName(){return\"Script\"}}class an extends nn{getTypeName(){return\"URL\"}}class cn extends nn{getTypeName(){return\"ResourceURL\"}}function un(t){return t instanceof nn?t.changingThisBreaksApplicationSecurity:t}function ln(t,e){const n=hn(t);if(null!=n&&n!==e){if(\"ResourceURL\"===n&&\"URL\"===e)return!0;throw new Error(`Required a safe ${e}, got a ${n} (see http://g.co/ng/security#xss)`)}return n===e}function hn(t){return t instanceof nn&&t.getTypeName()||null}function dn(t){return new rn(t)}function pn(t){return new sn(t)}function fn(t){return new on(t)}function gn(t){return new an(t)}function mn(t){return new cn(t)}let bn=!0,yn=!1;function vn(){return yn=!0,bn}function _n(){if(yn)throw new Error(\"Cannot enable prod mode after platform setup.\");bn=!1}class wn{constructor(t){this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument(\"sanitization-inert\");let e=this.inertDocument.body;if(null==e){const t=this.inertDocument.createElement(\"html\");this.inertDocument.appendChild(t),e=this.inertDocument.createElement(\"body\"),t.appendChild(e)}e.innerHTML='<svg><g onload=\"this.parentNode.remove()\"></g></svg>',!e.querySelector||e.querySelector(\"svg\")?(e.innerHTML='<svg><p><style><img src=\"</style><img src=x onerror=alert(1)//\">',this.getInertBodyElement=e.querySelector&&e.querySelector(\"svg img\")&&function(){try{return!!window.DOMParser}catch(t){return!1}}()?this.getInertBodyElement_DOMParser:this.getInertBodyElement_InertDocument):this.getInertBodyElement=this.getInertBodyElement_XHR}getInertBodyElement_XHR(t){t=\"<body><remove></remove>\"+t+\"</body>\";try{t=encodeURI(t)}catch(r){return null}const e=new XMLHttpRequest;e.responseType=\"document\",e.open(\"GET\",\"data:text/html;charset=utf-8,\"+t,!1),e.send(void 0);const n=e.response.body;return n.removeChild(n.firstChild),n}getInertBodyElement_DOMParser(t){t=\"<body><remove></remove>\"+t+\"</body>\";try{const e=(new window.DOMParser).parseFromString(t,\"text/html\").body;return e.removeChild(e.firstChild),e}catch(e){return null}}getInertBodyElement_InertDocument(t){const e=this.inertDocument.createElement(\"template\");if(\"content\"in e)return e.innerHTML=t,e;const n=this.inertDocument.createElement(\"body\");return n.innerHTML=t,this.defaultDoc.documentMode&&this.stripCustomNsAttrs(n),n}stripCustomNsAttrs(t){const e=t.attributes;for(let r=e.length-1;0<r;r--){const n=e.item(r).name;\"xmlns:ns1\"!==n&&0!==n.indexOf(\"ns1:\")||t.removeAttribute(n)}let n=t.firstChild;for(;n;)n.nodeType===Node.ELEMENT_NODE&&this.stripCustomNsAttrs(n),n=n.nextSibling}}const Cn=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,Sn=/^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\\/]+=*$/i;function On(t){return(t=String(t)).match(Cn)||t.match(Sn)?t:(vn()&&console.warn(`WARNING: sanitizing unsafe URL value ${t} (see http://g.co/ng/security#xss)`),\"unsafe:\"+t)}function En(t){const e={};for(const n of t.split(\",\"))e[n]=!0;return e}function xn(...t){const e={};for(const n of t)for(const t in n)n.hasOwnProperty(t)&&(e[t]=!0);return e}const Tn=En(\"area,br,col,hr,img,wbr\"),kn=En(\"colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr\"),An=En(\"rp,rt\"),jn=xn(An,kn),Pn=xn(Tn,xn(kn,En(\"address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul\")),xn(An,En(\"a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video\")),jn),In=En(\"background,cite,href,itemtype,longdesc,poster,src,xlink:href\"),Rn=En(\"srcset\"),Nn=xn(In,Rn,En(\"abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width\"),En(\"aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext\")),Mn=En(\"script,style,template\");class Dn{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(t){let e=t.firstChild,n=!0;for(;e;)if(e.nodeType===Node.ELEMENT_NODE?n=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,n&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let t=this.checkClobberedElement(e,e.nextSibling);if(t){e=t;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join(\"\")}startElement(t){const e=t.nodeName.toLowerCase();if(!Pn.hasOwnProperty(e))return this.sanitizedSomething=!0,!Mn.hasOwnProperty(e);this.buf.push(\"<\"),this.buf.push(e);const n=t.attributes;for(let s=0;s<n.length;s++){const t=n.item(s),e=t.name,i=e.toLowerCase();if(!Nn.hasOwnProperty(i)){this.sanitizedSomething=!0;continue}let o=t.value;In[i]&&(o=On(o)),Rn[i]&&(r=o,o=(r=String(r)).split(\",\").map(t=>On(t.trim())).join(\", \")),this.buf.push(\" \",e,'=\"',Un(o),'\"')}var r;return this.buf.push(\">\"),!0}endElement(t){const e=t.nodeName.toLowerCase();Pn.hasOwnProperty(e)&&!Tn.hasOwnProperty(e)&&(this.buf.push(\"</\"),this.buf.push(e),this.buf.push(\">\"))}chars(t){this.buf.push(Un(t))}checkClobberedElement(t,e){if(e&&(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`);return e}}const Ln=/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g,Vn=/([^\\#-~ |!])/g;function Un(t){return t.replace(/&/g,\"&amp;\").replace(Ln,(function(t){return\"&#\"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+\";\"})).replace(Vn,(function(t){return\"&#\"+t.charCodeAt(0)+\";\"})).replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")}let Fn;function Hn(t,e){let n=null;try{Fn=Fn||new wn(t);let r=e?String(e):\"\";n=Fn.getInertBodyElement(r);let s=5,i=r;do{if(0===s)throw new Error(\"Failed to sanitize html because the input is unstable\");s--,r=i,i=n.innerHTML,n=Fn.getInertBodyElement(r)}while(r!==i);const o=new Dn,a=o.sanitizeChildren($n(n)||n);return vn()&&o.sanitizedSomething&&console.warn(\"WARNING: sanitizing HTML stripped some content, see http://g.co/ng/security#xss\"),a}finally{if(n){const t=$n(n)||n;for(;t.firstChild;)t.removeChild(t.firstChild)}}}function $n(t){return\"content\"in t&&function(t){return t.nodeType===Node.ELEMENT_NODE&&\"TEMPLATE\"===t.nodeName}(t)?t.content:null}const zn=function(){var t={NONE:0,HTML:1,STYLE:2,SCRIPT:3,URL:4,RESOURCE_URL:5};return t[t.NONE]=\"NONE\",t[t.HTML]=\"HTML\",t[t.STYLE]=\"STYLE\",t[t.SCRIPT]=\"SCRIPT\",t[t.URL]=\"URL\",t[t.RESOURCE_URL]=\"RESOURCE_URL\",t}(),qn=new RegExp(\"^([-,.\\\"'%_!# a-zA-Z0-9]+|(?:(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|Z|3d)?|(?:rgb|hsl)a?|(?:repeating-)?(?:linear|radial)-gradient|(?:attr|calc|var))\\\\([-0-9.%, #a-zA-Z]+\\\\))$\",\"g\"),Bn=/^url\\(([^)]+)\\)$/;function Gn(t){if(!(t=String(t).trim()))return\"\";const e=t.match(Bn);return e&&On(e[1])===e[1]||t.match(qn)&&function(t){let e=!0,n=!0;for(let r=0;r<t.length;r++){const s=t.charAt(r);\"'\"===s&&n?e=!e:'\"'===s&&e&&(n=!n)}return e&&n}(t)?t:(vn()&&console.warn(`WARNING: sanitizing unsafe style value ${t} (see http://g.co/ng/security#xss).`),\"unsafe\")}function Wn(t){const e=function(){const t=Ht();return t&&t[12]}();return e?e.sanitize(zn.URL,t)||\"\":ln(t,\"URL\")?un(t):On(Pe(t))}function Zn(t){for(;Array.isArray(t);)t=t[0];return t}function Qn(t,e){return Zn(e[t+19])}function Jn(t,e){return Zn(e[t.index])}function Kn(t,e){return t.data[e+19]}function Xn(t,e){return t[e+19]}function Yn(t,e){const n=e[t];return It(n)?n:n[0]}function tr(t){const e=function(t){return t.__ngContext__||null}(t);return e?Array.isArray(e)?e:e.lView:null}function er(t){return 4==(4&t[2])}function nr(t){return 128==(128&t[2])}function rr(t,e){return null===t||null==e?null:t[e]}function sr(t){t[18]=0}function ir(t,e){t.__ngContext__=e}function or(t){throw new Error(`Multiple components match node with tagname ${t.tagName}`)}function ar(){throw new Error(\"Cannot mix multi providers and regular providers\")}function cr(t,e,n){let r=t.length;for(;;){const s=t.indexOf(e,n);if(-1===s)return s;if(0===s||t.charCodeAt(s-1)<=32){const n=e.length;if(s+n===r||t.charCodeAt(s+n)<=32)return s}n=s+1}}function ur(t,e,n){let r=0;for(;r<t.length;){let s=t[r++];if(n&&\"class\"===s){if(s=t[r],-1!==cr(s.toLowerCase(),e,0))return!0}else if(1===s){for(;r<t.length&&\"string\"==typeof(s=t[r++]);)if(s.toLowerCase()===e)return!0;return!1}}return!1}function lr(t,e,n){return e===(0!==t.type||n?t.tagName:\"ng-template\")}function hr(t,e,n){let r=4;const s=t.attrs||[],i=function(t){for(let e=0;e<t.length;e++)if(Se(t[e]))return e;return t.length}(s);let o=!1;for(let a=0;a<e.length;a++){const c=e[a];if(\"number\"!=typeof c){if(!o)if(4&r){if(r=2|1&r,\"\"!==c&&!lr(t,c,n)||\"\"===c&&1===e.length){if(dr(r))return!1;o=!0}}else{const u=8&r?c:e[++a];if(8&r&&null!==t.attrs){if(!ur(t.attrs,u,n)){if(dr(r))return!1;o=!0}continue}const l=pr(8&r?\"class\":c,s,0==t.type&&\"ng-template\"!==t.tagName,n);if(-1===l){if(dr(r))return!1;o=!0;continue}if(\"\"!==u){let t;t=l>i?\"\":s[l+1].toLowerCase();const e=8&r?t:null;if(e&&-1!==cr(e,u,0)||2&r&&u!==t){if(dr(r))return!1;o=!0}}}}else{if(!o&&!dr(r)&&!dr(c))return!1;if(o&&dr(c))continue;o=!1,r=c|1&r}}return dr(r)||o}function dr(t){return 0==(1&t)}function pr(t,e,n,r){if(null===e)return-1;let s=0;if(r||!n){let n=!1;for(;s<e.length;){const r=e[s];if(r===t)return s;if(3===r||6===r)n=!0;else{if(1===r||2===r){let t=e[++s];for(;\"string\"==typeof t;)t=e[++s];continue}if(4===r)break;if(0===r){s+=4;continue}}s+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){if(t[n]===e)return n;n++}return-1}(e,t)}function fr(t,e,n=!1){for(let r=0;r<e.length;r++)if(hr(t,e[r],n))return!0;return!1}function gr(t,e){return t?\":not(\"+e.trim()+\")\":e}function mr(t){let e=t[0],n=1,r=2,s=\"\",i=!1;for(;n<t.length;){let o=t[n];if(\"string\"==typeof o)if(2&r){const e=t[++n];s+=\"[\"+o+(e.length>0?'=\"'+e+'\"':\"\")+\"]\"}else 8&r?s+=\".\"+o:4&r&&(s+=\" \"+o);else\"\"===s||dr(o)||(e+=gr(i,s),s=\"\"),r=o,i=i||!dr(r);n++}return\"\"!==s&&(e+=gr(i,s)),e}const br={};function yr(t){const e=t[3];return Rt(e)?e[3]:e}function vr(t){_r($t(),Ht(),ue()+t,Wt())}function _r(t,e,n,r){if(!r)if(3==(3&e[2])){const r=t.preOrderCheckHooks;null!==r&&de(e,r,n)}else{const r=t.preOrderHooks;null!==r&&pe(e,r,0,n)}le(n)}function wr(t,e){return t<<17|e<<2}function Cr(t){return t>>17&32767}function Sr(t){return 2|t}function Or(t){return(131068&t)>>2}function Er(t,e){return-131069&t|e<<2}function xr(t){return 1|t}function Tr(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const s=n[r],i=n[r+1];if(-1!==i){const n=t.data[i];ee(s),n.contentQueries(2,e[i],i)}}}function kr(t,e,n){return _e(e)?e.createElement(t,n):null===n?e.createElement(t):e.createElementNS(n,t)}function Ar(t,e,n,r,s,i,o,a,c,u){const l=e.blueprint.slice();return l[0]=s,l[2]=140|r,sr(l),l[3]=l[15]=t,l[8]=n,l[10]=o||t&&t[10],l[11]=a||t&&t[11],l[12]=c||t&&t[12]||null,l[9]=u||t&&t[9]||null,l[6]=i,l[16]=2==e.type?t[16]:l,l}function jr(t,e,n,r,s,i){const o=n+19,a=t.data[o]||function(t,e,n,r,s,i){const o=qt(),a=Gt(),c=a?o:o&&o.parent,u=t.data[n]=Ur(0,c&&c!==e?c:null,r,n,s,i);return null===t.firstChild&&(t.firstChild=u),o&&(!a||null!=o.child||null===u.parent&&2!==o.type?a||(o.next=u):o.child=u),u}(t,e,o,r,s,i);return Bt(a,!0),a}function Pr(t,e,n){re(e,e[6]);try{const r=t.viewQuery;null!==r&&cs(1,r,n);const s=t.template;null!==s&&Nr(t,e,s,1,n),t.firstCreatePass&&(t.firstCreatePass=!1),t.staticContentQueries&&Tr(t,e),t.staticViewQueries&&cs(2,t.viewQuery,n);const i=t.components;null!==i&&function(t,e){for(let n=0;n<e.length;n++)rs(t,e[n])}(e,i)}finally{e[2]&=-5,ce()}}function Ir(t,e,n,r){const s=e[2];if(256==(256&s))return;re(e,e[6]);const i=Wt();try{sr(e),Ut.lFrame.bindingIndex=t.bindingStartIndex,null!==n&&Nr(t,e,n,2,r);const o=3==(3&s);if(!i)if(o){const n=t.preOrderCheckHooks;null!==n&&de(e,n,null)}else{const n=t.preOrderHooks;null!==n&&pe(e,n,0,null),fe(e,0)}if(function(t){let e=t[13];for(;null!==e;){let n;if(Rt(e)&&(n=e[2])>>1==-1){for(let t=9;t<e.length;t++){const n=e[t],r=n[1];nr(n)&&Ir(r,n,r.template,n[8])}0!=(1&n)&&es(e,t[16])}e=e[4]}}(e),null!==t.contentQueries&&Tr(t,e),!i)if(o){const n=t.contentCheckHooks;null!==n&&de(e,n)}else{const n=t.contentHooks;null!==n&&pe(e,n,1),fe(e,1)}!function(t,e){try{const n=t.expandoInstructions;if(null!==n){let r=t.expandoStartIndex,s=-1,i=-1;for(let t=0;t<n.length;t++){const o=n[t];\"number\"==typeof o?o<=0?(i=0-o,le(i),r+=9+n[++t],s=r):r+=o:(null!==o&&(Yt(r,s),o(2,e[s])),s++)}}}finally{le(-1)}}(t,e);const a=t.components;null!==a&&function(t,e){for(let n=0;n<e.length;n++)ns(t,e[n])}(e,a);const c=t.viewQuery;if(null!==c&&cs(2,c,r),!i)if(o){const n=t.viewCheckHooks;null!==n&&de(e,n)}else{const n=t.viewHooks;null!==n&&pe(e,n,2),fe(e,2)}!0===t.firstUpdatePass&&(t.firstUpdatePass=!1),i||(e[2]&=-73)}finally{ce()}}function Rr(t,e,n,r){const s=e[10],i=!Wt(),o=er(e);try{i&&!o&&s.begin&&s.begin(),o&&Pr(t,e,r),Ir(t,e,n,r)}finally{i&&!o&&s.end&&s.end()}}function Nr(t,e,n,r,s){const i=ue();try{le(-1),2&r&&e.length>19&&_r(t,e,0,Wt()),n(r,s)}finally{le(i)}}function Mr(t,e,n){Ft()&&(function(t,e,n,r){const s=n.directiveStart,i=n.directiveEnd;t.firstCreatePass||Ve(n,e),ir(r,e);const o=n.initialInputs;for(let a=s;a<i;a++){const r=t.data[a],i=Lt(r);i&&Kr(e,n,r);const c=We(e,t,a,n);ir(c,e),null!==o&&Xr(0,a-s,c,r,0,o),i&&(Yn(n.index,e)[8]=c)}}(t,e,n,Jn(n,e)),128==(128&n.flags)&&function(t,e,n){const r=n.directiveStart,s=n.directiveEnd,i=t.expandoInstructions,o=t.firstCreatePass,a=n.index-19;try{le(a);for(let n=r;n<s;n++){const r=t.data[n],s=e[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Br(r,s):o&&i.push(null)}}finally{le(-1)}}(t,e,n))}function Dr(t,e,n=Jn){const r=e.localNames;if(null!==r){let s=e.index+1;for(let i=0;i<r.length;i+=2){const o=r[i+1],a=-1===o?n(e,t):t[o];t[s++]=a}}}function Lr(t){return t.tView||(t.tView=Vr(1,-1,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts))}function Vr(t,e,n,r,s,i,o,a,c,u){const l=19+r,h=l+s,d=function(t,e){const n=[];for(let r=0;r<e;r++)n.push(r<t?null:br);return n}(l,h);return d[1]={type:t,id:e,blueprint:d,template:n,queries:null,viewQuery:a,node:null,data:d.slice().fill(null,l),bindingStartIndex:l,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof o?o():o,firstChild:null,schemas:c,consts:u}}function Ur(t,e,n,r,s,i){return{type:n,index:r,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:s,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Fr(t,e,n){for(let r in t)if(t.hasOwnProperty(r)){const s=t[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(e,s):n[r]=[e,s]}return n}function Hr(t,e,n,r,s,i,o,a){const c=Qn(n,e),u=Kn(t,n);let l,h=u.inputs;if(!o&&null!=h&&(l=h[r]))ps(t,e,l,r,s),Mt(u)&&function(t,e){const n=Yn(e,t);16&n[2]||(n[2]|=64)}(e,n+19);else if(3===u.type){r=\"class\"===(d=r)?\"className\":\"for\"===d?\"htmlFor\":\"formaction\"===d?\"formAction\":\"innerHtml\"===d?\"innerHTML\":\"readonly\"===d?\"readOnly\":\"tabindex\"===d?\"tabIndex\":d;const t=a?a(u,e):e[11];s=null!=i?i(s,u.tagName||\"\",r):s,_e(t)?t.setProperty(c,r,s):Oe(r)||(c.setProperty?c.setProperty(r,s):c[r]=s)}var d}function $r(t,e,n,r){let s=!1;if(Ft()){const i=function(t,e,n){const r=t.directiveRegistry;let s=null;if(r)for(let i=0;i<r.length;i++){const o=r[i];fr(n,o.selectors,!1)&&(s||(s=[]),$e(Ve(n,e),t,o.type),Lt(o)?(2&n.flags&&or(n),Wr(t,n),s.unshift(o)):s.push(o))}return s}(t,e,n),o=null===r?null:{\"\":-1};if(null!==i){let r=0;s=!0,Qr(n,t.data.length,i.length);for(let t=0;t<i.length;t++){const e=i[t];e.providersResolver&&e.providersResolver(e)}Gr(t,n,i.length);let a=!1,c=!1;for(let s=0;s<i.length;s++){const u=i[s];n.mergedAttrs=Ee(n.mergedAttrs,u.hostAttrs),Jr(t,e,u),Zr(t.data.length-1,u,o),null!==u.contentQueries&&(n.flags|=8),null===u.hostBindings&&null===u.hostAttrs&&0===u.hostVars||(n.flags|=128),!a&&(u.onChanges||u.onInit||u.doCheck)&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n.index-19),a=!0),c||!u.onChanges&&!u.doCheck||((t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n.index-19),c=!0),zr(t,u),r+=u.hostVars}!function(t,e){const n=e.directiveEnd,r=t.data,s=e.attrs,i=[];let o=null,a=null;for(let c=e.directiveStart;c<n;c++){const t=r[c],e=t.inputs;i.push(null!==s?Yr(e,s):null),o=Fr(e,c,o),a=Fr(t.outputs,c,a)}null!==o&&((o.hasOwnProperty(\"class\")||o.hasOwnProperty(\"className\"))&&(e.flags|=16),o.hasOwnProperty(\"style\")&&(e.flags|=32)),e.initialInputs=i,e.inputs=o,e.outputs=a}(t,n),qr(t,e,r)}o&&function(t,e,n){if(e){const r=t.localNames=[];for(let t=0;t<e.length;t+=2){const s=n[e[t+1]];if(null==s)throw new Error(`Export of name '${e[t+1]}' not found!`);r.push(e[t],s)}}}(n,r,o)}return n.mergedAttrs=Ee(n.mergedAttrs,n.attrs),s}function zr(t,e){const n=t.expandoInstructions;n.push(e.hostBindings),0!==e.hostVars&&n.push(e.hostVars)}function qr(t,e,n){for(let r=0;r<n;r++)e.push(br),t.blueprint.push(br),t.data.push(null)}function Br(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function Gr(t,e,n){const r=19-e.index,s=t.data.length-(65535&e.providerIndexes);(t.expandoInstructions||(t.expandoInstructions=[])).push(r,s,n)}function Wr(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function Zr(t,e,n){if(n){if(e.exportAs)for(let r=0;r<e.exportAs.length;r++)n[e.exportAs[r]]=t;Lt(e)&&(n[\"\"]=t)}}function Qr(t,e,n){t.flags|=1,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function Jr(t,e,n){t.data.push(n);const r=n.factory||(n.factory=jt(n.type)),s=new be(r,Lt(n),null);t.blueprint.push(s),e.push(s)}function Kr(t,e,n){const r=Jn(e,t),s=Lr(n),i=t[10],o=ss(t,Ar(t,s,null,n.onPush?64:16,r,e,i,i.createRenderer(r,n)));t[e.index]=o}function Xr(t,e,n,r,s,i){const o=i[e];if(null!==o){const t=r.setInput;for(let e=0;e<o.length;){const s=o[e++],i=o[e++],a=o[e++];null!==t?r.setInput(n,a,s,i):n[i]=a}}}function Yr(t,e){let n=null,r=0;for(;r<e.length;){const s=e[r];if(0!==s)if(5!==s){if(\"number\"==typeof s)break;t.hasOwnProperty(s)&&(null===n&&(n=[]),n.push(s,t[s],e[r+1])),r+=2}else r+=2;else r+=4}return n}function ts(t,e,n,r){return new Array(t,!0,-2,e,null,null,r,n,null)}function es(t,e){const n=t[5];for(let r=0;r<n.length;r++){const t=n[r],s=t[3][3][16];if(s!==e&&0==(16&s[2])){const e=t[1];Ir(e,t,e.template,t[8])}}}function ns(t,e){const n=Yn(e,t);if(nr(n)&&80&n[2]){const t=n[1];Ir(t,n,t.template,n[8])}}function rs(t,e){const n=Yn(e,t),r=n[1];!function(t,e){for(let n=e.length;n<t.blueprint.length;n++)e.push(t.blueprint[n])}(r,n),Pr(r,n,n[8])}function ss(t,e){return t[13]?t[14][4]=e:t[13]=e,t[14]=e,e}function is(t){for(;t;){t[2]|=64;const e=yr(t);if(Vt(t)&&!e)return t;t=e}return null}function os(t,e,n){const r=e[10];r.begin&&r.begin();try{Ir(t,e,t.template,n)}catch(s){throw ds(e,s),s}finally{r.end&&r.end()}}function as(t){!function(t){for(let e=0;e<t.components.length;e++){const n=t.components[e],r=tr(n),s=r[1];Rr(s,r,s.template,n)}}(t[8])}function cs(t,e,n){ee(0),e(t,n)}const us=(()=>Promise.resolve(null))();function ls(t){return t[7]||(t[7]=[])}function hs(t){return t.cleanup||(t.cleanup=[])}function ds(t,e){const n=t[9],r=n?n.get(en,null):null;r&&r.handleError(e)}function ps(t,e,n,r,s){for(let i=0;i<n.length;){const o=n[i++],a=n[i++],c=e[o],u=t.data[o];null!==u.setInput?u.setInput(c,s,r,a):c[a]=s}}function fs(t,e,n){const r=Qn(e,t),s=t[11];_e(s)?s.setValue(r,n):r.textContent=n}function gs(t,e){const n=e[3];return-1===t.index?Rt(n)?n:null:n}function ms(t,e){const n=gs(t,e);return n?Ts(e[11],n[7]):null}function bs(t,e,n,r,s){if(null!=r){let i,o=!1;Rt(r)?i=r:It(r)&&(o=!0,r=r[0]);const a=Zn(r);0===t&&null!==n?null==s?Es(e,n,a):Os(e,n,a,s||null):1===t&&null!==n?Os(e,n,a,s||null):2===t?function(t,e,n){const r=Ts(t,e);r&&function(t,e,n,r){_e(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,a,o):3===t&&e.destroyNode(a),null!=i&&function(t,e,n,r,s){const i=n[7];i!==Zn(n)&&bs(e,t,r,i,s);for(let o=9;o<n.length;o++){const s=n[o];Ps(s[1],s,t,e,r,i)}}(e,t,i,n,s)}}function ys(t,e,n,r){const s=ms(t.node,e);s&&Ps(t,e,e[11],n?1:2,s,r)}function vs(t,e){const n=t[5],r=n.indexOf(e);n.splice(r,1)}function _s(t,e){if(t.length<=9)return;const n=9+e,r=t[n];if(r){const s=r[17];null!==s&&s!==t&&vs(s,r),e>0&&(t[n-1][4]=r[4]);const i=lt(t,9+e);ys(r[1],r,!1,null);const o=i[5];null!==o&&o.detachView(i[1]),r[3]=null,r[4]=null,r[2]&=-129}return r}function ws(t,e){if(!(256&e[2])){const n=e[11];_e(n)&&n.destroyNode&&Ps(t,e,n,3,null,null),function(t){let e=t[13];if(!e)return Ss(t[1],t);for(;e;){let n=null;if(It(e))n=e[13];else{const t=e[9];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)It(e)&&Ss(e[1],e),e=Cs(e,t);null===e&&(e=t),It(e)&&Ss(e[1],e),n=e&&e[4]}e=n}}(e)}}function Cs(t,e){let n;return It(t)&&(n=t[6])&&2===n.type?gs(n,t):t[3]===e?null:t[3]}function Ss(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r<n.length;r+=2){const t=e[n[r]];t instanceof be||n[r+1].call(t)}}(t,e),function(t,e){const n=t.cleanup;if(null!==n){const t=e[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const s=n[r+1],i=\"function\"==typeof s?s(e):Zn(e[s]),o=t[n[r+2]],a=n[r+3];\"boolean\"==typeof a?i.removeEventListener(n[r],o,a):a>=0?t[a]():t[-a].unsubscribe(),r+=2}else n[r].call(t[n[r+1]]);e[7]=null}}(t,e);const n=e[6];n&&3===n.type&&_e(e[11])&&e[11].destroy();const r=e[17];if(null!==r&&Rt(e[3])){r!==e[3]&&vs(r,e);const n=e[5];null!==n&&n.detachView(t)}}}function Os(t,e,n,r){_e(t)?t.insertBefore(e,n,r):e.insertBefore(n,r,!0)}function Es(t,e,n){_e(t)?t.appendChild(e,n):e.appendChild(n)}function xs(t,e,n,r){null!==r?Os(t,e,n,r):Es(t,e,n)}function Ts(t,e){return _e(t)?t.parentNode(e):e.parentNode}function ks(t,e,n,r){const s=function(t,e,n){let r=e.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(e=r).parent;if(null==r){const t=n[6];return 2===t.type?ms(t,n):n[0]}if(e&&5===e.type&&4&e.flags)return Jn(e,n).parentNode;if(2&r.flags){const e=t.data,n=e[e[r.index].directiveStart].encapsulation;if(n!==gt.ShadowDom&&n!==gt.Native)return null}return Jn(r,n)}(t,r,e);if(null!=s){const t=e[11],i=function(t,e){if(2===t.type){const n=gs(t,e);return null===n?null:As(n.indexOf(e,9)-9,n)}return 4===t.type||5===t.type?Jn(t,e):null}(r.parent||e[6],e);if(Array.isArray(n))for(let e=0;e<n.length;e++)xs(t,s,n[e],i);else xs(t,s,n,i)}}function As(t,e){const n=9+t+1;if(n<e.length){const t=e[n],r=t[1].firstChild;if(null!==r)return function t(e,n){if(null!==n){const r=n.type;if(3===r)return Jn(n,e);if(0===r)return As(-1,e[n.index]);if(4===r||5===r){const r=n.child;if(null!==r)return t(e,r);{const t=e[n.index];return Rt(t)?As(-1,t):Zn(t)}}{const r=e[16],s=r[6],i=yr(r),o=s.projection[n.projection];return null!=o?t(i,o):t(e,n.next)}}return null}(t,r)}return e[7]}function js(t,e,n,r,s,i,o){for(;null!=n;){const a=r[n.index],c=n.type;o&&0===e&&(a&&ir(Zn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===c||5===c?(js(t,e,n.child,r,s,i,!1),bs(e,t,s,a,i)):1===c?Is(t,e,r,n,s,i):bs(e,t,s,a,i)),n=o?n.projectionNext:n.next}}function Ps(t,e,n,r,s,i){js(n,r,t.node.child,e,s,i,!1)}function Is(t,e,n,r,s,i){const o=n[16],a=o[6].projection[r.projection];if(Array.isArray(a))for(let c=0;c<a.length;c++)bs(e,t,s,a[c],i);else js(t,e,a,o[3],s,i,!0)}function Rs(t,e,n){_e(t)?t.setAttribute(e,\"style\",n):e.style.cssText=n}function Ns(t,e,n){_e(t)?\"\"===n?t.removeAttribute(e,\"class\"):t.setAttribute(e,\"class\",n):e.className=n}class Ms{constructor(t,e){this._lView=t,this._cdRefInjectingView=e,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const t=this._lView;return null==t[0]?function t(e,n,r,s,i=!1){for(;null!==r;){const o=n[r.index];if(null!==o&&s.push(Zn(o)),Rt(o))for(let e=9;e<o.length;e++){const n=o[e],r=n[1].firstChild;null!==r&&t(n[1],n,r,s)}const a=r.type;if(4===a||5===a)t(e,n,r.child,s);else if(1===a){const e=n[16],i=e[6],o=yr(e);let a=i.projection[r.projection];null!==a&&null!==o&&t(o[1],o,a,s,!0)}r=i?r.projectionNext:r.next}return s}(t[1],t,t[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}ws(this._lView[1],this._lView)}onDestroy(t){var e,n,r;e=this._lView[1],r=t,ls(n=this._lView).push(r),e.firstCreatePass&&hs(e).push(n[7].length-1,null)}markForCheck(){is(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){os(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(t,e,n){Zt(!0);try{os(t,e,n)}finally{Zt(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=t}detachFromAppRef(){var t;this._appRef=null,Ps(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=t}}class Ds extends Ms{constructor(t){super(t),this._view=t}detectChanges(){as(this._view)}checkNoChanges(){!function(t){Zt(!0);try{as(t)}finally{Zt(!1)}}(this._view)}get context(){return null}}let Ls,Vs,Us;function Fs(t,e,n){return Ls||(Ls=class extends t{}),new Ls(Jn(e,n))}function Hs(t,e,n,r){return Vs||(Vs=class extends t{constructor(t,e,n){super(),this._declarationView=t,this._declarationTContainer=e,this.elementRef=n}createEmbeddedView(t){const e=this._declarationTContainer.tViews,n=Ar(this._declarationView,e,t,16,null,e.node);n[17]=this._declarationView[this._declarationTContainer.index];const r=this._declarationView[5];null!==r&&(n[5]=r.createEmbeddedView(e)),Pr(e,n,t);const s=new Ms(n);return s._tViewNode=n[6],s}}),0===n.type?new Vs(r,n,Fs(e,n,r)):null}function $s(t,e,n,r){let s;Us||(Us=class extends t{constructor(t,e,n){super(),this._lContainer=t,this._hostTNode=e,this._hostView=n}get element(){return Fs(e,this._hostTNode,this._hostView)}get injector(){return new Je(this._hostTNode,this._hostView)}get parentInjector(){const t=He(this._hostTNode,this._hostView),e=je(t,this._hostView),n=function(t,e,n){if(n.parent&&-1!==n.parent.injectorIndex){const t=n.parent.injectorIndex;let e=n.parent;for(;null!=e.parent&&t==e.parent.injectorIndex;)e=e.parent;return e}let r=Ae(t),s=e,i=e[6];for(;r>1;)s=s[15],i=s[6],r--;return i}(t,this._hostView,this._hostTNode);return Te(t)&&null!=n?new Je(n,e):new Je(null,this._hostView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){return null!==this._lContainer[8]&&this._lContainer[8][t]||null}get length(){return this._lContainer.length-9}createEmbeddedView(t,e,n){const r=t.createEmbeddedView(e||{});return this.insert(r,n),r}createComponent(t,e,n,r,s){const i=n||this.parentInjector;if(!s&&null==t.ngModule&&i){const t=i.get(ot,null);t&&(s=t)}const o=t.create(i,r,void 0,s);return this.insert(o.hostView,e),o}insert(t,e){const n=t._lView,r=n[1];if(t.destroyed)throw new Error(\"Cannot insert a destroyed View in a ViewContainer!\");if(this.allocateContainerIfNeeded(),Rt(n[3])){const e=this.indexOf(t);if(-1!==e)this.detach(e);else{const e=n[3],r=new Us(e,e[6],e[3]);r.detach(r.indexOf(t))}}const s=this._adjustIndex(e);return function(t,e,n,r){const s=9+r,i=n.length;r>0&&(n[s-1][4]=e),r<i-9?(e[4]=n[s],ut(n,9+r,e)):(n.push(e),e[4]=null),e[3]=n;const o=e[17];null!==o&&n!==o&&function(t,e){const n=t[5],r=e[3][3][16];16!=(16&r[2])&&e[16]!==r&&(t[2]|=1),null===n?t[5]=[e]:n.push(e)}(o,e);const a=e[5];null!==a&&a.insertView(t),e[2]|=128}(r,n,this._lContainer,s),ys(r,n,!0,As(s,this._lContainer)),t.attachToViewContainerRef(this),ut(this._lContainer[8],s,t),t}move(t,e){if(t.destroyed)throw new Error(\"Cannot move a destroyed View in a ViewContainer!\");return this.insert(t,e)}indexOf(t){const e=this._lContainer[8];return null!==e?e.indexOf(t):-1}remove(t){this.allocateContainerIfNeeded();const e=this._adjustIndex(t,-1);(function(t,e){const n=_s(t,e);n&&ws(n[1],n)})(this._lContainer,e),lt(this._lContainer[8],e)}detach(t){this.allocateContainerIfNeeded();const e=this._adjustIndex(t,-1),n=_s(this._lContainer,e);return n&&null!=lt(this._lContainer[8],e)?new Ms(n):null}_adjustIndex(t,e=0){return null==t?this.length+e:t}allocateContainerIfNeeded(){null===this._lContainer[8]&&(this._lContainer[8]=[])}});const i=r[n.index];if(Rt(i))s=i,function(t,e){t[2]=-2}(s);else{let t;if(4===n.type)t=Zn(i);else if(t=r[11].createComment(\"\"),Vt(r)){const e=r[11],s=Jn(n,r);Os(e,Ts(e,s),t,function(t,e){return _e(t)?t.nextSibling(e):e.nextSibling}(e,s))}else ks(r[1],r,t,n);r[n.index]=s=ts(i,r,t,n),ss(r,s)}return new Us(s,n,r)}function zs(t=!1){return function(t,e,n){if(!n&&Mt(t)){const n=Yn(t.index,e);return new Ms(n,n)}return 3===t.type||0===t.type||4===t.type||5===t.type?new Ms(e[16],e):null}(qt(),Ht(),t)}let qs=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>Bs(),t})();const Bs=zs,Gs=new G(\"Set Injector scope.\"),Ws={},Zs={},Qs=[];let Js=void 0;function Ks(){return void 0===Js&&(Js=new it),Js}function Xs(t,e=null,n=null,r){return e=e||Ks(),new Ys(t,n,e,r)}class Ys{constructor(t,e,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];e&&ct(e,n=>this.processProvider(n,t,e)),ct([t],t=>this.processInjectorType(t,[],s)),this.records.set(W,ni(void 0,this));const i=this.records.get(Gs);this.scope=null!=i?i.value:null,this.injectorDefTypes.forEach(t=>this.get(t)),this.source=r||(\"object\"==typeof t?null:k(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Z,n=g.Default){this.assertNotDestroyed();const r=Y(this);try{if(!(n&g.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=(\"function\"==typeof(s=t)||\"object\"==typeof s&&s instanceof G)&&_(t);e=n&&this.injectableDefInScope(n)?ni(ti(t),Ws):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(n&g.Self?Ks():this.parent).get(t,e=n&g.Optional&&e===Z?null:e)}catch(i){if(\"NullInjectorError\"===i.name){if((i.ngTempTokenPath=i.ngTempTokenPath||[]).unshift(k(t)),r)throw i;return function(t,e,n,r){const s=t.ngTempTokenPath;throw e.__source&&s.unshift(e.__source),t.message=function(t,e,n,r=null){t=t&&\"\\n\"===t.charAt(0)&&\"\\u0275\"==t.charAt(1)?t.substr(2):t;let s=k(e);if(Array.isArray(e))s=e.map(k).join(\" -> \");else if(\"object\"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];t.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):k(r)))}s=`{${t.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${s}]: ${t.replace(Q,\"\\n  \")}`}(\"\\n\"+t.message,s,n,r),t.ngTokenPath=s,t.ngTempTokenPath=null,t}(i,t,\"R3InjectorError\",this.source)}throw i}finally{Y(r)}var s}toString(){const t=[];return this.records.forEach((e,n)=>t.push(k(n))),`R3Injector[${t.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(t,e,n){if(!(t=I(t)))return!1;let r=C(t);const s=null==r&&t.ngModule||void 0,i=void 0===s?t:s,o=-1!==n.indexOf(i);if(void 0!==s&&(r=C(s)),null==r)return!1;if(null!=r.imports&&!o){let t;n.push(i);try{ct(r.imports,r=>{this.processInjectorType(r,e,n)&&(void 0===t&&(t=[]),t.push(r))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:r}=t[e];ct(r,t=>this.processProvider(t,n,r||Qs))}}this.injectorDefTypes.add(i),this.records.set(i,ni(r.factory,Ws));const a=r.providers;if(null!=a&&!o){const e=t;ct(a,t=>this.processProvider(t,e,a))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,n){let r=si(t=I(t))?t:I(t&&t.provide);const s=function(t,e,n){return ri(t)?ni(void 0,t.useValue):ni(ei(t,e,n),Ws)}(t,e,n);if(si(t)||!0!==t.multi){const t=this.records.get(r);t&&void 0!==t.multi&&ar()}else{let e=this.records.get(r);e?void 0===e.multi&&ar():(e=ni(void 0,Ws,!0),e.factory=()=>st(e.multi),this.records.set(r,e)),r=t,e.multi.push(t)}this.records.set(r,s)}hydrate(t,e){var n;return e.value===Zs?function(t){throw new Error(`Cannot instantiate cyclic dependency! ${t}`)}(k(t)):e.value===Ws&&(e.value=Zs,e.value=e.factory()),\"object\"==typeof e.value&&e.value&&null!==(n=e.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&(\"string\"==typeof t.providedIn?\"any\"===t.providedIn||t.providedIn===this.scope:this.injectorDefTypes.has(t.providedIn))}}function ti(t){const e=_(t),n=null!==e?e.factory:jt(t);if(null!==n)return n;const r=C(t);if(null!==r)return r.factory;if(t instanceof G)throw new Error(`Token ${k(t)} is missing a \\u0275prov definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=function(t,e){const n=[];for(let r=0;r<t;r++)n.push(\"?\");return n}(e);throw new Error(`Can't resolve all parameters for ${k(t)}: (${n.join(\", \")}).`)}const n=function(t){const e=t&&(t[S]||t[x]||t[E]&&t[E]());if(e){const n=function(t){if(t.hasOwnProperty(\"name\"))return t.name;const e=(\"\"+t).match(/^function\\s*([^\\s(]+)/);return null===e?\"\":e[1]}(t);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),e}return null}(t);return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error(\"unreachable\")}function ei(t,e,n){let r=void 0;if(si(t))return ti(I(t));if(ri(t))r=()=>I(t.useValue);else if((s=t)&&s.useFactory)r=()=>t.useFactory(...st(t.deps||[]));else if(function(t){return!(!t||!t.useExisting)}(t))r=()=>nt(I(t.useExisting));else{const s=I(t&&(t.useClass||t.provide));if(s||function(t,e,n){let r=\"\";throw t&&e&&(r=` - only instances of Provider and Type are allowed, got: [${e.map(t=>t==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${k(t)}'`+r)}(e,n,t),!function(t){return!!t.deps}(t))return ti(s);r=()=>new s(...st(t.deps))}var s;return r}function ni(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function ri(t){return null!==t&&\"object\"==typeof t&&J in t}function si(t){return\"function\"==typeof t}const ii=function(t,e,n){return Xs({name:n},e,t,n)};let oi=(()=>{class t{static create(t,e){return Array.isArray(t)?ii(t,e,\"\"):ii(t.providers,t.parent,t.name||\"\")}}return t.THROW_IF_NOT_FOUND=Z,t.NULL=new it,t.\\u0275prov=y({token:t,providedIn:\"any\",factory:()=>nt(W)}),t.__NG_ELEMENT_ID__=-1,t})();const ai=new G(\"AnalyzeForEntryComponents\");let ci=new Map;const ui=new Set;function li(t){return\"string\"==typeof t?t:t.text()}function hi(t,e){let n=t.styles,r=t.classes,s=0;for(let i=0;i<e.length;i++){const t=e[i];\"number\"==typeof t?s=t:1==s?r=A(r,t):2==s&&(n=A(n,t+\": \"+e[++i]+\";\"))}null!==n&&(t.styles=n),null!==r&&(t.classes=r)}let di=null;function pi(){if(!di){const t=V.Symbol;if(t&&t.iterator)di=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(di=n)}}}return di}function fi(t,e){return t===e||\"number\"==typeof t&&\"number\"==typeof e&&isNaN(t)&&isNaN(e)}class gi{constructor(t){this.wrapped=t}static wrap(t){return new gi(t)}static unwrap(t){return gi.isWrapped(t)?t.wrapped:t}static isWrapped(t){return t instanceof gi}}function mi(t){return!!bi(t)&&(Array.isArray(t)||!(t instanceof Map)&&pi()in t)}function bi(t){return null!==t&&(\"function\"==typeof t||\"object\"==typeof t)}function yi(t,e,n){return t[e]=n}function vi(t,e){return t[e]}function _i(t,e,n){return!Object.is(t[e],n)&&(t[e]=n,!0)}function wi(t,e,n,r){const s=_i(t,e,n);return _i(t,e+1,r)||s}function Ci(t,e,n,r){const s=Ht();return _i(s,Kt(),e)&&function(t,e,n,r,s,i,o){const a=Qn(t,s),c=s[11];if(null==n)_e(c)?c.removeAttribute(a,e,o):a.removeAttribute(e);else{const s=Kn(r,t),u=null==i?Pe(n):i(n,s.tagName||\"\",e);_e(c)?c.setAttribute(a,e,u,o):o?a.setAttributeNS(o,e,u):a.setAttribute(e,u)}}(ue(),t,e,$t(),s,n,r),Ci}function Si(t,e,n,r,s,i,o,a){const c=Ht(),u=$t(),l=t+19,h=u.firstCreatePass?function(t,e,n,r,s,i,o,a,c){const u=e.consts,l=jr(e,n[6],t,0,o||null,rr(u,a));$r(e,n,l,rr(u,c)),he(e,l);const h=l.tViews=Vr(2,-1,r,s,i,e.directiveRegistry,e.pipeRegistry,null,e.schemas,u),d=Ur(0,null,2,-1,null,null);return d.injectorIndex=l.injectorIndex,h.node=d,null!==e.queries&&(e.queries.template(e,l),h.queries=e.queries.embeddedTView(l)),l}(t,u,c,e,n,r,s,i,o):u.data[l];Bt(h,!1);const d=c[11].createComment(\"\");ks(u,c,d,h),ir(d,c),ss(c,c[l]=ts(d,c,d,h)),Dt(h)&&Mr(u,c,h),null!=o&&Dr(c,h,a)}function Oi(t){return Xn(Ut.lFrame.contextLView,t)}function Ei(t,e=g.Default){const n=Ht();return null==n?nt(t,e):ze(qt(),n,I(t),e)}function xi(t){return function(t,e){if(\"class\"===e)return t.classes;if(\"style\"===e)return t.styles;const n=t.attrs;if(n){const t=n.length;let r=0;for(;r<t;){const s=n[r];if(Se(s))break;if(0===s)r+=2;else if(\"number\"==typeof s)for(r++;r<t&&\"string\"==typeof n[r];)r++;else{if(s===e)return n[r+1];r+=2}}}return null}(qt(),t)}function Ti(){throw new Error(\"invalid\")}function ki(t,e,n){const r=Ht();if(_i(r,Kt(),e)){const s=ue();Hr($t(),r,s,t,e,n)}return ki}function Ai(t,e,n,r,s){const i=e.inputs,o=s?\"class\":\"style\";ps(t,n,i[o]||s&&i.className,o,r)}function ji(t,e,n,r){const s=Ht(),i=$t(),o=19+t,a=s[11],c=s[o]=kr(e,a,Ut.lFrame.currentNamespace),u=i.firstCreatePass?function(t,e,n,r,s,i,o){const a=e.consts,c=rr(a,i),u=jr(e,n[6],t,3,s,c);return $r(e,n,u,rr(a,o)),null!==u.mergedAttrs&&hi(u,u.mergedAttrs),null!==e.queries&&e.queries.elementStart(e,u),u}(t,i,s,0,e,n,r):i.data[o];Bt(u,!0);const l=u.mergedAttrs;null!==l&&Ce(a,c,l);const h=u.classes;null!==h&&Ns(a,c,h);const d=u.styles;null!==d&&Rs(a,c,d),ks(i,s,c,u),0===Ut.lFrame.elementDepthCount&&ir(c,s),Ut.lFrame.elementDepthCount++,Dt(u)&&(Mr(i,s,u),function(t,e,n){if(Nt(e)){const r=e.directiveEnd;for(let s=e.directiveStart;s<r;s++){const e=t.data[s];e.contentQueries&&e.contentQueries(1,n[s],s)}}}(i,u,s)),null!==r&&Dr(s,u)}function Pi(){let t=qt();Gt()?Ut.lFrame.isParent=!1:(t=t.parent,Bt(t,!1));const e=t;Ut.lFrame.elementDepthCount--;const n=$t();n.firstCreatePass&&(he(n,t),Nt(t)&&n.queries.elementEnd(t)),null!==e.classes&&function(t){return 0!=(16&t.flags)}(e)&&Ai(n,e,Ht(),e.classes,!0),null!==e.styles&&function(t){return 0!=(32&t.flags)}(e)&&Ai(n,e,Ht(),e.styles,!1)}function Ii(t,e,n,r){ji(t,e,n,r),Pi()}function Ri(){return Ht()}function Ni(t){return!!t&&\"function\"==typeof t.then}function Mi(t){return!!t&&\"function\"==typeof t.subscribe}function Di(t,e,n=!1,r){const s=Ht(),i=$t(),o=qt();return function(t,e,n,r,s,i,o=!1,a){const c=Dt(r),u=t.firstCreatePass&&(t.cleanup||(t.cleanup=[])),l=ls(e);let h=!0;if(3===r.type){const d=Jn(r,e),p=a?a(d):bt,f=p.target||d,g=l.length,m=a?t=>a(Zn(t[r.index])).target:r.index;if(_e(n)){let o=null;if(!a&&c&&(o=function(t,e,n,r){const s=t.cleanup;if(null!=s)for(let i=0;i<s.length-1;i+=2){const t=s[i];if(t===n&&s[i+1]===r){const t=e[7],n=s[i+2];return t.length>n?t[n]:null}\"string\"==typeof t&&(i+=2)}return null}(t,e,s,r.index)),null!==o)(o.__ngLastListenerFn__||o).__ngNextListenerFn__=i,o.__ngLastListenerFn__=i,h=!1;else{i=Vi(r,e,i,!1);const t=n.listen(p.name||f,s,i);l.push(i,t),u&&u.push(s,m,g,g+1)}}else i=Vi(r,e,i,!0),f.addEventListener(s,i,o),l.push(i),u&&u.push(s,m,g,o)}const d=r.outputs;let p;if(h&&null!==d&&(p=d[s])){const t=p.length;if(t)for(let n=0;n<t;n+=2){const t=e[p[n]][p[n+1]].subscribe(i),o=l.length;l.push(i,t),u&&u.push(s,r.index,o,-(o+1))}}}(i,s,s[11],o,t,e,n,r),Di}function Li(t,e,n){try{return!1!==e(n)}catch(r){return ds(t,r),!1}}function Vi(t,e,n,r){return function s(i){if(i===Function)return n;const o=2&t.flags?Yn(t.index,e):e;0==(32&e[2])&&is(o);let a=Li(e,n,i),c=s.__ngNextListenerFn__;for(;c;)a=Li(e,c,i)&&a,c=c.__ngNextListenerFn__;return r&&!1===a&&(i.preventDefault(),i.returnValue=!1),a}}function Ui(t=1){return function(t){return(Ut.lFrame.contextLView=function(t,e){for(;t>0;)e=e[15],t--;return e}(t,Ut.lFrame.contextLView))[8]}(t)}const Fi=[];function Hi(t,e,n,r,s){const i=t[n+1],o=null===e;let a=r?Cr(i):Or(i),c=!1;for(;0!==a&&(!1===c||o);){const n=t[a+1];$i(t[a],e)&&(c=!0,t[a+1]=r?xr(n):Sr(n)),a=r?Cr(n):Or(n)}c&&(t[n+1]=r?Sr(i):xr(i))}function $i(t,e){return null===t||null==e||(Array.isArray(t)?t[1]:t)===e||!(!Array.isArray(t)||\"string\"!=typeof e)&&pt(t,e)>=0}function zi(t,e){return function(t,e,n,r){const s=Ht(),i=$t(),o=Xt(2);if(i.firstUpdatePass&&function(t,e,n,r){const s=t.data;if(null===s[n+1]){const r=s[ue()+19],i=function(t,e){return e>=t.expandoStartIndex}(t,n);(function(t,e){return 0!=(16&t.flags)})(r)&&null===e&&!i&&(e=!1),e=function(t,e,n,r){const s=function(t){const e=Ut.lFrame.currentDirectiveIndex;return-1===e?null:t[e]}(t);let i=e.residualClasses;if(null===s)0===e.classBindings&&(n=Bi(n=qi(null,t,e,n,!0),e.attrs,!0),i=null);else{const r=e.directiveStylingLast;if(-1===r||t[r]!==s)if(n=qi(s,t,e,n,!0),null===i){let n=function(t,e,n){const r=e.classBindings;if(0!==Or(r))return t[Cr(r)]}(t,e);void 0!==n&&Array.isArray(n)&&(n=qi(null,t,e,n[1],!0),n=Bi(n,e.attrs,!0),function(t,e,n,r){t[Cr(e.classBindings)]=r}(t,e,0,n))}else i=function(t,e,n){let r=void 0;const s=e.directiveEnd;for(let i=1+e.directiveStylingLast;i<s;i++)r=Bi(r,t[i].hostAttrs,!0);return Bi(r,e.attrs,!0)}(t,e)}return void 0!==i&&(e.residualClasses=i),n}(s,r,e),function(t,e,n,r,s,i){let o=e.classBindings,a=Cr(o),c=Or(o);t[r]=n;let u,l=!1;if(Array.isArray(n)){const t=n;u=t[1],(null===u||pt(t,u)>0)&&(l=!0)}else u=n;if(s)if(0!==c){const e=Cr(t[a+1]);t[r+1]=wr(e,a),0!==e&&(t[e+1]=Er(t[e+1],r)),t[a+1]=131071&t[a+1]|r<<17}else t[r+1]=wr(a,0),0!==a&&(t[a+1]=Er(t[a+1],r)),a=r;else t[r+1]=wr(c,0),0===a?a=r:t[c+1]=Er(t[c+1],r),c=r;l&&(t[r+1]=Sr(t[r+1])),Hi(t,u,r,!0),Hi(t,u,r,!1),function(t,e,n,r,s){const i=t.residualClasses;null!=i&&\"string\"==typeof e&&pt(i,e)>=0&&(n[r+1]=xr(n[r+1]))}(e,u,t,r),o=wr(a,c),e.classBindings=o}(s,r,e,n,i)}}(i,t,o),e!==br&&_i(s,o,e)){let r;null==n&&(r=function(){const t=Ut.lFrame;return null===t?null:t.currentSanitizer}())&&(n=r),function(t,e,n,r,s,i,o,a){if(3!==e.type)return;const c=t.data,u=c[a+1];Wi(1==(1&u)?Gi(c,e,n,s,Or(u),!0):void 0)||(Wi(i)||function(t){return 2==(2&t)}(u)&&(i=Gi(c,null,n,s,a,!0)),function(t,e,n,r,s){const i=_e(t);s?i?t.addClass(n,r):n.classList.add(r):i?t.removeClass(n,r):n.classList.remove(r)}(r,0,Qn(ue(),n),s,i))}(i,i.data[ue()+19],s,s[11],t,s[o+1]=function(t,e){return null==t||(\"function\"==typeof e?t=e(t):\"string\"==typeof e?t+=e:\"object\"==typeof t&&(t=k(un(t)))),t}(e,n),0,o)}}(t,e,null),zi}function qi(t,e,n,r,s){let i=null;const o=n.directiveEnd;let a=n.directiveStylingLast;for(-1===a?a=n.directiveStart:a++;a<o&&(i=e[a],r=Bi(r,i.hostAttrs,s),i!==t);)a++;return null!==t&&(n.directiveStylingLast=a),r}function Bi(t,e,n){const r=n?1:2;let s=-1;if(null!==e)for(let i=0;i<e.length;i++){const o=e[i];\"number\"==typeof o?s=o:s===r&&(Array.isArray(t)||(t=void 0===t?[]:[\"\",t]),ht(t,o,!!n||e[++i]))}return void 0===t?null:t}function Gi(t,e,n,r,s,i){const o=null===e;let a=void 0;for(;s>0;){const e=t[s],i=Array.isArray(e),c=i?e[1]:e,u=null===c;let l=n[s+1];l===br&&(l=u?Fi:void 0);let h=u?dt(l,r):c===r?l:void 0;if(i&&!Wi(h)&&(h=dt(e,r)),Wi(h)&&(a=h,o))return a;const d=t[s+1];s=o?Cr(d):Or(d)}if(null!==e){let t=i?e.residualClasses:e.residualStyles;null!=t&&(a=dt(t,r))}return a}function Wi(t){return void 0!==t}function Zi(t,e=\"\"){const n=Ht(),r=$t(),s=t+19,i=r.firstCreatePass?jr(r,n[6],t,3,null,null):r.data[s],o=n[s]=function(t,e){return _e(e)?e.createText(t):e.createTextNode(t)}(e,n[11]);ks(r,n,o,i),Bt(i,!1)}function Qi(t){return Ji(\"\",t,\"\"),Qi}function Ji(t,e,n){const r=Ht(),s=function(t,e,n,r){return _i(t,Kt(),n)?e+Pe(n)+r:br}(r,t,e,n);return s!==br&&fs(r,ue(),s),Ji}function Ki(t,e,n,r,s){const i=Ht(),o=function(t,e,n,r,s,i){const o=wi(t,Jt(),n,s);return Xt(2),o?e+Pe(n)+r+Pe(s)+i:br}(i,t,e,n,r,s);return o!==br&&fs(i,ue(),o),Ki}function Xi(t,e,n){const r=Ht();if(_i(r,Kt(),e)){const s=ue();Hr($t(),r,s,t,e,n,!0)}return Xi}function Yi(t,e){const n=tr(t)[1],r=n.data.length-1;he(n,{directiveStart:r,directiveEnd:r+1})}function to(t){let e=Object.getPrototypeOf(t.type.prototype).constructor,n=!0;const r=[t];for(;e;){let s=void 0;if(Lt(t))s=e.\\u0275cmp||e.\\u0275dir;else{if(e.\\u0275cmp)throw new Error(\"Directives cannot inherit Components\");s=e.\\u0275dir}if(s){if(n){r.push(s);const e=t;e.inputs=eo(t.inputs),e.declaredInputs=eo(t.declaredInputs),e.outputs=eo(t.outputs);const n=s.hostBindings;n&&so(t,n);const i=s.viewQuery,o=s.contentQueries;i&&no(t,i),o&&ro(t,o),b(t.inputs,s.inputs),b(t.declaredInputs,s.declaredInputs),b(t.outputs,s.outputs),e.afterContentChecked=e.afterContentChecked||s.afterContentChecked,e.afterContentInit=t.afterContentInit||s.afterContentInit,e.afterViewChecked=t.afterViewChecked||s.afterViewChecked,e.afterViewInit=t.afterViewInit||s.afterViewInit,e.doCheck=t.doCheck||s.doCheck,e.onDestroy=t.onDestroy||s.onDestroy,e.onInit=t.onInit||s.onInit}const e=s.features;if(e)for(let r=0;r<e.length;r++){const s=e[r];s&&s.ngInherit&&s(t),s===to&&(n=!1)}}e=Object.getPrototypeOf(e)}!function(t){let e=0,n=null;for(let r=t.length-1;r>=0;r--){const s=t[r];s.hostVars=e+=s.hostVars,s.hostAttrs=Ee(s.hostAttrs,n=Ee(n,s.hostAttrs))}}(r)}function eo(t){return t===bt?{}:t===yt?[]:t}function no(t,e){const n=t.viewQuery;t.viewQuery=n?(t,r)=>{e(t,r),n(t,r)}:e}function ro(t,e){const n=t.contentQueries;t.contentQueries=n?(t,r,s)=>{e(t,r,s),n(t,r,s)}:e}function so(t,e){const n=t.hostBindings;t.hostBindings=n?(t,r)=>{e(t,r),n(t,r)}:e}class io{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function oo(){return ao.ngInherit=!0,ao}function ao(t){t.type.prototype.ngOnChanges&&(t.setInput=co,t.onChanges=function(){const t=uo(this),e=t&&t.current;if(e){const n=t.previous;if(n===bt)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}})}function co(t,e,n,r){const s=uo(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:bt,current:null}),i=s.current||(s.current={}),o=s.previous,a=this.declaredInputs[n],c=o[a];i[a]=new io(c&&c.currentValue,e,o===bt),t[r]=e}function uo(t){return t.__ngSimpleChanges__||null}function lo(t,e,n,r,s){if(t=I(t),Array.isArray(t))for(let i=0;i<t.length;i++)lo(t[i],e,n,r,s);else{const i=$t(),o=Ht();let a=si(t)?t:I(t.provide),c=ei(t);const u=qt(),l=65535&u.providerIndexes,h=u.directiveStart,d=u.providerIndexes>>16;if(si(t)||!t.multi){const r=new be(c,s,Ei),p=fo(a,e,s?l:l+d,h);-1===p?($e(Ve(u,o),i,a),ho(i,t,e.length),e.push(a),u.directiveStart++,u.directiveEnd++,s&&(u.providerIndexes+=65536),n.push(r),o.push(r)):(n[p]=r,o[p]=r)}else{const p=fo(a,e,l+d,h),f=fo(a,e,l,l+d),g=p>=0&&n[p],m=f>=0&&n[f];if(s&&!m||!s&&!g){$e(Ve(u,o),i,a);const l=function(t,e,n,r,s){const i=new be(t,n,Ei);return i.multi=[],i.index=e,i.componentProviders=0,po(i,s,r&&!n),i}(s?mo:go,n.length,s,r,c);!s&&m&&(n[f].providerFactory=l),ho(i,t,e.length),e.push(a),u.directiveStart++,u.directiveEnd++,s&&(u.providerIndexes+=65536),n.push(l),o.push(l)}else ho(i,t,p>-1?p:f),po(n[s?f:p],c,!s&&r);!s&&r&&m&&n[f].componentProviders++}}}function ho(t,e,n){if(si(e)||e.useClass){const r=(e.useClass||e).prototype.ngOnDestroy;r&&(t.destroyHooks||(t.destroyHooks=[])).push(n,r)}}function po(t,e,n){t.multi.push(e),n&&t.componentProviders++}function fo(t,e,n,r){for(let s=n;s<r;s++)if(e[s]===t)return s;return-1}function go(t,e,n,r){return bo(this.multi,[])}function mo(t,e,n,r){const s=this.multi;let i;if(this.providerFactory){const t=this.providerFactory.componentProviders,e=We(n,n[1],this.providerFactory.index,r);i=e.slice(0,t),bo(s,i);for(let n=t;n<e.length;n++)i.push(e[n])}else i=[],bo(s,i);return i}function bo(t,e){for(let n=0;n<t.length;n++)e.push((0,t[n])());return e}function yo(t,e=[]){return n=>{n.providersResolver=(n,r)=>function(t,e,n){const r=$t();if(r.firstCreatePass){const s=Lt(t);lo(n,r.data,r.blueprint,s,!0),lo(e,r.data,r.blueprint,s,!1)}}(n,r?r(t):t,e)}}class vo{}class _o{resolveComponentFactory(t){throw function(t){const e=Error(`No component factory found for ${k(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(t)}}let wo=(()=>{class t{}return t.NULL=new _o,t})(),Co=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=()=>So(t),t})();const So=function(t){return Fs(t,qt(),Ht())};class Oo{}const Eo=function(){var t={Important:1,DashCase:2};return t[t.Important]=\"Important\",t[t.DashCase]=\"DashCase\",t}();let xo=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>To(),t})();const To=function(){const t=Ht(),e=Yn(qt().index,t);return function(t){const e=t[11];if(_e(e))return e;throw new Error(\"Cannot inject Renderer2 when the application uses Renderer3!\")}(It(e)?e:t)};let ko=(()=>{class t{}return t.\\u0275prov=y({token:t,providedIn:\"root\",factory:()=>null}),t})();class Ao{constructor(t){this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}}const jo=new Ao(\"9.0.2\");class Po{constructor(){}supports(t){return mi(t)}create(t){return new Ro(t)}}const Io=(t,e)=>e;class Ro{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||Io}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,r=0,s=null;for(;e||n;){const i=!n||e&&e.currentIndex<Lo(n,r,s)?e:n,o=Lo(i,r,s),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(e=e._next,null==i.previousIndex)r++;else{s||(s=[]);const t=o-r,e=a-r;if(t!=e){for(let n=0;n<t;n++){const r=n<s.length?s[n]:s[n]=0,i=r+n;e<=i&&i<t&&(s[n]=r+1)}s[i.previousIndex]=e-t}}o!==a&&t(i,o,a)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!mi(t))throw new Error(`Error trying to diff '${k(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,r,s=this._itHead,i=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],r=this._trackByFn(e,n),null!==s&&fi(s.trackById,r)?(i&&(s=this._verifyReinsertion(s,n,r,e)),fi(s.item,n)||this._addIdentityChange(s,n)):(s=this._mismatch(s,n,r,e),i=!0),s=s._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[pi()]();let r;for(;!(r=n.next()).done;)e(r.value)}}(t,t=>{r=this._trackByFn(e,t),null!==s&&fi(s.trackById,r)?(i&&(s=this._verifyReinsertion(s,t,r,e)),fi(s.item,t)||this._addIdentityChange(s,t)):(s=this._mismatch(s,t,r,e),i=!0),s=s._next,e++}),this.length=e;return this._truncate(s),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t,e;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=e)t.previousIndex=t.currentIndex,e=t._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(fi(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(fi(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):t=this._addAfter(new No(e,n),s,r),t}_verifyReinsertion(t,e,n,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Do),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e?t:(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t,t)}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Do),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class No{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Mo{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&fi(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class Do{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new Mo,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function Lo(t,e,n){const r=t.previousIndex;if(null===r)return r;let s=0;return n&&r<n.length&&(s=n[r]),r+e+s}class Vo{constructor(){}supports(t){return t instanceof Map||bi(t)}create(){return new Uo}}class Uo{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||bi(t)))throw new Error(`Error trying to diff '${k(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const n=this._records.get(t);this._maybeAddToChanges(n,e);const r=n._prev,s=n._next;return r&&(r._next=s),s&&(s._prev=r),n._next=null,n._prev=null,n}const n=new Fo(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){fi(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(n=>e(t[n],n))}}class Fo{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let Ho=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new f,new d]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.\\u0275prov=y({token:t,providedIn:\"root\",factory:()=>new t([new Po])}),t})(),$o=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new f,new d]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.\\u0275prov=y({token:t,providedIn:\"root\",factory:()=>new t([new Vo])}),t})();const zo=[new Vo],qo=new Ho([new Po]),Bo=new $o(zo);let Go=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>Wo(t,Co),t})();const Wo=function(t,e){return Hs(t,e,qt(),Ht())};let Zo=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>Qo(t,Co),t})();const Qo=function(t,e){return $s(t,e,qt(),Ht())},Jo={};function Ko(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const Xo=new G(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Re});class Yo extends vo{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors.map(mr).join(\",\"),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return Ko(this.componentDef.inputs)}get outputs(){return Ko(this.componentDef.outputs)}create(t,e,n,r){const s=(r=r||this.ngModule)?function(t,e){return{get:(n,r,s)=>{const i=t.get(n,Jo,s);return i!==Jo||r===Jo?i:e.get(n,r,s)}}}(t,r.injector):t,i=s.get(Oo,we),o=s.get(ko,null),a=i.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",u=n?function(t,e,n){if(_e(t))return t.selectRootElement(e,n===gt.ShadowDom);let r=\"string\"==typeof e?t.querySelector(e):e;return r.textContent=\"\",r}(a,n,this.componentDef.encapsulation):kr(c,i.createRenderer(null,this.componentDef),function(t){const e=t.toLowerCase();return\"svg\"===e?\"http://www.w3.org/2000/svg\":\"math\"===e?\"http://www.w3.org/1998/MathML/\":null}(c)),l=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Re,clean:us,playerHandler:null,flags:0},p=Vr(0,-1,null,1,0,null,null,null,null,null),f=Ar(null,p,d,l,null,null,i,a,o,s);let g,m;re(f,null);try{const t=function(t,e,n,r,s,i){const o=n[1];n[19]=t;const a=jr(o,null,0,3,null,null),c=a.mergedAttrs=e.hostAttrs;null!==c&&(hi(a,c),null!==t&&(Ce(s,t,c),null!==a.classes&&Ns(s,t,a.classes),null!==a.styles&&Rs(s,t,a.styles)));const u=r.createRenderer(t,e),l=Ar(n,Lr(e),null,e.onPush?64:16,n[19],a,r,u,void 0);return o.firstCreatePass&&($e(Ve(a,n),o,e.type),Wr(o,a),Qr(a,n.length,1)),ss(n,l),n[19]=l}(u,this.componentDef,f,i,a);if(u)if(n)Ce(a,u,[\"ng-version\",jo.full]);else{const{attrs:t,classes:e}=function(t){const e=[],n=[];let r=1,s=2;for(;r<t.length;){let i=t[r];if(\"string\"==typeof i)2===s?\"\"!==i&&e.push(i,t[++r]):8===s&&n.push(i);else{if(!dr(s))break;s=i}r++}return{attrs:e,classes:n}}(this.componentDef.selectors[0]);t&&Ce(a,u,t),e&&e.length>0&&Ns(a,u,e.join(\" \"))}m=Kn(f[1],0),e&&(m.projection=e.map(t=>Array.from(t))),g=function(t,e,n,r,s){const i=n[1],o=function(t,e,n){const r=qt();t.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),Gr(t,r,1),Jr(t,e,n));const s=We(e,t,e.length-1,r);ir(s,e);const i=Jn(r,e);return i&&ir(i,e),s}(i,n,e);r.components.push(o),t[8]=o,s&&s.forEach(t=>t(o,e)),e.contentQueries&&e.contentQueries(1,o,n.length-1);const a=qt();if(i.firstCreatePass&&(null!==e.hostBindings||null!==e.hostAttrs)){le(a.index-19);const t=n[1];zr(t,e),qr(t,n,e.hostVars),Br(e,o)}return o}(t,this.componentDef,f,d,[Yi]),Pr(p,f,null)}finally{ce()}const b=new ta(this.componentType,g,Fs(Co,m,f),f,m);return n&&!h||(b.hostView._tViewNode.child=m),b}}class ta extends class{}{constructor(t,e,n,r,s){super(),this.location=n,this._rootLView=r,this._tNode=s,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new Ds(r),this.hostView._tViewNode=function(t,e,n,r){let s=t.node;return null==s&&(t.node=s=Ur(0,null,2,-1,null,null)),r[6]=s}(r[1],0,0,r),this.componentType=t}get injector(){return new Je(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const ea=void 0;var na=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],ea],[[\"AM\",\"PM\"],ea,ea],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],ea,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],ea,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",ea,\"{1} 'at' {0}\",ea],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===e&&0===n?1:5}];let ra={};function sa(t,e,n){\"string\"!=typeof e&&(n=e,e=t[ua.LocaleId]),e=e.toLowerCase().replace(/_/g,\"-\"),ra[e]=t,n&&(ra[e][ua.ExtraData]=n)}function ia(t){const e=function(t){return t.toLowerCase().replace(/_/g,\"-\")}(t);let n=ca(e);if(n)return n;const r=e.split(\"-\")[0];if(n=ca(r),n)return n;if(\"en\"===r)return na;throw new Error(`Missing locale data for the locale \"${t}\".`)}function oa(t){return ia(t)[ua.CurrencyCode]||null}function aa(t){return ia(t)[ua.PluralCase]}function ca(t){return t in ra||(ra[t]=V.ng&&V.ng.common&&V.ng.common.locales&&V.ng.common.locales[t]),ra[t]}const ua=function(){var t={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return t[t.LocaleId]=\"LocaleId\",t[t.DayPeriodsFormat]=\"DayPeriodsFormat\",t[t.DayPeriodsStandalone]=\"DayPeriodsStandalone\",t[t.DaysFormat]=\"DaysFormat\",t[t.DaysStandalone]=\"DaysStandalone\",t[t.MonthsFormat]=\"MonthsFormat\",t[t.MonthsStandalone]=\"MonthsStandalone\",t[t.Eras]=\"Eras\",t[t.FirstDayOfWeek]=\"FirstDayOfWeek\",t[t.WeekendRange]=\"WeekendRange\",t[t.DateFormat]=\"DateFormat\",t[t.TimeFormat]=\"TimeFormat\",t[t.DateTimeFormat]=\"DateTimeFormat\",t[t.NumberSymbols]=\"NumberSymbols\",t[t.NumberFormats]=\"NumberFormats\",t[t.CurrencyCode]=\"CurrencyCode\",t[t.CurrencySymbol]=\"CurrencySymbol\",t[t.CurrencyName]=\"CurrencyName\",t[t.Currencies]=\"Currencies\",t[t.PluralCase]=\"PluralCase\",t[t.ExtraData]=\"ExtraData\",t}();let la=\"en-US\";function ha(t){var e,n;n=\"Expected localeId to be defined\",null==(e=t)&&function(t,e,n,r){throw new Error(`ASSERTION ERROR: ${t}`+` [Expected=> null != ${e} <=Actual]`)}(n,e),\"string\"==typeof t&&(la=t.toLowerCase().replace(/_/g,\"-\"))}const da=new Map,pa={provide:wo,useClass:class extends wo{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=At(t);return new Yo(e,this.ngModule)}},deps:[ot]};class fa extends ot{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Pt(t),r=t[z]||null;r&&ha(r),this._bootstrapComponents=Ne(n.bootstrap),this._r3Injector=Xs(t,e,[{provide:ot,useValue:this},pa],k(t)),this.instance=this.get(t)}get(t,e=oi.THROW_IF_NOT_FOUND,n=g.Default){return t===oi||t===ot||t===W?this:this._r3Injector.get(t,e,n)}get componentFactoryResolver(){return this.get(wo)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class ga extends at{constructor(t){super(),this.moduleType=t,null!==Pt(t)&&function t(e){if(null!==e.\\u0275mod.id){const t=e.\\u0275mod.id;(function(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${k(e)} vs ${k(e.name)}`)})(t,da.get(t),e),da.set(t,e)}let n=e.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(e=>t(e))}(t)}create(t){return new fa(this.moduleType,t)}}function ma(t,e,n,r){return function(t,e,n,r,s,i){const o=e+n;return _i(t,o,s)?yi(t,o+1,i?r.call(i,s):r(s)):vi(t,o+1)}(Ht(),Qt(),t,e,n,r)}function ba(t,e){const n=$t();let r;const s=t+19;n.firstCreatePass?(r=function(t,e){if(e)for(let n=e.length-1;n>=0;n--){const r=e[n];if(t===r.name)return r}throw new Error(`The pipe '${t}' could not be found!`)}(e,n.pipeRegistry),n.data[s]=r,r.onDestroy&&(n.destroyHooks||(n.destroyHooks=[])).push(s,r.onDestroy)):r=n.data[s];const i=(r.factory||(r.factory=jt(r.type)))();return function(t,e,n,r){const s=n+19;s>=t.data.length&&(t.data[s]=null,t.blueprint[s]=null),e[s]=r}(n,Ht(),t,i),i}function ya(t,e,n,r,s,i){const o=Ht(),a=Xn(o,t);return function(t,e){return gi.isWrapped(e)&&(e=gi.unwrap(e),t[Jt()]=br),e}(o,function(t,e){return t[1].data[e+19].pure}(o,t)?function(t,e,n,r,s,i,o,a,c){const u=e+n;return function(t,e,n,r,s,i){const o=wi(t,e,n,r);return wi(t,e+2,s,i)||o}(t,u,s,i,o,a)?yi(t,u+4,c?r.call(c,s,i,o,a):r(s,i,o,a)):vi(t,u+4)}(o,Qt(),e,a.transform,n,r,s,i,a):a.transform(n,r,s,i))}class va extends r.a{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let r,i=t=>null,o=()=>null;t&&\"object\"==typeof t?(r=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(i=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(o=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(r=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(i=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(o=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const a=super.subscribe(r,i,o);return t instanceof s.a&&t.add(a),a}}function _a(){return this._results[pi()]()}class wa{constructor(){this.dirty=!0,this._results=[],this.changes=new va,this.length=0;const t=pi(),e=wa.prototype;e[t]||(e[t]=_a)}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,e){return this._results.reduce(t,e)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t){this._results=function t(e,n){void 0===n&&(n=e);for(let r=0;r<e.length;r++){let s=e[r];Array.isArray(s)?(n===e&&(n=e.slice(0,r)),t(s,n)):n!==e&&n.push(s)}return n}(t),this.dirty=!1,this.length=this._results.length,this.last=this._results[this.length-1],this.first=this._results[0]}notifyOnChanges(){this.changes.emit(this)}setDirty(){this.dirty=!0}destroy(){this.changes.complete(),this.changes.unsubscribe()}}class Ca{constructor(t){this.queryList=t,this.matches=null}clone(){return new Ca(this.queryList)}setDirty(){this.queryList.setDirty()}}class Sa{constructor(t=[]){this.queries=t}createEmbeddedView(t){const e=t.queries;if(null!==e){const n=null!==t.contentQueries?t.contentQueries[0]:e.length,r=[];for(let t=0;t<n;t++){const n=e.getByIndex(t);r.push(this.queries[n.indexInDeclarationView].clone())}return new Sa(r)}return null}insertView(t){this.dirtyQueriesWithMatches(t)}detachView(t){this.dirtyQueriesWithMatches(t)}dirtyQueriesWithMatches(t){for(let e=0;e<this.queries.length;e++)null!==Ra(t,e).matches&&this.queries[e].setDirty()}}class Oa{constructor(t,e,n,r=null){this.predicate=t,this.descendants=e,this.isStatic=n,this.read=r}}class Ea{constructor(t=[]){this.queries=t}elementStart(t,e){for(let n=0;n<this.queries.length;n++)this.queries[n].elementStart(t,e)}elementEnd(t){for(let e=0;e<this.queries.length;e++)this.queries[e].elementEnd(t)}embeddedTView(t){let e=null;for(let n=0;n<this.length;n++){const r=null!==e?e.length:0,s=this.getByIndex(n).embeddedTView(t,r);s&&(s.indexInDeclarationView=n,null!==e?e.push(s):e=[s])}return null!==e?new Ea(e):null}template(t,e){for(let n=0;n<this.queries.length;n++)this.queries[n].template(t,e)}getByIndex(t){return this.queries[t]}get length(){return this.queries.length}track(t){this.queries.push(t)}}class xa{constructor(t,e=-1){this.metadata=t,this.matches=null,this.indexInDeclarationView=-1,this.crossesNgTemplate=!1,this._appliesToNextNode=!0,this._declarationNodeIndex=e}elementStart(t,e){this.isApplyingToNode(e)&&this.matchTNode(t,e)}elementEnd(t){this._declarationNodeIndex===t.index&&(this._appliesToNextNode=!1)}template(t,e){this.elementStart(t,e)}embeddedTView(t,e){return this.isApplyingToNode(t)?(this.crossesNgTemplate=!0,this.addMatch(-t.index,e),new xa(this.metadata)):null}isApplyingToNode(t){if(this._appliesToNextNode&&!1===this.metadata.descendants){const e=this._declarationNodeIndex;let n=t.parent;for(;null!==n&&4===n.type&&n.index!==e;)n=n.parent;return e===(null!==n?n.index:-1)}return this._appliesToNextNode}matchTNode(t,e){if(Array.isArray(this.metadata.predicate)){const n=this.metadata.predicate;for(let r=0;r<n.length;r++)this.matchTNodeWithReadOption(t,e,Ta(e,n[r]))}else{const n=this.metadata.predicate;n===Go?0===e.type&&this.matchTNodeWithReadOption(t,e,-1):this.matchTNodeWithReadOption(t,e,Ge(e,t,n,!1,!1))}}matchTNodeWithReadOption(t,e,n){if(null!==n){const r=this.metadata.read;if(null!==r)if(r===Co||r===Zo||r===Go&&0===e.type)this.addMatch(e.index,-2);else{const n=Ge(e,t,r,!1,!1);null!==n&&this.addMatch(e.index,n)}else this.addMatch(e.index,n)}}addMatch(t,e){null===this.matches?this.matches=[t,e]:this.matches.push(t,e)}}function Ta(t,e){const n=t.localNames;if(null!==n)for(let r=0;r<n.length;r+=2)if(n[r]===e)return n[r+1];return null}function ka(t,e,n,r){return-1===n?function(t,e){return 3===t.type||4===t.type?Fs(Co,t,e):0===t.type?Hs(Go,Co,t,e):null}(e,t):-2===n?function(t,e,n){return n===Co?Fs(Co,e,t):n===Go?Hs(Go,Co,e,t):n===Zo?$s(Zo,Co,e,t):void 0}(t,e,r):We(t,t[1],n,e)}function Aa(t,e,n,r){const s=e[5].queries[r];if(null===s.matches){const r=t.data,i=n.matches,o=[];for(let t=0;t<i.length;t+=2){const s=i[t];o.push(s<0?null:ka(e,r[s],i[t+1],n.metadata.read))}s.matches=o}return s.matches}function ja(t){const e=Ht(),n=$t(),r=te();ee(r+1);const s=Ra(n,r);if(t.dirty&&er(e)===s.metadata.isStatic){if(null===s.matches)t.reset([]);else{const i=s.crossesNgTemplate?function t(e,n,r,s){const i=e.queries.getByIndex(r),o=i.matches;if(null!==o){const a=Aa(e,n,i,r);for(let e=0;e<o.length;e+=2){const r=o[e];if(r>0)s.push(a[e/2]);else{const i=o[e+1],a=n[-r];for(let e=9;e<a.length;e++){const n=a[e];n[17]===n[3]&&t(n[1],n,i,s)}if(null!==a[5]){const e=a[5];for(let n=0;n<e.length;n++){const r=e[n];t(r[1],r,i,s)}}}}}return s}(n,e,r,[]):Aa(n,e,s,r);t.reset(i),t.notifyOnChanges()}return!0}return!1}function Pa(t,e,n,r){!function(t,e,n,r,s,i,o,a){t.firstCreatePass&&(function(t,e,n){null===t.queries&&(t.queries=new Ea),t.queries.track(new xa(e,n))}(t,new Oa(n,r,!1,s),o.index),function(t,e){const n=t.contentQueries||(t.contentQueries=[]);e!==(t.contentQueries.length?n[n.length-1]:-1)&&n.push(t.queries.length-1,e)}(t,a)),function(t,e){const n=new wa;!function(t,e,n,r){const s=ls(e);s.push(n),t.firstCreatePass&&hs(t).push(r,s.length-1)}(t,e,n,n.destroy),null===e[5]&&(e[5]=new Sa),e[5].queries.push(new Ca(n))}(t,e)}($t(),Ht(),e,n,r,0,qt(),t)}function Ia(){return t=Ht(),e=te(),t[5].queries[e].queryList;var t,e}function Ra(t,e){return t.queries.getByIndex(e)}function Na(t=g.Default){const e=zs(!0);if(null!=e||t&g.Optional)return e;throw new Error(\"No provider for ChangeDetectorRef!\")}const Ma=new G(\"Application Initializer\");let Da=(()=>{class t{constructor(t){this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();Ni(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}return t.\\u0275fac=function(e){return new(e||t)(nt(Ma,8))},t.\\u0275prov=y({token:t,factory:t.\\u0275fac}),t})();const La=new G(\"AppId\"),Va={provide:La,useFactory:function(){return`${Ua()}${Ua()}${Ua()}`},deps:[]};function Ua(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Fa=new G(\"Platform Initializer\"),Ha=new G(\"Platform ID\"),$a=new G(\"appBootstrapListener\");let za=(()=>{class t{log(t){console.log(t)}warn(t){console.warn(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=y({token:t,factory:t.\\u0275fac}),t})();const qa=new G(\"LocaleId\"),Ba=new G(\"DefaultCurrencyCode\");class Ga{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const Wa=function(t){return new ga(t)},Za=Wa,Qa=function(t){return Promise.resolve(Wa(t))},Ja=function(t){const e=Wa(t),n=Ne(Pt(t).declarations).reduce((t,e)=>{const n=At(e);return n&&t.push(new Yo(n)),t},[]);return new Ga(e,n)},Ka=Ja,Xa=function(t){return Promise.resolve(Ja(t))};let Ya=(()=>{class t{constructor(){this.compileModuleSync=Za,this.compileModuleAsync=Qa,this.compileModuleAndAllComponentsSync=Ka,this.compileModuleAndAllComponentsAsync=Xa}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=y({token:t,factory:t.\\u0275fac}),t})();const tc=new G(\"compilerOptions\"),ec=(()=>Promise.resolve(0))();function nc(t){\"undefined\"==typeof Zone?ec.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",t)}class rc{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new va(!1),this.onMicrotaskEmpty=new va(!1),this.onStable=new va(!1),this.onError=new va(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=e,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let t=V.requestAnimationFrame,e=V.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__(\"OriginalDelegate\")];n&&(t=n);const r=e[Zone.__symbol__(\"OriginalDelegate\")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function(t){const e=!!t.shouldCoalesceEventChangeDetection&&t.nativeRequestAnimationFrame&&(()=>{!function(t){-1===t.lastRequestAnimationFrameId&&(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(V,()=>{t.lastRequestAnimationFrameId=-1,ac(t),oc(t)}),ac(t))}(t)});t._inner=t._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:e},onInvokeTask:(n,r,s,i,o,a)=>{try{return cc(t),n.invokeTask(s,i,o,a)}finally{e&&\"eventTask\"===i.type&&e(),uc(t)}},onInvoke:(e,n,r,s,i,o,a)=>{try{return cc(t),e.invoke(r,s,i,o,a)}finally{uc(t)}},onHasTask:(e,n,r,s)=>{e.hasTask(r,s),n===r&&(\"microTask\"==s.change?(t._hasPendingMicrotasks=s.microTask,ac(t),oc(t)):\"macroTask\"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,n,r,s)=>(e.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!rc.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(rc.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,r){const s=this._inner,i=s.scheduleEventTask(\"NgZoneEvent: \"+r,t,ic,sc,sc);try{return s.runTask(i,e,n)}finally{s.cancelTask(i)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function sc(){}const ic={};function oc(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function ac(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||t.shouldCoalesceEventChangeDetection&&-1!==t.lastRequestAnimationFrameId)}function cc(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function uc(t){t._nesting--,oc(t)}class lc{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new va,this.onMicrotaskEmpty=new va,this.onStable=new va,this.onError=new va}run(t,e,n){return t.apply(e,n)}runGuarded(t,e,n){return t.apply(e,n)}runOutsideAngular(t){return t()}runTask(t,e,n,r){return t.apply(e,n)}}let hc=(()=>{class t{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{rc.assertNotInAngularZone(),nc(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())nc(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let r=-1;e&&e>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==r),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}return t.\\u0275fac=function(e){return new(e||t)(nt(rc))},t.\\u0275prov=y({token:t,factory:t.\\u0275fac}),t})(),dc=(()=>{class t{constructor(){this._applications=new Map,mc.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return mc.findTestabilityInTree(this,t,e)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=y({token:t,factory:t.\\u0275fac}),t})();class pc{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}function fc(t){mc=t}let gc,mc=new pc,bc=function(t,e,n){const r=new ga(n);if(0===ci.size)return Promise.resolve(r);const s=function(t){const e=[];return t.forEach(t=>t&&e.push(...t)),e}(t.get(tc,[]).concat(e).map(t=>t.providers));if(0===s.length)return Promise.resolve(r);const i=function(){const t=V.ng;if(!t||!t.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return t.\\u0275compilerFacade}(),o=oi.create({providers:s}).get(i.ResourceLoader);return function(t){const e=[],n=new Map;function r(t){let e=n.get(t);if(!e){const r=(t=>Promise.resolve(o.get(t)))(t);n.set(t,e=r.then(li))}return e}return ci.forEach((t,n)=>{const s=[];t.templateUrl&&s.push(r(t.templateUrl).then(e=>{t.template=e}));const i=t.styleUrls,o=t.styles||(t.styles=[]),a=t.styles.length;i&&i.forEach((e,n)=>{o.push(\"\"),s.push(r(e).then(r=>{o[a+n]=r,i.splice(i.indexOf(e),1),0==i.length&&(t.styleUrls=void 0)}))});const c=Promise.all(s).then(()=>function(t){ui.delete(t)}(n));e.push(c)}),ci=new Map,Promise.all(e).then(()=>{})}().then(()=>r)};const yc=new G(\"AllowMultipleToken\");class vc{constructor(t,e){this.name=t,this.token=e}}function _c(t,e,n=[]){const r=`Platform: ${e}`,s=new G(r);return(e=[])=>{let i=wc();if(!i||i.injector.get(yc,!1))if(t)t(n.concat(e).concat({provide:s,useValue:!0}));else{const t=n.concat(e).concat({provide:s,useValue:!0},{provide:Gs,useValue:\"platform\"});!function(t){if(gc&&!gc.destroyed&&!gc.injector.get(yc,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gc=t.get(Cc);const e=t.get(Fa,null);e&&e.forEach(t=>t())}(oi.create({providers:t,name:r}))}return function(t){const e=wc();if(!e)throw new Error(\"No platform exists!\");if(!e.injector.get(t,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return e}(s)}}function wc(){return gc&&!gc.destroyed?gc:null}let Cc=(()=>{class t{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t,e){let n;return n=\"noop\"===t?new lc:(\"zone.js\"===t?void 0:t)||new rc({enableLongStackTrace:vn(),shouldCoalesceEventChangeDetection:e}),n}(e?e.ngZone:void 0,e&&e.ngZoneEventCoalescing||!1),r=[{provide:rc,useValue:n}];return n.run(()=>{const e=oi.create({providers:r,parent:this.injector,name:t.moduleType.name}),s=t.create(e),i=s.injector.get(en,null);if(!i)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return s.onDestroy(()=>Ec(this._modules,s)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{i.handleError(t)}})),function(t,e,n){try{const r=n();return Ni(r)?r.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(i,n,()=>{const t=s.injector.get(Da);return t.runInitializers(),t.donePromise.then(()=>(ha(s.injector.get(qa,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,e=[]){const n=Sc({},e);return bc(this.injector,n,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(Oc);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${k(t.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\\u0275fac=function(e){return new(e||t)(nt(oi))},t.\\u0275prov=y({token:t,factory:t.\\u0275fac}),t})();function Sc(t,e){return Array.isArray(e)?e.reduce(Sc,t):Object.assign(Object.assign({},t),e)}let Oc=(()=>{class t{constructor(t,e,n,r,s,l){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=l,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=vn(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const h=new i.a(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),d=new i.a(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{rc.assertNotInAngularZone(),nc(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{rc.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=Object(o.a)(h,d.pipe(t=>Object(c.a)()(Object(a.a)(u)(t))))}bootstrap(t,e){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=t instanceof vo?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(ot),s=n.create(oi.NULL,[],e||n.selector,r);s.onDestroy(()=>{this._unloadComponent(s)});const i=s.injector.get(hc,null);return i&&s.injector.get(dc).registerApplication(s.location.nativeElement,i),this._loadComponent(s),vn()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),s}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Ec(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get($a,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),Ec(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t.\\u0275fac=function(e){return new(e||t)(nt(rc),nt(za),nt(oi),nt(en),nt(wo),nt(Da))},t.\\u0275prov=y({token:t,factory:t.\\u0275fac}),t})();function Ec(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}class xc{}class Tc{}const kc={factoryPathPrefix:\"\",factoryPathSuffix:\".ngfactory\"};let Ac=(()=>{class t{constructor(t,e){this._compiler=t,this._config=e||kc}load(t){return this.loadAndCompile(t)}loadAndCompile(t){let[e,r]=t.split(\"#\");return void 0===r&&(r=\"default\"),n(\"zn8P\")(e).then(t=>t[r]).then(t=>jc(t,e,r)).then(t=>this._compiler.compileModuleAsync(t))}loadFactory(t){let[e,r]=t.split(\"#\"),s=\"NgFactory\";return void 0===r&&(r=\"default\",s=\"\"),n(\"zn8P\")(this._config.factoryPathPrefix+e+this._config.factoryPathSuffix).then(t=>t[r+s]).then(t=>jc(t,e,r))}}return t.\\u0275fac=function(e){return new(e||t)(nt(Ya),nt(Tc,8))},t.\\u0275prov=y({token:t,factory:t.\\u0275fac}),t})();function jc(t,e,n){if(!t)throw new Error(`Cannot find '${n}' in '${e}'`);return t}const Pc=function(t){return null},Ic=_c(null,\"core\",[{provide:Ha,useValue:\"unknown\"},{provide:Cc,deps:[oi]},{provide:dc,deps:[]},{provide:za,deps:[]}]),Rc=[{provide:Oc,useClass:Oc,deps:[rc,za,oi,en,wo,Da]},{provide:Xo,deps:[rc],useFactory:function(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:Da,useClass:Da,deps:[[new d,Ma]]},{provide:Ya,useClass:Ya,deps:[]},Va,{provide:Ho,useFactory:function(){return qo},deps:[]},{provide:$o,useFactory:function(){return Bo},deps:[]},{provide:qa,useFactory:function(t){return ha(t=t||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),t},deps:[[new h(qa),new d,new f]]},{provide:Ba,useValue:\"USD\"}];let Nc=(()=>{class t{constructor(t){}}return t.\\u0275mod=Ot({type:t}),t.\\u0275inj=v({factory:function(e){return new(e||t)(nt(Oc))},providers:Rc}),t})()},gRHU:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return i}));var r=n(\"2fFW\"),s=n(\"NJ4a\");const i={closed:!0,next(t){},error(t){if(r.a.useDeprecatedSynchronousErrorHandling)throw t;Object(s.a)(t)},complete(){}}},hO0c:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return i}));var r=n(\"fXoL\"),s=n(\"DZdm\");let i=(()=>{class t{constructor(t){this.datasource=t}authenticate(t,e){return this.datasource.authenticate(t,e)}get authenticated(){return null!=this.datasource.auth_token}clear(){this.datasource.auth_token=null}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(s.a))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})()},\"hf/X\":function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return i}));var r=n(\"fXoL\"),s=n(\"DZdm\");let i=(()=>{class t{constructor(t){this.dataSource=t,this.orders=[],this.loaded=!1}loadOrders(){this.loaded=!0,this.dataSource.getOrders().subscribe(t=>this.orders=t)}getOrders(){return this.loaded||this.loadOrders(),this.orders}saveOrder(t){return this.dataSource.saveOrder(t)}updateOrder(t){this.dataSource.updateOrder(t).subscribe(t=>{this.orders.splice(this.orders.findIndex(e=>e.id==t.id),1,t)})}deleteOrder(t){this.dataSource.deleteOrder(t).subscribe(e=>{this.orders.splice(this.orders.findIndex(e=>t==e.id),1)})}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(s.a))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})()},jU2X:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return i}));var r=n(\"fXoL\"),s=n(\"DZdm\");let i=(()=>{class t{constructor(t){this.dataSource=t,this.products=[],this.categories=[],t.getProducts().subscribe(t=>{this.products=t,this.categories=t.map(t=>t.category).filter((t,e,n)=>n.indexOf(t)==e).sort()})}getProducts(t=null){return this.products.filter(e=>null==t||t==e.category)}getProduct(t){return this.products.find(e=>e.id==t)}getCategories(){return this.categories}saveProduct(t){null==t.id||0==t.id?this.dataSource.saveProduct(t).subscribe(t=>this.products.push(t)):this.dataSource.updateProduct(t).subscribe(e=>{this.products.splice(this.products.findIndex(e=>e.id==t.id),1,t)})}deleteProduct(t){this.dataSource.deleteProduct(t).subscribe(e=>{this.products.splice(this.products.findIndex(e=>e.id==t),1)})}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(s.a))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})()},jZKg:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return i}));var r=n(\"HDdC\"),s=n(\"quSY\");function i(t,e){return new r.a(n=>{const r=new s.a;let i=0;return r.add(e.schedule((function(){i!==t.length?(n.next(t[i++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}},kJWO:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return r}));const r=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")()},l7GE:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return s}));var r=n(\"7o/Q\");class s extends r.a{notifyNext(t,e,n,r,s){this.destination.next(e)}notifyError(t,e){this.destination.error(t)}notifyComplete(t){this.destination.complete()}}},lJxs:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return s}));var r=n(\"7o/Q\");function s(t,e){return function(n){if(\"function\"!=typeof t)throw new TypeError(\"argument is not a function. Are you looking for `mapTo()`?\");return n.lift(new i(t,e))}}class i{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new o(t,this.project,this.thisArg))}}class o extends r.a{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}},mCNh:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return s})),n.d(e,\"b\",(function(){return i}));var r=n(\"KqfI\");function s(...t){return i(t)}function i(t){return t?1===t.length?t[0]:function(e){return t.reduce((t,e)=>e(t),e)}:r.a}},n6bG:function(t,e,n){\"use strict\";function r(t){return\"function\"==typeof t}n.d(e,\"a\",(function(){return r}))},ngJS:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return r}));const r=t=>e=>{for(let n=0,r=t.length;n<r&&!e.closed;n++)e.next(t[n]);e.complete()}},oB13:function(t,e,n){\"use strict\";var r=n(\"XNiG\"),s=n(\"HDdC\"),i=(n(\"7o/Q\"),n(\"quSY\")),o=n(\"x+ZX\");class a extends s.a{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new i.a,t.add(this.source.subscribe(new u(this.getSubject(),this))),t.closed&&(this._connection=null,t=i.a.EMPTY)),t}refCount(){return Object(o.a)()(this)}}const c=(()=>{const t=a.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class u extends r.b{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}function l(t,e){return function(n){let r;if(r=\"function\"==typeof t?t:function(){return t},\"function\"==typeof e)return n.lift(new h(r,e));const s=Object.create(n,c);return s.source=n,s.subjectFactory=r,s}}n.d(e,\"a\",(function(){return l}));class h{constructor(t,e){this.subjectFactory=t,this.selector=e}call(t,e){const{selector:n}=this,r=this.subjectFactory(),s=n(r).subscribe(t);return s.add(e.subscribe(r)),s}}},ofXK:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return _})),n.d(e,\"b\",(function(){return q})),n.d(e,\"c\",(function(){return z})),n.d(e,\"d\",(function(){return c})),n.d(e,\"e\",(function(){return C})),n.d(e,\"f\",(function(){return h})),n.d(e,\"g\",(function(){return S})),n.d(e,\"h\",(function(){return y})),n.d(e,\"i\",(function(){return V})),n.d(e,\"j\",(function(){return F})),n.d(e,\"k\",(function(){return w})),n.d(e,\"l\",(function(){return u})),n.d(e,\"m\",(function(){return W})),n.d(e,\"n\",(function(){return G})),n.d(e,\"o\",(function(){return a})),n.d(e,\"p\",(function(){return B})),n.d(e,\"q\",(function(){return i})),n.d(e,\"r\",(function(){return D})),n.d(e,\"s\",(function(){return o}));var r=n(\"fXoL\");let s=null;function i(){return s}function o(t){s||(s=t)}class a{}const c=new r.q(\"DocumentToken\");let u=(()=>{class t{}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=Object(r.Fb)({factory:l,token:t,providedIn:\"platform\"}),t})();function l(){return Object(r.Qb)(d)}const h=new r.q(\"Location Initialized\");let d=(()=>{class t extends u{constructor(t){super(),this._doc=t,this._init()}_init(){this.location=i().getLocation(),this._history=i().getHistory()}getBaseHrefFromDOM(){return i().getBaseHref(this._doc)}onPopState(t){i().getGlobalEventTarget(this._doc,\"window\").addEventListener(\"popstate\",t,!1)}onHashChange(t){i().getGlobalEventTarget(this._doc,\"window\").addEventListener(\"hashchange\",t,!1)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(t){this.location.pathname=t}pushState(t,e,n){p()?this._history.pushState(t,e,n):this.location.hash=n}replaceState(t,e,n){p()?this._history.replaceState(t,e,n):this.location.hash=n}forward(){this._history.forward()}back(){this._history.back()}getState(){return this._history.state}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(c))},t.\\u0275prov=Object(r.Fb)({factory:f,token:t,providedIn:\"platform\"}),t})();function p(){return!!window.history.pushState}function f(){return new d(Object(r.Qb)(c))}function g(t,e){if(0==t.length)return e;if(0==e.length)return t;let n=0;return t.endsWith(\"/\")&&n++,e.startsWith(\"/\")&&n++,2==n?t+e.substring(1):1==n?t+e:t+\"/\"+e}function m(t){const e=t.match(/#|\\?|$/),n=e&&e.index||t.length;return t.slice(0,n-(\"/\"===t[n-1]?1:0))+t.slice(n)}function b(t){return t&&\"?\"!==t[0]?\"?\"+t:t}let y=(()=>{class t{}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=Object(r.Fb)({factory:v,token:t,providedIn:\"root\"}),t})();function v(t){const e=Object(r.Qb)(c).location;return new w(Object(r.Qb)(u),e&&e.origin||\"\")}const _=new r.q(\"appBaseHref\");let w=(()=>{class t extends y{constructor(t,e){if(super(),this._platformLocation=t,null==e&&(e=this._platformLocation.getBaseHrefFromDOM()),null==e)throw new Error(\"No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.\");this._baseHref=e}onPopState(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return g(this._baseHref,t)}path(t=!1){const e=this._platformLocation.pathname+b(this._platformLocation.search),n=this._platformLocation.hash;return n&&t?`${e}${n}`:e}pushState(t,e,n,r){const s=this.prepareExternalUrl(n+b(r));this._platformLocation.pushState(t,e,s)}replaceState(t,e,n,r){const s=this.prepareExternalUrl(n+b(r));this._platformLocation.replaceState(t,e,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(u),r.Qb(_,8))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})(),C=(()=>{class t extends y{constructor(t,e){super(),this._platformLocation=t,this._baseHref=\"\",null!=e&&(this._baseHref=e)}onPopState(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)}getBaseHref(){return this._baseHref}path(t=!1){let e=this._platformLocation.hash;return null==e&&(e=\"#\"),e.length>0?e.substring(1):e}prepareExternalUrl(t){const e=g(this._baseHref,t);return e.length>0?\"#\"+e:e}pushState(t,e,n,r){let s=this.prepareExternalUrl(n+b(r));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.pushState(t,e,s)}replaceState(t,e,n,r){let s=this.prepareExternalUrl(n+b(r));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.replaceState(t,e,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(u),r.Qb(_,8))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})(),S=(()=>{class t{constructor(t,e){this._subject=new r.n,this._urlChangeListeners=[],this._platformStrategy=t;const n=this._platformStrategy.getBaseHref();this._platformLocation=e,this._baseHref=m(E(n)),this._platformStrategy.onPopState(t=>{this._subject.emit({url:this.path(!0),pop:!0,state:t.state,type:t.type})})}path(t=!1){return this.normalize(this._platformStrategy.path(t))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(t,e=\"\"){return this.path()==this.normalize(t+b(e))}normalize(e){return t.stripTrailingSlash(function(t,e){return t&&e.startsWith(t)?e.substring(t.length):e}(this._baseHref,E(e)))}prepareExternalUrl(t){return t&&\"/\"!==t[0]&&(t=\"/\"+t),this._platformStrategy.prepareExternalUrl(t)}go(t,e=\"\",n=null){this._platformStrategy.pushState(n,\"\",t,e),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+b(e)),n)}replaceState(t,e=\"\",n=null){this._platformStrategy.replaceState(n,\"\",t,e),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+b(e)),n)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}onUrlChange(t){this._urlChangeListeners.push(t),this.subscribe(t=>{this._notifyUrlChangeListeners(t.url,t.state)})}_notifyUrlChangeListeners(t=\"\",e){this._urlChangeListeners.forEach(n=>n(t,e))}subscribe(t,e,n){return this._subject.subscribe({next:t,error:e,complete:n})}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(y),r.Qb(u))},t.normalizeQueryParams=b,t.joinWithSlash=g,t.stripTrailingSlash=m,t.\\u0275prov=Object(r.Fb)({factory:O,token:t,providedIn:\"root\"}),t})();function O(){return new S(Object(r.Qb)(y),Object(r.Qb)(u))}function E(t){return t.replace(/\\/index.html$/,\"\")}const x={ADP:[void 0,void 0,0],AFN:[void 0,void 0,0],ALL:[void 0,void 0,0],AMD:[void 0,void 0,2],AOA:[void 0,\"Kz\"],ARS:[void 0,\"$\"],AUD:[\"A$\",\"$\"],BAM:[void 0,\"KM\"],BBD:[void 0,\"$\"],BDT:[void 0,\"\\u09f3\"],BHD:[void 0,void 0,3],BIF:[void 0,void 0,0],BMD:[void 0,\"$\"],BND:[void 0,\"$\"],BOB:[void 0,\"Bs\"],BRL:[\"R$\"],BSD:[void 0,\"$\"],BWP:[void 0,\"P\"],BYN:[void 0,\"\\u0440.\",2],BYR:[void 0,void 0,0],BZD:[void 0,\"$\"],CAD:[\"CA$\",\"$\",2],CHF:[void 0,void 0,2],CLF:[void 0,void 0,4],CLP:[void 0,\"$\",0],CNY:[\"CN\\xa5\",\"\\xa5\"],COP:[void 0,\"$\",2],CRC:[void 0,\"\\u20a1\",2],CUC:[void 0,\"$\"],CUP:[void 0,\"$\"],CZK:[void 0,\"K\\u010d\",2],DJF:[void 0,void 0,0],DKK:[void 0,\"kr\",2],DOP:[void 0,\"$\"],EGP:[void 0,\"E\\xa3\"],ESP:[void 0,\"\\u20a7\",0],EUR:[\"\\u20ac\"],FJD:[void 0,\"$\"],FKP:[void 0,\"\\xa3\"],GBP:[\"\\xa3\"],GEL:[void 0,\"\\u20be\"],GIP:[void 0,\"\\xa3\"],GNF:[void 0,\"FG\",0],GTQ:[void 0,\"Q\"],GYD:[void 0,\"$\",2],HKD:[\"HK$\",\"$\"],HNL:[void 0,\"L\"],HRK:[void 0,\"kn\"],HUF:[void 0,\"Ft\",2],IDR:[void 0,\"Rp\",2],ILS:[\"\\u20aa\"],INR:[\"\\u20b9\"],IQD:[void 0,void 0,0],IRR:[void 0,void 0,0],ISK:[void 0,\"kr\",0],ITL:[void 0,void 0,0],JMD:[void 0,\"$\"],JOD:[void 0,void 0,3],JPY:[\"\\xa5\",void 0,0],KHR:[void 0,\"\\u17db\"],KMF:[void 0,\"CF\",0],KPW:[void 0,\"\\u20a9\",0],KRW:[\"\\u20a9\",void 0,0],KWD:[void 0,void 0,3],KYD:[void 0,\"$\"],KZT:[void 0,\"\\u20b8\"],LAK:[void 0,\"\\u20ad\",0],LBP:[void 0,\"L\\xa3\",0],LKR:[void 0,\"Rs\"],LRD:[void 0,\"$\"],LTL:[void 0,\"Lt\"],LUF:[void 0,void 0,0],LVL:[void 0,\"Ls\"],LYD:[void 0,void 0,3],MGA:[void 0,\"Ar\",0],MGF:[void 0,void 0,0],MMK:[void 0,\"K\",0],MNT:[void 0,\"\\u20ae\",2],MRO:[void 0,void 0,0],MUR:[void 0,\"Rs\",2],MXN:[\"MX$\",\"$\"],MYR:[void 0,\"RM\"],NAD:[void 0,\"$\"],NGN:[void 0,\"\\u20a6\"],NIO:[void 0,\"C$\"],NOK:[void 0,\"kr\",2],NPR:[void 0,\"Rs\"],NZD:[\"NZ$\",\"$\"],OMR:[void 0,void 0,3],PHP:[void 0,\"\\u20b1\"],PKR:[void 0,\"Rs\",2],PLN:[void 0,\"z\\u0142\"],PYG:[void 0,\"\\u20b2\",0],RON:[void 0,\"lei\"],RSD:[void 0,void 0,0],RUB:[void 0,\"\\u20bd\"],RUR:[void 0,\"\\u0440.\"],RWF:[void 0,\"RF\",0],SBD:[void 0,\"$\"],SEK:[void 0,\"kr\",2],SGD:[void 0,\"$\"],SHP:[void 0,\"\\xa3\"],SLL:[void 0,void 0,0],SOS:[void 0,void 0,0],SRD:[void 0,\"$\"],SSP:[void 0,\"\\xa3\"],STD:[void 0,void 0,0],STN:[void 0,\"Db\"],SYP:[void 0,\"\\xa3\",0],THB:[void 0,\"\\u0e3f\"],TMM:[void 0,void 0,0],TND:[void 0,void 0,3],TOP:[void 0,\"T$\"],TRL:[void 0,void 0,0],TRY:[void 0,\"\\u20ba\"],TTD:[void 0,\"$\"],TWD:[\"NT$\",\"$\",2],TZS:[void 0,void 0,2],UAH:[void 0,\"\\u20b4\"],UGX:[void 0,void 0,0],USD:[\"$\"],UYI:[void 0,void 0,0],UYU:[void 0,\"$\"],UYW:[void 0,void 0,4],UZS:[void 0,void 0,2],VEF:[void 0,\"Bs\",2],VND:[\"\\u20ab\",void 0,0],VUV:[void 0,void 0,0],XAF:[\"FCFA\",void 0,0],XCD:[\"EC$\",\"$\"],XOF:[\"CFA\",void 0,0],XPF:[\"CFPF\",void 0,0],XXX:[\"\\xa4\"],YER:[void 0,void 0,0],ZAR:[void 0,\"R\"],ZMK:[void 0,void 0,0],ZMW:[void 0,\"ZK\"],ZWD:[void 0,void 0,0]},T=function(){var t={Decimal:0,Percent:1,Currency:2,Scientific:3};return t[t.Decimal]=\"Decimal\",t[t.Percent]=\"Percent\",t[t.Currency]=\"Currency\",t[t.Scientific]=\"Scientific\",t}(),k=function(){var t={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return t[t.Zero]=\"Zero\",t[t.One]=\"One\",t[t.Two]=\"Two\",t[t.Few]=\"Few\",t[t.Many]=\"Many\",t[t.Other]=\"Other\",t}(),A=function(){var t={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};return t[t.Decimal]=\"Decimal\",t[t.Group]=\"Group\",t[t.List]=\"List\",t[t.PercentSign]=\"PercentSign\",t[t.PlusSign]=\"PlusSign\",t[t.MinusSign]=\"MinusSign\",t[t.Exponential]=\"Exponential\",t[t.SuperscriptingExponent]=\"SuperscriptingExponent\",t[t.PerMille]=\"PerMille\",t[t.Infinity]=\"Infinity\",t[t.NaN]=\"NaN\",t[t.TimeSeparator]=\"TimeSeparator\",t[t.CurrencyDecimal]=\"CurrencyDecimal\",t[t.CurrencyGroup]=\"CurrencyGroup\",t}();function j(t,e){const n=Object(r.ib)(t),s=n[r.Y.NumberSymbols][e];if(void 0===s){if(e===A.CurrencyDecimal)return n[r.Y.NumberSymbols][A.Decimal];if(e===A.CurrencyGroup)return n[r.Y.NumberSymbols][A.Group]}return s}const P=r.lb,I=/^(\\d+)?\\.((\\d+)(-(\\d+))?)?$/;function R(t){const e=parseInt(t);if(isNaN(e))throw new Error(\"Invalid integer literal when parsing \"+t);return e}class N{}let M=(()=>{class t extends N{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(P(e||this.locale)(t)){case k.Zero:return\"zero\";case k.One:return\"one\";case k.Two:return\"two\";case k.Few:return\"few\";case k.Many:return\"many\";default:return\"other\"}}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(r.u))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})();function D(t,e){e=encodeURIComponent(e);for(const n of t.split(\";\")){const t=n.indexOf(\"=\"),[r,s]=-1==t?[n,\"\"]:[n.slice(0,t),n.slice(t+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}class L{constructor(t,e,n,r){this.$implicit=t,this.ngForOf=e,this.index=n,this.count=r}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let V=(()=>{class t{constructor(t,e,n){this._viewContainer=t,this._template=e,this._differs=n,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){Object(r.T)()&&null!=t&&\"function\"!=typeof t&&console&&console.warn&&console.warn(`trackBy must be a function, but received ${JSON.stringify(t)}. `+\"See https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html#!#change-propagation for more information.\"),this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const n=this._ngForOf;if(!this._differ&&n)try{this._differ=this._differs.find(n).create(this.ngForTrackBy)}catch(e){throw new Error(`Cannot find a differ supporting object '${n}' of type '${t=n,t.name||typeof t}'. NgFor only supports binding to Iterables such as Arrays.`)}}var t;if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const e=[];t.forEachOperation((t,n,r)=>{if(null==t.previousIndex){const n=this._viewContainer.createEmbeddedView(this._template,new L(null,this._ngForOf,-1,-1),null===r?void 0:r),s=new U(t,n);e.push(s)}else if(null==r)this._viewContainer.remove(null===n?void 0:n);else if(null!==n){const s=this._viewContainer.get(n);this._viewContainer.move(s,r);const i=new U(t,s);e.push(i)}});for(let n=0;n<e.length;n++)this._perViewChange(e[n].view,e[n].record);for(let n=0,r=this._viewContainer.length;n<r;n++){const t=this._viewContainer.get(n);t.context.index=n,t.context.count=r,t.context.ngForOf=this._ngForOf}t.forEachIdentityChange(t=>{this._viewContainer.get(t.currentIndex).context.$implicit=t.item})}_perViewChange(t,e){t.context.$implicit=e.item}static ngTemplateContextGuard(t,e){return!0}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(r.N),r.Jb(r.K),r.Jb(r.s))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"\",\"ngFor\",\"\",\"ngForOf\",\"\"]],inputs:{ngForOf:\"ngForOf\",ngForTrackBy:\"ngForTrackBy\",ngForTemplate:\"ngForTemplate\"}}),t})();class U{constructor(t,e){this.record=t,this.view=e}}let F=(()=>{class t{constructor(t,e){this._viewContainer=t,this._context=new H,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=e}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){$(\"ngIfThen\",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){$(\"ngIfElse\",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(t,e){return!0}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(r.N),r.Jb(r.K))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"\",\"ngIf\",\"\"]],inputs:{ngIf:\"ngIf\",ngIfThen:\"ngIfThen\",ngIfElse:\"ngIfElse\"}}),t})();class H{constructor(){this.$implicit=null,this.ngIf=null}}function $(t,e){if(e&&!e.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${Object(r.ub)(e)}'.`)}let z=(()=>{class t{constructor(t,e=\"USD\"){this._locale=t,this._defaultCurrencyCode=e}transform(e,n,s=\"symbol\",i,o){if(function(t){return null==t||\"\"===t||t!=t}(e))return null;o=o||this._locale,\"boolean\"==typeof s&&(console&&console.warn&&console.warn('Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are \"code\", \"symbol\" or \"symbol-narrow\".'),s=s?\"symbol\":\"code\");let a=n||this._defaultCurrencyCode;\"code\"!==s&&(a=\"symbol\"===s||\"symbol-narrow\"===s?function(t,e,n=\"en\"){const s=function(t){return Object(r.ib)(t)[r.Y.Currencies]}(n)[t]||x[t]||[],i=s[1];return\"narrow\"===e&&\"string\"==typeof i?i:s[0]||t}(a,\"symbol\"===s?\"wide\":\"narrow\",o):s);try{return function(t,e,n,s,i){const o=function(t,e=\"-\"){const n={minInt:1,minFrac:0,maxFrac:0,posPre:\"\",posSuf:\"\",negPre:\"\",negSuf:\"\",gSize:0,lgSize:0},r=t.split(\";\"),s=r[0],i=r[1],o=-1!==s.indexOf(\".\")?s.split(\".\"):[s.substring(0,s.lastIndexOf(\"0\")+1),s.substring(s.lastIndexOf(\"0\")+1)],a=o[0],c=o[1]||\"\";n.posPre=a.substr(0,a.indexOf(\"#\"));for(let l=0;l<c.length;l++){const t=c.charAt(l);\"0\"===t?n.minFrac=n.maxFrac=l+1:\"#\"===t?n.maxFrac=l+1:n.posSuf+=t}const u=a.split(\",\");if(n.gSize=u[1]?u[1].length:0,n.lgSize=u[2]||u[1]?(u[2]||u[1]).length:0,i){const t=s.length-n.posPre.length-n.posSuf.length,e=i.indexOf(\"#\");n.negPre=i.substr(0,e).replace(/'/g,\"\"),n.negSuf=i.substr(e+t).replace(/'/g,\"\")}else n.negPre=e+n.posPre,n.negSuf=n.posSuf;return n}(function(t,e){return Object(r.ib)(t)[r.Y.NumberFormats][e]}(e,T.Currency),j(e,A.MinusSign));return o.minFrac=function(t){let e;const n=x[t];return n&&(e=n[2]),\"number\"==typeof e?e:2}(s),o.maxFrac=o.minFrac,function(t,e,n,r,s,i,o=!1){let a=\"\",c=!1;if(isFinite(t)){let u=function(t){let e,n,r,s,i,o=Math.abs(t)+\"\",a=0;for((n=o.indexOf(\".\"))>-1&&(o=o.replace(\".\",\"\")),(r=o.search(/e/i))>0?(n<0&&(n=r),n+=+o.slice(r+1),o=o.substring(0,r)):n<0&&(n=o.length),r=0;\"0\"===o.charAt(r);r++);if(r===(i=o.length))e=[0],n=1;else{for(i--;\"0\"===o.charAt(i);)i--;for(n-=r,e=[],s=0;r<=i;r++,s++)e[s]=Number(o.charAt(r))}return n>22&&(e=e.splice(0,21),a=n-1,n=1),{digits:e,exponent:a,integerLen:n}}(t);o&&(u=function(t){if(0===t.digits[0])return t;const e=t.digits.length-t.integerLen;return t.exponent?t.exponent+=2:(0===e?t.digits.push(0,0):1===e&&t.digits.push(0),t.integerLen+=2),t}(u));let l=e.minInt,h=e.minFrac,d=e.maxFrac;if(i){const t=i.match(I);if(null===t)throw new Error(`${i} is not a valid digit info`);const e=t[1],n=t[3],r=t[5];null!=e&&(l=R(e)),null!=n&&(h=R(n)),null!=r?d=R(r):null!=n&&h>d&&(d=h)}!function(t,e,n){if(e>n)throw new Error(`The minimum number of digits after fraction (${e}) is higher than the maximum (${n}).`);let r=t.digits,s=r.length-t.integerLen;const i=Math.min(Math.max(e,s),n);let o=i+t.integerLen,a=r[o];if(o>0){r.splice(Math.max(t.integerLen,o));for(let t=o;t<r.length;t++)r[t]=0}else{s=Math.max(0,s),t.integerLen=1,r.length=Math.max(1,o=i+1),r[0]=0;for(let t=1;t<o;t++)r[t]=0}if(a>=5)if(o-1<0){for(let e=0;e>o;e--)r.unshift(0),t.integerLen++;r.unshift(1),t.integerLen++}else r[o-1]++;for(;s<Math.max(0,i);s++)r.push(0);let c=0!==i;const u=e+t.integerLen,l=r.reduceRight((function(t,e,n,r){return r[n]=(e+=t)<10?e:e-10,c&&(0===r[n]&&n>=u?r.pop():c=!1),e>=10?1:0}),0);l&&(r.unshift(l),t.integerLen++)}(u,h,d);let p=u.digits,f=u.integerLen;const g=u.exponent;let m=[];for(c=p.every(t=>!t);f<l;f++)p.unshift(0);for(;f<0;f++)p.unshift(0);f>0?m=p.splice(f,p.length):(m=p,p=[0]);const b=[];for(p.length>=e.lgSize&&b.unshift(p.splice(-e.lgSize,p.length).join(\"\"));p.length>e.gSize;)b.unshift(p.splice(-e.gSize,p.length).join(\"\"));p.length&&b.unshift(p.join(\"\")),a=b.join(j(n,r)),m.length&&(a+=j(n,s)+m.join(\"\")),g&&(a+=j(n,A.Exponential)+\"+\"+g)}else a=j(n,A.Infinity);return a=t<0&&!c?e.negPre+a+e.negSuf:e.posPre+a+e.posSuf,a}(t,o,e,A.CurrencyGroup,A.CurrencyDecimal,i).replace(\"\\xa4\",n).replace(\"\\xa4\",\"\").trim()}(function(t){if(\"string\"==typeof t&&!isNaN(Number(t)-parseFloat(t)))return Number(t);if(\"number\"!=typeof t)throw new Error(`${t} is not a number`);return t}(e),o,a,n,i)}catch(c){throw function(t,e){return Error(`InvalidPipeArgument: '${e}' for pipe '${Object(r.ub)(t)}'`)}(t,c.message)}}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(r.u),r.Jb(r.k))},t.\\u0275pipe=r.Ib({name:\"currency\",type:t,pure:!0}),t})(),q=(()=>{class t{}return t.\\u0275mod=r.Hb({type:t}),t.\\u0275inj=r.Gb({factory:function(e){return new(e||t)},providers:[{provide:N,useClass:M}]}),t})();const B=\"browser\";function G(t){return t===B}let W=(()=>{class t{}return t.\\u0275prov=Object(r.Fb)({token:t,providedIn:\"root\",factory:()=>new Z(Object(r.Qb)(c),window,Object(r.Qb)(r.m))}),t})();class Z{constructor(t,e,n){this.document=t,this.window=e,this.errorHandler=n,this.offset=()=>[0,0]}setOffset(t){this.offset=Array.isArray(t)?()=>t:t}getScrollPosition(){return this.supportScrollRestoration()?[this.window.scrollX,this.window.scrollY]:[0,0]}scrollToPosition(t){this.supportScrollRestoration()&&this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){if(this.supportScrollRestoration()){t=this.window.CSS&&this.window.CSS.escape?this.window.CSS.escape(t):t.replace(/(\\\"|\\'\\ |:|\\.|\\[|\\]|,|=)/g,\"\\\\$1\");try{const e=this.document.querySelector(`#${t}`);if(e)return void this.scrollToElement(e);const n=this.document.querySelector(`[name='${t}']`);if(n)return void this.scrollToElement(n)}catch(e){this.errorHandler.handleError(e)}}}setHistoryScrollRestoration(t){if(this.supportScrollRestoration()){const e=this.window.history;e&&e.scrollRestoration&&(e.scrollRestoration=t)}}scrollToElement(t){const e=t.getBoundingClientRect(),n=e.left+this.window.pageXOffset,r=e.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo(n-s[0],r-s[1])}supportScrollRestoration(){try{return!!this.window&&!!this.window.scrollTo}catch(t){return!1}}}},pLZG:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return s}));var r=n(\"7o/Q\");function s(t,e){return function(n){return n.lift(new i(t,e))}}class i{constructor(t,e){this.predicate=t,this.thisArg=e}call(t,e){return e.subscribe(new o(t,this.predicate,this.thisArg))}}class o extends r.a{constructor(t,e,n){super(t),this.predicate=e,this.thisArg=n,this.count=0}_next(t){let e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}e&&this.destination.next(t)}}},quSY:function(t,e,n){\"use strict\";var r=n(\"DH7j\"),s=n(\"XoHu\"),i=n(\"n6bG\");const o=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();n.d(e,\"a\",(function(){return a}));let a=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:a,_subscriptions:u}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(Object(i.a)(a))try{a.call(this)}catch(l){e=l instanceof o?c(l.errors):[l]}if(Object(r.a)(u)){let t=-1,n=u.length;for(;++t<n;){const n=u[t];if(Object(s.a)(n))try{n.unsubscribe()}catch(l){e=e||[],l instanceof o?e=e.concat(c(l.errors)):e.push(l)}}}if(e)throw new o(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case\"function\":n=new t(e);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error(\"unrecognized teardown \"+e+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof t){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const s=this._subscriptions;return null===s?this._subscriptions=[n]:s.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}var e;return t.EMPTY=((e=new t).closed=!0,e),t})();function c(t){return t.reduce((t,e)=>t.concat(e instanceof o?e.errors:e),[])}},\"tk/3\":function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return x})),n.d(e,\"b\",(function(){return H})),n.d(e,\"c\",(function(){return d}));var r=n(\"fXoL\"),s=n(\"LRne\"),i=n(\"HDdC\"),o=n(\"bOdf\"),a=n(\"pLZG\"),c=n(\"lJxs\"),u=n(\"ofXK\");class l{}class h{}class d{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit=\"string\"==typeof t?()=>{this.headers=new Map,t.split(\"\\n\").forEach(t=>{const e=t.indexOf(\":\");if(e>0){const n=t.slice(0,e),r=n.toLowerCase(),s=t.slice(e+1).trim();this.maybeSetNormalizedName(n,r),this.headers.has(r)?this.headers.get(r).push(s):this.headers.set(r,[s])}})}:()=>{this.headers=new Map,Object.keys(t).forEach(e=>{let n=t[e];const r=e.toLowerCase();\"string\"==typeof n&&(n=[n]),n.length>0&&(this.headers.set(r,n),this.maybeSetNormalizedName(e,r))})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:\"a\"})}set(t,e){return this.clone({name:t,value:e,op:\"s\"})}delete(t,e){return this.clone({name:t,value:e,op:\"d\"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof d?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){const e=new d;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof d?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){const e=t.name.toLowerCase();switch(t.op){case\"a\":case\"s\":let n=t.value;if(\"string\"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(t.name,e);const r=(\"a\"===t.op?this.headers.get(e):void 0)||[];r.push(...n),this.headers.set(e,r);break;case\"d\":const s=t.value;if(s){let t=this.headers.get(e);if(!t)return;t=t.filter(t=>-1===s.indexOf(t)),0===t.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,t)}else this.headers.delete(e),this.normalizedNames.delete(e)}}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}}class p{encodeKey(t){return f(t)}encodeValue(t){return f(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}function f(t){return encodeURIComponent(t).replace(/%40/gi,\"@\").replace(/%3A/gi,\":\").replace(/%24/gi,\"$\").replace(/%2C/gi,\",\").replace(/%3B/gi,\";\").replace(/%2B/gi,\"+\").replace(/%3D/gi,\"=\").replace(/%3F/gi,\"?\").replace(/%2F/gi,\"/\")}class g{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new p,t.fromString){if(t.fromObject)throw new Error(\"Cannot specify both fromString and fromObject.\");this.map=function(t,e){const n=new Map;return t.length>0&&t.split(\"&\").forEach(t=>{const r=t.indexOf(\"=\"),[s,i]=-1==r?[e.decodeKey(t),\"\"]:[e.decodeKey(t.slice(0,r)),e.decodeValue(t.slice(r+1))],o=n.get(s)||[];o.push(i),n.set(s,o)}),n}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const n=t.fromObject[e];this.map.set(e,Array.isArray(n)?n:[n])})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:\"a\"})}set(t,e){return this.clone({param:t,value:e,op:\"s\"})}delete(t,e){return this.clone({param:t,value:e,op:\"d\"})}toString(){return this.init(),this.keys().map(t=>{const e=this.encoder.encodeKey(t);return this.map.get(t).map(t=>e+\"=\"+this.encoder.encodeValue(t)).join(\"&\")}).filter(t=>\"\"!==t).join(\"&\")}clone(t){const e=new g({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat([t]),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case\"a\":case\"s\":const e=(\"a\"===t.op?this.map.get(t.param):void 0)||[];e.push(t.value),this.map.set(t.param,e);break;case\"d\":if(void 0===t.value){this.map.delete(t.param);break}{let e=this.map.get(t.param)||[];const n=e.indexOf(t.value);-1!==n&&e.splice(n,1),e.length>0?this.map.set(t.param,e):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}function m(t){return\"undefined\"!=typeof ArrayBuffer&&t instanceof ArrayBuffer}function b(t){return\"undefined\"!=typeof Blob&&t instanceof Blob}function y(t){return\"undefined\"!=typeof FormData&&t instanceof FormData}class v{constructor(t,e,n,r){let s;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType=\"json\",this.method=t.toUpperCase(),function(t){switch(t){case\"DELETE\":case\"GET\":case\"HEAD\":case\"OPTIONS\":case\"JSONP\":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==n?n:null,s=r):s=n,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.params&&(this.params=s.params)),this.headers||(this.headers=new d),this.params){const t=this.params.toString();if(0===t.length)this.urlWithParams=e;else{const n=e.indexOf(\"?\");this.urlWithParams=e+(-1===n?\"?\":n<e.length-1?\"&\":\"\")+t}}else this.params=new g,this.urlWithParams=e}serializeBody(){return null===this.body?null:m(this.body)||b(this.body)||y(this.body)||\"string\"==typeof this.body?this.body:this.body instanceof g?this.body.toString():\"object\"==typeof this.body||\"boolean\"==typeof this.body||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}detectContentTypeHeader(){return null===this.body?null:y(this.body)?null:b(this.body)?this.body.type||null:m(this.body)?null:\"string\"==typeof this.body?\"text/plain\":this.body instanceof g?\"application/x-www-form-urlencoded;charset=UTF-8\":\"object\"==typeof this.body||\"number\"==typeof this.body||Array.isArray(this.body)?\"application/json\":null}clone(t={}){const e=t.method||this.method,n=t.url||this.url,r=t.responseType||this.responseType,s=void 0!==t.body?t.body:this.body,i=void 0!==t.withCredentials?t.withCredentials:this.withCredentials,o=void 0!==t.reportProgress?t.reportProgress:this.reportProgress;let a=t.headers||this.headers,c=t.params||this.params;return void 0!==t.setHeaders&&(a=Object.keys(t.setHeaders).reduce((e,n)=>e.set(n,t.setHeaders[n]),a)),t.setParams&&(c=Object.keys(t.setParams).reduce((e,n)=>e.set(n,t.setParams[n]),c)),new v(e,n,s,{params:c,headers:a,reportProgress:o,responseType:r,withCredentials:i})}}const _=function(){var t={Sent:0,UploadProgress:1,ResponseHeader:2,DownloadProgress:3,Response:4,User:5};return t[t.Sent]=\"Sent\",t[t.UploadProgress]=\"UploadProgress\",t[t.ResponseHeader]=\"ResponseHeader\",t[t.DownloadProgress]=\"DownloadProgress\",t[t.Response]=\"Response\",t[t.User]=\"User\",t}();class w{constructor(t,e=200,n=\"OK\"){this.headers=t.headers||new d,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||n,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class C extends w{constructor(t={}){super(t),this.type=_.ResponseHeader}clone(t={}){return new C({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class S extends w{constructor(t={}){super(t),this.type=_.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new S({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class O extends w{constructor(t){super(t,0,\"Unknown Error\"),this.name=\"HttpErrorResponse\",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||\"(unknown url)\"}`:`Http failure response for ${t.url||\"(unknown url)\"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}function E(t,e){return{body:e,headers:t.headers,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials}}let x=(()=>{class t{constructor(t){this.handler=t}request(t,e,n={}){let r;if(t instanceof v)r=t;else{let s=void 0;s=n.headers instanceof d?n.headers:new d(n.headers);let i=void 0;n.params&&(i=n.params instanceof g?n.params:new g({fromObject:n.params})),r=new v(t,e,void 0!==n.body?n.body:null,{headers:s,params:i,reportProgress:n.reportProgress,responseType:n.responseType||\"json\",withCredentials:n.withCredentials})}const i=Object(s.a)(r).pipe(Object(o.a)(t=>this.handler.handle(t)));if(t instanceof v||\"events\"===n.observe)return i;const u=i.pipe(Object(a.a)(t=>t instanceof S));switch(n.observe||\"body\"){case\"body\":switch(r.responseType){case\"arraybuffer\":return u.pipe(Object(c.a)(t=>{if(null!==t.body&&!(t.body instanceof ArrayBuffer))throw new Error(\"Response is not an ArrayBuffer.\");return t.body}));case\"blob\":return u.pipe(Object(c.a)(t=>{if(null!==t.body&&!(t.body instanceof Blob))throw new Error(\"Response is not a Blob.\");return t.body}));case\"text\":return u.pipe(Object(c.a)(t=>{if(null!==t.body&&\"string\"!=typeof t.body)throw new Error(\"Response is not a string.\");return t.body}));case\"json\":default:return u.pipe(Object(c.a)(t=>t.body))}case\"response\":return u;default:throw new Error(`Unreachable: unhandled observe type ${n.observe}}`)}}delete(t,e={}){return this.request(\"DELETE\",t,e)}get(t,e={}){return this.request(\"GET\",t,e)}head(t,e={}){return this.request(\"HEAD\",t,e)}jsonp(t,e){return this.request(\"JSONP\",t,{params:(new g).append(e,\"JSONP_CALLBACK\"),observe:\"body\",responseType:\"json\"})}options(t,e={}){return this.request(\"OPTIONS\",t,e)}patch(t,e,n={}){return this.request(\"PATCH\",t,E(n,e))}post(t,e,n={}){return this.request(\"POST\",t,E(n,e))}put(t,e,n={}){return this.request(\"PUT\",t,E(n,e))}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(l))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})();class T{constructor(t,e){this.next=t,this.interceptor=e}handle(t){return this.interceptor.intercept(t,this.next)}}const k=new r.q(\"HTTP_INTERCEPTORS\");let A=(()=>{class t{intercept(t,e){return e.handle(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})();const j=/^\\)\\]\\}',?\\n/;class P{}let I=(()=>{class t{constructor(){}build(){return new XMLHttpRequest}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})(),R=(()=>{class t{constructor(t){this.xhrFactory=t}handle(t){if(\"JSONP\"===t.method)throw new Error(\"Attempted to construct Jsonp request without JsonpClientModule installed.\");return new i.a(e=>{const n=this.xhrFactory.build();if(n.open(t.method,t.urlWithParams),t.withCredentials&&(n.withCredentials=!0),t.headers.forEach((t,e)=>n.setRequestHeader(t,e.join(\",\"))),t.headers.has(\"Accept\")||n.setRequestHeader(\"Accept\",\"application/json, text/plain, */*\"),!t.headers.has(\"Content-Type\")){const e=t.detectContentTypeHeader();null!==e&&n.setRequestHeader(\"Content-Type\",e)}if(t.responseType){const e=t.responseType.toLowerCase();n.responseType=\"json\"!==e?e:\"text\"}const r=t.serializeBody();let s=null;const i=()=>{if(null!==s)return s;const e=1223===n.status?204:n.status,r=n.statusText||\"OK\",i=new d(n.getAllResponseHeaders()),o=function(t){return\"responseURL\"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader(\"X-Request-URL\"):null}(n)||t.url;return s=new C({headers:i,status:e,statusText:r,url:o}),s},o=()=>{let{headers:r,status:s,statusText:o,url:a}=i(),c=null;204!==s&&(c=void 0===n.response?n.responseText:n.response),0===s&&(s=c?200:0);let u=s>=200&&s<300;if(\"json\"===t.responseType&&\"string\"==typeof c){const t=c;c=c.replace(j,\"\");try{c=\"\"!==c?JSON.parse(c):null}catch(l){c=t,u&&(u=!1,c={error:l,text:c})}}u?(e.next(new S({body:c,headers:r,status:s,statusText:o,url:a||void 0})),e.complete()):e.error(new O({error:c,headers:r,status:s,statusText:o,url:a||void 0}))},a=t=>{const{url:r}=i(),s=new O({error:t,status:n.status||0,statusText:n.statusText||\"Unknown Error\",url:r||void 0});e.error(s)};let c=!1;const u=r=>{c||(e.next(i()),c=!0);let s={type:_.DownloadProgress,loaded:r.loaded};r.lengthComputable&&(s.total=r.total),\"text\"===t.responseType&&n.responseText&&(s.partialText=n.responseText),e.next(s)},l=t=>{let n={type:_.UploadProgress,loaded:t.loaded};t.lengthComputable&&(n.total=t.total),e.next(n)};return n.addEventListener(\"load\",o),n.addEventListener(\"error\",a),t.reportProgress&&(n.addEventListener(\"progress\",u),null!==r&&n.upload&&n.upload.addEventListener(\"progress\",l)),n.send(r),e.next({type:_.Sent}),()=>{n.removeEventListener(\"error\",a),n.removeEventListener(\"load\",o),t.reportProgress&&(n.removeEventListener(\"progress\",u),null!==r&&n.upload&&n.upload.removeEventListener(\"progress\",l)),n.abort()}})}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(P))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})();const N=new r.q(\"XSRF_COOKIE_NAME\"),M=new r.q(\"XSRF_HEADER_NAME\");class D{}let L=(()=>{class t{constructor(t,e,n){this.doc=t,this.platform=e,this.cookieName=n,this.lastCookieString=\"\",this.lastToken=null,this.parseCount=0}getToken(){if(\"server\"===this.platform)return null;const t=this.doc.cookie||\"\";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=Object(u.r)(t,this.cookieName),this.lastCookieString=t),this.lastToken}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(u.d),r.Qb(r.B),r.Qb(N))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})(),V=(()=>{class t{constructor(t,e){this.tokenService=t,this.headerName=e}intercept(t,e){const n=t.url.toLowerCase();if(\"GET\"===t.method||\"HEAD\"===t.method||n.startsWith(\"http://\")||n.startsWith(\"https://\"))return e.handle(t);const r=this.tokenService.getToken();return null===r||t.headers.has(this.headerName)||(t=t.clone({headers:t.headers.set(this.headerName,r)})),e.handle(t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(D),r.Qb(M))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})(),U=(()=>{class t{constructor(t,e){this.backend=t,this.injector=e,this.chain=null}handle(t){if(null===this.chain){const t=this.injector.get(k,[]);this.chain=t.reduceRight((t,e)=>new T(t,e),this.backend)}return this.chain.handle(t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(h),r.Qb(r.r))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})(),F=(()=>{class t{static disable(){return{ngModule:t,providers:[{provide:V,useClass:A}]}}static withOptions(e={}){return{ngModule:t,providers:[e.cookieName?{provide:N,useValue:e.cookieName}:[],e.headerName?{provide:M,useValue:e.headerName}:[]]}}}return t.\\u0275mod=r.Hb({type:t}),t.\\u0275inj=r.Gb({factory:function(e){return new(e||t)},providers:[V,{provide:k,useExisting:V,multi:!0},{provide:D,useClass:L},{provide:N,useValue:\"XSRF-TOKEN\"},{provide:M,useValue:\"X-XSRF-TOKEN\"}]}),t})(),H=(()=>{class t{}return t.\\u0275mod=r.Hb({type:t}),t.\\u0275inj=r.Gb({factory:function(e){return new(e||t)},providers:[x,{provide:l,useClass:U},R,{provide:h,useExisting:R},I,{provide:P,useExisting:I}],imports:[[F.withOptions({cookieName:\"XSRF-TOKEN\",headerName:\"X-XSRF-TOKEN\"})]]}),t})()},tyNb:function(t,e,n){\"use strict\";var r=n(\"ofXK\"),s=n(\"fXoL\"),i=n(\"LRne\"),o=n(\"Cfvw\"),a=n(\"XNiG\"),c=n(\"9ppp\");class u extends a.a{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const e=super._subscribe(t);return e&&!e.closed&&t.next(this._value),e}getValue(){if(this.hasError)throw this.thrownError;if(this.closed)throw new c.a;return this._value}next(t){super.next(this._value=t)}}var l=n(\"HDdC\");const h=(()=>{function t(){return Error.call(this),this.message=\"no elements in sequence\",this.name=\"EmptyError\",this}return t.prototype=Object.create(Error.prototype),t})();var d=n(\"z+Ro\"),p=n(\"DH7j\"),f=n(\"l7GE\"),g=n(\"ZUHj\"),m=n(\"yCtX\");const b={};class y{constructor(t){this.resultSelector=t}call(t,e){return e.subscribe(new v(t,this.resultSelector))}}class v extends f.a{constructor(t,e){super(t),this.resultSelector=e,this.active=0,this.values=[],this.observables=[]}_next(t){this.values.push(b),this.observables.push(t)}_complete(){const t=this.observables,e=t.length;if(0===e)this.destination.complete();else{this.active=e,this.toRespond=e;for(let n=0;n<e;n++){const e=t[n];this.add(Object(g.a)(this,e,e,n))}}}notifyComplete(t){0==(this.active-=1)&&this.destination.complete()}notifyNext(t,e,n,r,s){const i=this.values,o=this.toRespond?i[n]===b?--this.toRespond:this.toRespond:0;i[n]=e,0===o&&(this.resultSelector?this._tryResultSelector(i):this.destination.next(i.slice()))}_tryResultSelector(t){let e;try{e=this.resultSelector.apply(this,t)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}var _=n(\"NXyV\"),w=n(\"EY2u\"),C=n(\"lJxs\"),S=n(\"0EUg\"),O=n(\"pLZG\"),E=n(\"7o/Q\"),x=n(\"4I5i\");function T(t){return function(e){return 0===t?Object(w.b)():e.lift(new k(t))}}class k{constructor(t){if(this.total=t,this.total<0)throw new x.a}call(t,e){return e.subscribe(new A(t,this.total))}}class A extends E.a{constructor(t,e){super(t),this.total=e,this.ring=new Array,this.count=0}_next(t){const e=this.ring,n=this.total,r=this.count++;e.length<n?e.push(t):e[r%n]=t}_complete(){const t=this.destination;let e=this.count;if(e>0){const n=this.count>=this.total?this.total:this.count,r=this.ring;for(let s=0;s<n;s++){const s=e++%n;t.next(r[s])}}t.complete()}}function j(t=R){return e=>e.lift(new P(t))}class P{constructor(t){this.errorFactory=t}call(t,e){return e.subscribe(new I(t,this.errorFactory))}}class I extends E.a{constructor(t,e){super(t),this.errorFactory=e,this.hasValue=!1}_next(t){this.hasValue=!0,this.destination.next(t)}_complete(){if(this.hasValue)return this.destination.complete();{let e;try{e=this.errorFactory()}catch(t){e=t}this.destination.error(e)}}}function R(){return new h}function N(t=null){return e=>e.lift(new M(t))}class M{constructor(t){this.defaultValue=t}call(t,e){return e.subscribe(new D(t,this.defaultValue))}}class D extends E.a{constructor(t,e){super(t),this.defaultValue=e,this.isEmpty=!0}_next(t){this.isEmpty=!1,this.destination.next(t)}_complete(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}var L=n(\"SpAZ\");function V(t,e){const n=arguments.length>=2;return r=>r.pipe(t?Object(O.a)((e,n)=>t(e,n,r)):L.a,T(1),n?N(e):j(()=>new h))}var U=n(\"51Dv\");function F(t){return function(e){const n=new H(t),r=e.lift(n);return n.caught=r}}class H{constructor(t){this.selector=t}call(t,e){return e.subscribe(new $(t,this.selector,this.caught))}}class $ extends f.a{constructor(t,e,n){super(t),this.selector=e,this.caught=n}error(t){if(!this.isStopped){let n;try{n=this.selector(t,this.caught)}catch(e){return void super.error(e)}this._unsubscribeAndRecycle();const r=new U.a(this,void 0,void 0);this.add(r);const s=Object(g.a)(this,n,void 0,void 0,r);s!==r&&this.add(s)}}}var z=n(\"IzEk\");function q(t,e){const n=arguments.length>=2;return r=>r.pipe(t?Object(O.a)((e,n)=>t(e,n,r)):L.a,Object(z.a)(1),n?N(e):j(()=>new h))}var B=n(\"5+tZ\");class G{constructor(t,e,n){this.predicate=t,this.thisArg=e,this.source=n}call(t,e){return e.subscribe(new W(t,this.predicate,this.thisArg,this.source))}}class W extends E.a{constructor(t,e,n,r){super(t),this.predicate=e,this.thisArg=n,this.source=r,this.index=0,this.thisArg=n||this}notifyComplete(t){this.destination.next(t),this.destination.complete()}_next(t){let e=!1;try{e=this.predicate.call(this.thisArg,t,this.index++,this.source)}catch(n){return void this.destination.error(n)}e||this.notifyComplete(!1)}_complete(){this.notifyComplete(!0)}}var Z=n(\"eIep\"),Q=n(\"GyhO\");function J(t,e){let n=!1;return arguments.length>=2&&(n=!0),function(r){return r.lift(new K(t,e,n))}}class K{constructor(t,e,n=!1){this.accumulator=t,this.seed=e,this.hasSeed=n}call(t,e){return e.subscribe(new X(t,this.accumulator,this.seed,this.hasSeed))}}class X extends E.a{constructor(t,e,n,r){super(t),this.accumulator=e,this._seed=n,this.hasSeed=r,this.index=0}get seed(){return this._seed}set seed(t){this.hasSeed=!0,this._seed=t}_next(t){if(this.hasSeed)return this._tryNext(t);this.seed=t,this.destination.next(t)}_tryNext(t){const e=this.index++;let n;try{n=this.accumulator(this.seed,t,e)}catch(r){this.destination.error(r)}this.seed=n,this.destination.next(n)}}var Y=n(\"bOdf\"),tt=n(\"mCNh\"),et=n(\"vkgz\"),nt=n(\"quSY\");class rt{constructor(t){this.callback=t}call(t,e){return e.subscribe(new st(t,this.callback))}}class st extends E.a{constructor(t,e){super(t),this.add(new nt.a(e))}}var it=n(\"bHdf\");n.d(e,\"a\",(function(){return pe})),n.d(e,\"b\",(function(){return Cn})),n.d(e,\"c\",(function(){return Sn})),n.d(e,\"d\",(function(){return xn})),n.d(e,\"e\",(function(){return Un})),n.d(e,\"f\",(function(){return An}));class ot{constructor(t,e){this.id=t,this.url=e}}class at extends ot{constructor(t,e,n=\"imperative\",r=null){super(t,e),this.navigationTrigger=n,this.restoredState=r}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class ct extends ot{constructor(t,e,n){super(t,e),this.urlAfterRedirects=n}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class ut extends ot{constructor(t,e,n){super(t,e),this.reason=n}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class lt extends ot{constructor(t,e,n){super(t,e),this.error=n}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class ht extends ot{constructor(t,e,n,r){super(t,e),this.urlAfterRedirects=n,this.state=r}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class dt extends ot{constructor(t,e,n,r){super(t,e),this.urlAfterRedirects=n,this.state=r}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class pt extends ot{constructor(t,e,n,r,s){super(t,e),this.urlAfterRedirects=n,this.state=r,this.shouldActivate=s}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class ft extends ot{constructor(t,e,n,r){super(t,e),this.urlAfterRedirects=n,this.state=r}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class gt extends ot{constructor(t,e,n,r){super(t,e),this.urlAfterRedirects=n,this.state=r}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class mt{constructor(t){this.route=t}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class bt{constructor(t){this.route=t}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class yt{constructor(t){this.snapshot=t}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||\"\"}')`}}class vt{constructor(t){this.snapshot=t}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||\"\"}')`}}class _t{constructor(t){this.snapshot=t}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||\"\"}')`}}class wt{constructor(t){this.snapshot=t}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||\"\"}')`}}class Ct{constructor(t,e,n){this.routerEvent=t,this.position=e,this.anchor=n}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}let St=(()=>{class t{}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=s.Db({type:t,selectors:[[\"ng-component\"]],decls:1,vars:0,template:function(t,e){1&t&&s.Kb(0,\"router-outlet\")},directives:function(){return[An]},encapsulation:2}),t})();class Ot{constructor(t){this.params=t||{}}has(t){return this.params.hasOwnProperty(t)}get(t){if(this.has(t)){const e=this.params[t];return Array.isArray(e)?e[0]:e}return null}getAll(t){if(this.has(t)){const e=this.params[t];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}}function Et(t){return new Ot(t)}function xt(t){const e=Error(\"NavigationCancelingError: \"+t);return e.ngNavigationCancelingError=!0,e}function Tt(t,e,n){const r=n.path.split(\"/\");if(r.length>t.length)return null;if(\"full\"===n.pathMatch&&(e.hasChildren()||r.length<t.length))return null;const s={};for(let i=0;i<r.length;i++){const e=r[i],n=t[i];if(e.startsWith(\":\"))s[e.substring(1)]=n;else if(e!==n.path)return null}return{consumed:t.slice(0,r.length),posParams:s}}class kt{constructor(t,e){this.routes=t,this.module=e}}function At(t,e=\"\"){for(let n=0;n<t.length;n++){const r=t[n];jt(r,Pt(e,r))}}function jt(t,e){if(!t)throw new Error(`\\n      Invalid configuration of route '${e}': Encountered undefined route.\\n      The reason might be an extra comma.\\n\\n      Example:\\n      const routes: Routes = [\\n        { path: '', redirectTo: '/dashboard', pathMatch: 'full' },\\n        { path: 'dashboard',  component: DashboardComponent },, << two commas\\n        { path: 'detail/:id', component: HeroDetailComponent }\\n      ];\\n    `);if(Array.isArray(t))throw new Error(`Invalid configuration of route '${e}': Array cannot be specified`);if(!t.component&&!t.children&&!t.loadChildren&&t.outlet&&\"primary\"!==t.outlet)throw new Error(`Invalid configuration of route '${e}': a componentless route without children or loadChildren cannot have a named outlet set`);if(t.redirectTo&&t.children)throw new Error(`Invalid configuration of route '${e}': redirectTo and children cannot be used together`);if(t.redirectTo&&t.loadChildren)throw new Error(`Invalid configuration of route '${e}': redirectTo and loadChildren cannot be used together`);if(t.children&&t.loadChildren)throw new Error(`Invalid configuration of route '${e}': children and loadChildren cannot be used together`);if(t.redirectTo&&t.component)throw new Error(`Invalid configuration of route '${e}': redirectTo and component cannot be used together`);if(t.path&&t.matcher)throw new Error(`Invalid configuration of route '${e}': path and matcher cannot be used together`);if(void 0===t.redirectTo&&!t.component&&!t.children&&!t.loadChildren)throw new Error(`Invalid configuration of route '${e}'. One of the following must be provided: component, redirectTo, children or loadChildren`);if(void 0===t.path&&void 0===t.matcher)throw new Error(`Invalid configuration of route '${e}': routes must have either a path or a matcher specified`);if(\"string\"==typeof t.path&&\"/\"===t.path.charAt(0))throw new Error(`Invalid configuration of route '${e}': path cannot start with a slash`);if(\"\"===t.path&&void 0!==t.redirectTo&&void 0===t.pathMatch)throw new Error(`Invalid configuration of route '{path: \"${e}\", redirectTo: \"${t.redirectTo}\"}': please provide 'pathMatch'. The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.`);if(void 0!==t.pathMatch&&\"full\"!==t.pathMatch&&\"prefix\"!==t.pathMatch)throw new Error(`Invalid configuration of route '${e}': pathMatch can only be set to 'prefix' or 'full'`);t.children&&At(t.children,e)}function Pt(t,e){return e?t||e.path?t&&!e.path?`${t}/`:!t&&e.path?e.path:`${t}/${e.path}`:\"\":t}function It(t){const e=t.children&&t.children.map(It),n=e?Object.assign(Object.assign({},t),{children:e}):Object.assign({},t);return!n.component&&(e||n.loadChildren)&&n.outlet&&\"primary\"!==n.outlet&&(n.component=St),n}function Rt(t,e){const n=Object.keys(t),r=Object.keys(e);if(!n||!r||n.length!=r.length)return!1;let s;for(let i=0;i<n.length;i++)if(s=n[i],!Nt(t[s],e[s]))return!1;return!0}function Nt(t,e){return Array.isArray(t)&&Array.isArray(e)?t.length==e.length&&t.every(t=>e.indexOf(t)>-1):t===e}function Mt(t){return Array.prototype.concat.apply([],t)}function Dt(t){return t.length>0?t[t.length-1]:null}function Lt(t,e){for(const n in t)t.hasOwnProperty(n)&&e(t[n],n)}function Vt(t){return Object(s.pb)(t)?t:Object(s.qb)(t)?Object(o.a)(Promise.resolve(t)):Object(i.a)(t)}function Ut(t,e,n){return n?function(t,e){return Rt(t,e)}(t.queryParams,e.queryParams)&&function t(e,n){if(!zt(e.segments,n.segments))return!1;if(e.numberOfChildren!==n.numberOfChildren)return!1;for(const r in n.children){if(!e.children[r])return!1;if(!t(e.children[r],n.children[r]))return!1}return!0}(t.root,e.root):function(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(n=>Nt(t[n],e[n]))}(t.queryParams,e.queryParams)&&function t(e,n){return function e(n,r,s){if(n.segments.length>s.length)return!!zt(n.segments.slice(0,s.length),s)&&!r.hasChildren();if(n.segments.length===s.length){if(!zt(n.segments,s))return!1;for(const e in r.children){if(!n.children[e])return!1;if(!t(n.children[e],r.children[e]))return!1}return!0}{const t=s.slice(0,n.segments.length),i=s.slice(n.segments.length);return!!zt(n.segments,t)&&!!n.children.primary&&e(n.children.primary,r,i)}}(e,n,n.segments)}(t.root,e.root)}class Ft{constructor(t,e,n){this.root=t,this.queryParams=e,this.fragment=n}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Et(this.queryParams)),this._queryParamMap}toString(){return Wt.serialize(this)}}class Ht{constructor(t,e){this.segments=t,this.children=e,this.parent=null,Lt(e,(t,e)=>t.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return Zt(this)}}class $t{constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap||(this._parameterMap=Et(this.parameters)),this._parameterMap}toString(){return te(this)}}function zt(t,e){return t.length===e.length&&t.every((t,n)=>t.path===e[n].path)}function qt(t,e){let n=[];return Lt(t.children,(t,r)=>{\"primary\"===r&&(n=n.concat(e(t,r)))}),Lt(t.children,(t,r)=>{\"primary\"!==r&&(n=n.concat(e(t,r)))}),n}class Bt{}class Gt{parse(t){const e=new ie(t);return new Ft(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){var e;return`${`/${function t(e,n){if(!e.hasChildren())return Zt(e);if(n){const n=e.children.primary?t(e.children.primary,!1):\"\",r=[];return Lt(e.children,(e,n)=>{\"primary\"!==n&&r.push(`${n}:${t(e,!1)}`)}),r.length>0?`${n}(${r.join(\"//\")})`:n}{const n=qt(e,(n,r)=>\"primary\"===r?[t(e.children.primary,!1)]:[`${r}:${t(n,!1)}`]);return`${Zt(e)}/(${n.join(\"//\")})`}}(t.root,!0)}`}${function(t){const e=Object.keys(t).map(e=>{const n=t[e];return Array.isArray(n)?n.map(t=>`${Jt(e)}=${Jt(t)}`).join(\"&\"):`${Jt(e)}=${Jt(n)}`});return e.length?`?${e.join(\"&\")}`:\"\"}(t.queryParams)}${\"string\"==typeof t.fragment?`#${e=t.fragment,encodeURI(e)}`:\"\"}`}}const Wt=new Gt;function Zt(t){return t.segments.map(t=>te(t)).join(\"/\")}function Qt(t){return encodeURIComponent(t).replace(/%40/g,\"@\").replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\")}function Jt(t){return Qt(t).replace(/%3B/gi,\";\")}function Kt(t){return Qt(t).replace(/\\(/g,\"%28\").replace(/\\)/g,\"%29\").replace(/%26/gi,\"&\")}function Xt(t){return decodeURIComponent(t)}function Yt(t){return Xt(t.replace(/\\+/g,\"%20\"))}function te(t){return`${Kt(t.path)}${e=t.parameters,Object.keys(e).map(t=>`;${Kt(t)}=${Kt(e[t])}`).join(\"\")}`;var e}const ee=/^[^\\/()?;=#]+/;function ne(t){const e=t.match(ee);return e?e[0]:\"\"}const re=/^[^=?&#]+/,se=/^[^?&#]+/;class ie{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional(\"/\"),\"\"===this.remaining||this.peekStartsWith(\"?\")||this.peekStartsWith(\"#\")?new Ht([],{}):new Ht([],this.parseChildren())}parseQueryParams(){const t={};if(this.consumeOptional(\"?\"))do{this.parseQueryParam(t)}while(this.consumeOptional(\"&\"));return t}parseFragment(){return this.consumeOptional(\"#\")?decodeURIComponent(this.remaining):null}parseChildren(){if(\"\"===this.remaining)return{};this.consumeOptional(\"/\");const t=[];for(this.peekStartsWith(\"(\")||t.push(this.parseSegment());this.peekStartsWith(\"/\")&&!this.peekStartsWith(\"//\")&&!this.peekStartsWith(\"/(\");)this.capture(\"/\"),t.push(this.parseSegment());let e={};this.peekStartsWith(\"/(\")&&(this.capture(\"/\"),e=this.parseParens(!0));let n={};return this.peekStartsWith(\"(\")&&(n=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(n.primary=new Ht(t,e)),n}parseSegment(){const t=ne(this.remaining);if(\"\"===t&&this.peekStartsWith(\";\"))throw new Error(`Empty path url segment cannot have parameters: '${this.remaining}'.`);return this.capture(t),new $t(Xt(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(\";\");)this.parseParam(t);return t}parseParam(t){const e=ne(this.remaining);if(!e)return;this.capture(e);let n=\"\";if(this.consumeOptional(\"=\")){const t=ne(this.remaining);t&&(n=t,this.capture(n))}t[Xt(e)]=Xt(n)}parseQueryParam(t){const e=function(t){const e=t.match(re);return e?e[0]:\"\"}(this.remaining);if(!e)return;this.capture(e);let n=\"\";if(this.consumeOptional(\"=\")){const t=function(t){const e=t.match(se);return e?e[0]:\"\"}(this.remaining);t&&(n=t,this.capture(n))}const r=Yt(e),s=Yt(n);if(t.hasOwnProperty(r)){let e=t[r];Array.isArray(e)||(e=[e],t[r]=e),e.push(s)}else t[r]=s}parseParens(t){const e={};for(this.capture(\"(\");!this.consumeOptional(\")\")&&this.remaining.length>0;){const n=ne(this.remaining),r=this.remaining[n.length];if(\"/\"!==r&&\")\"!==r&&\";\"!==r)throw new Error(`Cannot parse url '${this.url}'`);let s=void 0;n.indexOf(\":\")>-1?(s=n.substr(0,n.indexOf(\":\")),this.capture(s),this.capture(\":\")):t&&(s=\"primary\");const i=this.parseChildren();e[s]=1===Object.keys(i).length?i.primary:new Ht([],i),this.consumeOptional(\"//\")}return e}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return!!this.peekStartsWith(t)&&(this.remaining=this.remaining.substring(t.length),!0)}capture(t){if(!this.consumeOptional(t))throw new Error(`Expected \"${t}\".`)}}class oe{constructor(t){this._root=t}get root(){return this._root.value}parent(t){const e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null}children(t){const e=ae(t,this._root);return e?e.children.map(t=>t.value):[]}firstChild(t){const e=ae(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){const e=ce(t,this._root);return e.length<2?[]:e[e.length-2].children.map(t=>t.value).filter(e=>e!==t)}pathFromRoot(t){return ce(t,this._root).map(t=>t.value)}}function ae(t,e){if(t===e.value)return e;for(const n of e.children){const e=ae(t,n);if(e)return e}return null}function ce(t,e){if(t===e.value)return[e];for(const n of e.children){const r=ce(t,n);if(r.length)return r.unshift(e),r}return[]}class ue{constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}}function le(t){const e={};return t&&t.children.forEach(t=>e[t.value.outlet]=t),e}class he extends oe{constructor(t,e){super(t),this.snapshot=e,be(this,t)}toString(){return this.snapshot.toString()}}function de(t,e){const n=function(t,e){const n=new ge([],{},{},\"\",{},\"primary\",e,null,t.root,-1,{});return new me(\"\",new ue(n,[]))}(t,e),r=new u([new $t(\"\",{})]),s=new u({}),i=new u({}),o=new u({}),a=new u(\"\"),c=new pe(r,s,o,a,i,\"primary\",e,n.root);return c.snapshot=n.root,new he(new ue(c,[]),n)}class pe{constructor(t,e,n,r,s,i,o,a){this.url=t,this.params=e,this.queryParams=n,this.fragment=r,this.data=s,this.outlet=i,this.component=o,this._futureSnapshot=a}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe(Object(C.a)(t=>Et(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(Object(C.a)(t=>Et(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function fe(t,e=\"emptyOnly\"){const n=t.pathFromRoot;let r=0;if(\"always\"!==e)for(r=n.length-1;r>=1;){const t=n[r],e=n[r-1];if(t.routeConfig&&\"\"===t.routeConfig.path)r--;else{if(e.component)break;r--}}return function(t){return t.reduce((t,e)=>({params:Object.assign(Object.assign({},t.params),e.params),data:Object.assign(Object.assign({},t.data),e.data),resolve:Object.assign(Object.assign({},t.resolve),e._resolvedData)}),{params:{},data:{},resolve:{}})}(n.slice(r))}class ge{constructor(t,e,n,r,s,i,o,a,c,u,l){this.url=t,this.params=e,this.queryParams=n,this.fragment=r,this.data=s,this.outlet=i,this.component=o,this.routeConfig=a,this._urlSegment=c,this._lastPathIndex=u,this._resolve=l}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=Et(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Et(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(t=>t.toString()).join(\"/\")}', path:'${this.routeConfig?this.routeConfig.path:\"\"}')`}}class me extends oe{constructor(t,e){super(e),this.url=t,be(this,e)}toString(){return ye(this._root)}}function be(t,e){e.value._routerState=t,e.children.forEach(e=>be(t,e))}function ye(t){const e=t.children.length>0?` { ${t.children.map(ye).join(\", \")} } `:\"\";return`${t.value}${e}`}function ve(t){if(t.snapshot){const e=t.snapshot,n=t._futureSnapshot;t.snapshot=n,Rt(e.queryParams,n.queryParams)||t.queryParams.next(n.queryParams),e.fragment!==n.fragment&&t.fragment.next(n.fragment),Rt(e.params,n.params)||t.params.next(n.params),function(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;++n)if(!Rt(t[n],e[n]))return!1;return!0}(e.url,n.url)||t.url.next(n.url),Rt(e.data,n.data)||t.data.next(n.data)}else t.snapshot=t._futureSnapshot,t.data.next(t._futureSnapshot.data)}function _e(t,e){var n,r;return Rt(t.params,e.params)&&zt(n=t.url,r=e.url)&&n.every((t,e)=>Rt(t.parameters,r[e].parameters))&&!(!t.parent!=!e.parent)&&(!t.parent||_e(t.parent,e.parent))}function we(t){return\"object\"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function Ce(t,e,n,r,s){let i={};return r&&Lt(r,(t,e)=>{i[e]=Array.isArray(t)?t.map(t=>`${t}`):`${t}`}),new Ft(n.root===t?e:function t(e,n,r){const s={};return Lt(e.children,(e,i)=>{s[i]=e===n?r:t(e,n,r)}),new Ht(e.segments,s)}(n.root,t,e),i,s)}class Se{constructor(t,e,n){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=n,t&&n.length>0&&we(n[0]))throw new Error(\"Root segment cannot have matrix parameters\");const r=n.find(t=>\"object\"==typeof t&&null!=t&&t.outlets);if(r&&r!==Dt(n))throw new Error(\"{outlets:{}} has to be the last command\")}toRoot(){return this.isAbsolute&&1===this.commands.length&&\"/\"==this.commands[0]}}class Oe{constructor(t,e,n){this.segmentGroup=t,this.processChildren=e,this.index=n}}function Ee(t){return\"object\"==typeof t&&null!=t&&t.outlets?t.outlets.primary:`${t}`}function xe(t,e,n){if(t||(t=new Ht([],{})),0===t.segments.length&&t.hasChildren())return Te(t,e,n);const r=function(t,e,n){let r=0,s=e;const i={match:!1,pathIndex:0,commandIndex:0};for(;s<t.segments.length;){if(r>=n.length)return i;const e=t.segments[s],o=Ee(n[r]),a=r<n.length-1?n[r+1]:null;if(s>0&&void 0===o)break;if(o&&a&&\"object\"==typeof a&&void 0===a.outlets){if(!Pe(o,a,e))return i;r+=2}else{if(!Pe(o,{},e))return i;r++}s++}return{match:!0,pathIndex:s,commandIndex:r}}(t,e,n),s=n.slice(r.commandIndex);if(r.match&&r.pathIndex<t.segments.length){const e=new Ht(t.segments.slice(0,r.pathIndex),{});return e.children.primary=new Ht(t.segments.slice(r.pathIndex),t.children),Te(e,0,s)}return r.match&&0===s.length?new Ht(t.segments,{}):r.match&&!t.hasChildren()?ke(t,e,n):r.match?Te(t,0,s):ke(t,e,n)}function Te(t,e,n){if(0===n.length)return new Ht(t.segments,{});{const r=function(t){return\"object\"!=typeof t[0]?{primary:t}:void 0===t[0].outlets?{primary:t}:t[0].outlets}(n),s={};return Lt(r,(n,r)=>{null!==n&&(s[r]=xe(t.children[r],e,n))}),Lt(t.children,(t,e)=>{void 0===r[e]&&(s[e]=t)}),new Ht(t.segments,s)}}function ke(t,e,n){const r=t.segments.slice(0,e);let s=0;for(;s<n.length;){if(\"object\"==typeof n[s]&&void 0!==n[s].outlets){const t=Ae(n[s].outlets);return new Ht(r,t)}if(0===s&&we(n[0])){r.push(new $t(t.segments[e].path,n[0])),s++;continue}const i=Ee(n[s]),o=s<n.length-1?n[s+1]:null;i&&o&&we(o)?(r.push(new $t(i,je(o))),s+=2):(r.push(new $t(i,{})),s++)}return new Ht(r,{})}function Ae(t){const e={};return Lt(t,(t,n)=>{null!==t&&(e[n]=ke(new Ht([],{}),0,t))}),e}function je(t){const e={};return Lt(t,(t,n)=>e[n]=`${t}`),e}function Pe(t,e,n){return t==n.path&&Rt(e,n.parameters)}class Ie{constructor(t,e,n,r){this.routeReuseStrategy=t,this.futureState=e,this.currState=n,this.forwardEvent=r}activate(t){const e=this.futureState._root,n=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,n,t),ve(this.futureState.root),this.activateChildRoutes(e,n,t)}deactivateChildRoutes(t,e,n){const r=le(e);t.children.forEach(t=>{const e=t.value.outlet;this.deactivateRoutes(t,r[e],n),delete r[e]}),Lt(r,(t,e)=>{this.deactivateRouteAndItsChildren(t,n)})}deactivateRoutes(t,e,n){const r=t.value,s=e?e.value:null;if(r===s)if(r.component){const s=n.getContext(r.outlet);s&&this.deactivateChildRoutes(t,e,s.children)}else this.deactivateChildRoutes(t,e,n);else s&&this.deactivateRouteAndItsChildren(e,n)}deactivateRouteAndItsChildren(t,e){this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){const n=e.getContext(t.value.outlet);if(n&&n.outlet){const e=n.outlet.detach(),r=n.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:e,route:t,contexts:r})}}deactivateRouteAndOutlet(t,e){const n=e.getContext(t.value.outlet);if(n){const r=le(t),s=t.value.component?n.children:e;Lt(r,(t,e)=>this.deactivateRouteAndItsChildren(t,s)),n.outlet&&(n.outlet.deactivate(),n.children.onOutletDeactivated())}}activateChildRoutes(t,e,n){const r=le(e);t.children.forEach(t=>{this.activateRoutes(t,r[t.value.outlet],n),this.forwardEvent(new wt(t.value.snapshot))}),t.children.length&&this.forwardEvent(new vt(t.value.snapshot))}activateRoutes(t,e,n){const r=t.value,s=e?e.value:null;if(ve(r),r===s)if(r.component){const s=n.getOrCreateContext(r.outlet);this.activateChildRoutes(t,e,s.children)}else this.activateChildRoutes(t,e,n);else if(r.component){const e=n.getOrCreateContext(r.outlet);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){const t=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),e.children.onOutletReAttached(t.contexts),e.attachRef=t.componentRef,e.route=t.route.value,e.outlet&&e.outlet.attach(t.componentRef,t.route.value),Re(t.route)}else{const n=function(t){for(let e=t.parent;e;e=e.parent){const t=e.routeConfig;if(t&&t._loadedConfig)return t._loadedConfig;if(t&&t.component)return null}return null}(r.snapshot),s=n?n.module.componentFactoryResolver:null;e.attachRef=null,e.route=r,e.resolver=s,e.outlet&&e.outlet.activateWith(r,s),this.activateChildRoutes(t,null,e.children)}}else this.activateChildRoutes(t,null,n)}}function Re(t){ve(t.value),t.children.forEach(Re)}function Ne(t){return\"function\"==typeof t}function Me(t){return t instanceof Ft}class De{constructor(t){this.segmentGroup=t||null}}class Le{constructor(t){this.urlTree=t}}function Ve(t){return new l.a(e=>e.error(new De(t)))}function Ue(t){return new l.a(e=>e.error(new Le(t)))}function Fe(t){return new l.a(e=>e.error(new Error(`Only absolute redirects can have named outlets. redirectTo: '${t}'`)))}class He{constructor(t,e,n,r,i){this.configLoader=e,this.urlSerializer=n,this.urlTree=r,this.config=i,this.allowRedirects=!0,this.ngModule=t.get(s.x)}apply(){return this.expandSegmentGroup(this.ngModule,this.config,this.urlTree.root,\"primary\").pipe(Object(C.a)(t=>this.createUrlTree(t,this.urlTree.queryParams,this.urlTree.fragment))).pipe(F(t=>{if(t instanceof Le)return this.allowRedirects=!1,this.match(t.urlTree);if(t instanceof De)throw this.noMatchError(t);throw t}))}match(t){return this.expandSegmentGroup(this.ngModule,this.config,t.root,\"primary\").pipe(Object(C.a)(e=>this.createUrlTree(e,t.queryParams,t.fragment))).pipe(F(t=>{if(t instanceof De)throw this.noMatchError(t);throw t}))}noMatchError(t){return new Error(`Cannot match any routes. URL Segment: '${t.segmentGroup}'`)}createUrlTree(t,e,n){const r=t.segments.length>0?new Ht([],{primary:t}):t;return new Ft(r,e,n)}expandSegmentGroup(t,e,n,r){return 0===n.segments.length&&n.hasChildren()?this.expandChildren(t,e,n).pipe(Object(C.a)(t=>new Ht([],t))):this.expandSegment(t,n,e,n.segments,r,!0)}expandChildren(t,e,n){return function(t,e){if(0===Object.keys(t).length)return Object(i.a)({});const n=[],r=[],s={};return Lt(t,(t,i)=>{const o=e(i,t).pipe(Object(C.a)(t=>s[i]=t));\"primary\"===i?n.push(o):r.push(o)}),i.a.apply(null,n.concat(r)).pipe(Object(S.a)(),V(),Object(C.a)(()=>s))}(n.children,(n,r)=>this.expandSegmentGroup(t,e,r,n))}expandSegment(t,e,n,r,s,o){return Object(i.a)(...n).pipe(Object(C.a)(a=>this.expandSegmentAgainstRoute(t,e,n,a,r,s,o).pipe(F(t=>{if(t instanceof De)return Object(i.a)(null);throw t}))),Object(S.a)(),q(t=>!!t),F((t,n)=>{if(t instanceof h||\"EmptyError\"===t.name){if(this.noLeftoversInUrl(e,r,s))return Object(i.a)(new Ht([],{}));throw new De(e)}throw t}))}noLeftoversInUrl(t,e,n){return 0===e.length&&!t.children[n]}expandSegmentAgainstRoute(t,e,n,r,s,i,o){return Be(r)!==i?Ve(e):void 0===r.redirectTo?this.matchSegmentAgainstRoute(t,e,r,s):o&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,e,n,r,s,i):Ve(e)}expandSegmentAgainstRouteUsingRedirect(t,e,n,r,s,i){return\"**\"===r.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,n,r,i):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,n,r,s,i)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,e,n,r){const s=this.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith(\"/\")?Ue(s):this.lineralizeSegments(n,s).pipe(Object(B.a)(n=>{const s=new Ht(n,{});return this.expandSegment(t,s,e,n,r,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,e,n,r,s,i){const{matched:o,consumedSegments:a,lastChild:c,positionalParamSegments:u}=$e(e,r,s);if(!o)return Ve(e);const l=this.applyRedirectCommands(a,r.redirectTo,u);return r.redirectTo.startsWith(\"/\")?Ue(l):this.lineralizeSegments(r,l).pipe(Object(B.a)(r=>this.expandSegment(t,e,n,r.concat(s.slice(c)),i,!1)))}matchSegmentAgainstRoute(t,e,n,r){if(\"**\"===n.path)return n.loadChildren?this.configLoader.load(t.injector,n).pipe(Object(C.a)(t=>(n._loadedConfig=t,new Ht(r,{})))):Object(i.a)(new Ht(r,{}));const{matched:s,consumedSegments:o,lastChild:a}=$e(e,n,r);if(!s)return Ve(e);const c=r.slice(a);return this.getChildConfig(t,n,r).pipe(Object(B.a)(t=>{const n=t.module,r=t.routes,{segmentGroup:s,slicedSegments:a}=function(t,e,n,r){return n.length>0&&function(t,e,n){return n.some(n=>qe(t,e,n)&&\"primary\"!==Be(n))}(t,n,r)?{segmentGroup:ze(new Ht(e,function(t,e){const n={};n.primary=e;for(const r of t)\"\"===r.path&&\"primary\"!==Be(r)&&(n[Be(r)]=new Ht([],{}));return n}(r,new Ht(n,t.children)))),slicedSegments:[]}:0===n.length&&function(t,e,n){return n.some(n=>qe(t,e,n))}(t,n,r)?{segmentGroup:ze(new Ht(t.segments,function(t,e,n,r){const s={};for(const i of n)qe(t,e,i)&&!r[Be(i)]&&(s[Be(i)]=new Ht([],{}));return Object.assign(Object.assign({},r),s)}(t,n,r,t.children))),slicedSegments:n}:{segmentGroup:t,slicedSegments:n}}(e,o,c,r);return 0===a.length&&s.hasChildren()?this.expandChildren(n,r,s).pipe(Object(C.a)(t=>new Ht(o,t))):0===r.length&&0===a.length?Object(i.a)(new Ht(o,{})):this.expandSegment(n,s,r,a,\"primary\",!0).pipe(Object(C.a)(t=>new Ht(o.concat(t.segments),t.children)))}))}getChildConfig(t,e,n){return e.children?Object(i.a)(new kt(e.children,t)):e.loadChildren?void 0!==e._loadedConfig?Object(i.a)(e._loadedConfig):function(t,e,n){const r=e.canLoad;return r&&0!==r.length?Object(o.a)(r).pipe(Object(C.a)(r=>{const s=t.get(r);let i;if(function(t){return t&&Ne(t.canLoad)}(s))i=s.canLoad(e,n);else{if(!Ne(s))throw new Error(\"Invalid CanLoad guard\");i=s(e,n)}return Vt(i)})).pipe(Object(S.a)(),(s=t=>!0===t,t=>t.lift(new G(s,void 0,t)))):Object(i.a)(!0);var s}(t.injector,e,n).pipe(Object(B.a)(n=>n?this.configLoader.load(t.injector,e).pipe(Object(C.a)(t=>(e._loadedConfig=t,t))):function(t){return new l.a(e=>e.error(xt(`Cannot load children because the guard of the route \"path: '${t.path}'\" returned false`)))}(e))):Object(i.a)(new kt([],t))}lineralizeSegments(t,e){let n=[],r=e.root;for(;;){if(n=n.concat(r.segments),0===r.numberOfChildren)return Object(i.a)(n);if(r.numberOfChildren>1||!r.children.primary)return Fe(t.redirectTo);r=r.children.primary}}applyRedirectCommands(t,e,n){return this.applyRedirectCreatreUrlTree(e,this.urlSerializer.parse(e),t,n)}applyRedirectCreatreUrlTree(t,e,n,r){const s=this.createSegmentGroup(t,e.root,n,r);return new Ft(s,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){const n={};return Lt(t,(t,r)=>{if(\"string\"==typeof t&&t.startsWith(\":\")){const s=t.substring(1);n[r]=e[s]}else n[r]=t}),n}createSegmentGroup(t,e,n,r){const s=this.createSegments(t,e.segments,n,r);let i={};return Lt(e.children,(e,s)=>{i[s]=this.createSegmentGroup(t,e,n,r)}),new Ht(s,i)}createSegments(t,e,n,r){return e.map(e=>e.path.startsWith(\":\")?this.findPosParam(t,e,r):this.findOrReturn(e,n))}findPosParam(t,e,n){const r=n[e.path.substring(1)];if(!r)throw new Error(`Cannot redirect to '${t}'. Cannot find '${e.path}'.`);return r}findOrReturn(t,e){let n=0;for(const r of e){if(r.path===t.path)return e.splice(n),r;n++}return t}}function $e(t,e,n){if(\"\"===e.path)return\"full\"===e.pathMatch&&(t.hasChildren()||n.length>0)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:[],lastChild:0,positionalParamSegments:{}};const r=(e.matcher||Tt)(n,t,e);return r?{matched:!0,consumedSegments:r.consumed,lastChild:r.consumed.length,positionalParamSegments:r.posParams}:{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}}function ze(t){if(1===t.numberOfChildren&&t.children.primary){const e=t.children.primary;return new Ht(t.segments.concat(e.segments),e.children)}return t}function qe(t,e,n){return(!(t.hasChildren()||e.length>0)||\"full\"!==n.pathMatch)&&\"\"===n.path&&void 0!==n.redirectTo}function Be(t){return t.outlet||\"primary\"}class Ge{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class We{constructor(t,e){this.component=t,this.route=e}}function Ze(t,e,n){const r=t._root;return function t(e,n,r,s,i={canDeactivateChecks:[],canActivateChecks:[]}){const o=le(n);return e.children.forEach(e=>{!function(e,n,r,s,i={canDeactivateChecks:[],canActivateChecks:[]}){const o=e.value,a=n?n.value:null,c=r?r.getContext(e.value.outlet):null;if(a&&o.routeConfig===a.routeConfig){const u=function(t,e,n){if(\"function\"==typeof n)return n(t,e);switch(n){case\"pathParamsChange\":return!zt(t.url,e.url);case\"pathParamsOrQueryParamsChange\":return!zt(t.url,e.url)||!Rt(t.queryParams,e.queryParams);case\"always\":return!0;case\"paramsOrQueryParamsChange\":return!_e(t,e)||!Rt(t.queryParams,e.queryParams);case\"paramsChange\":default:return!_e(t,e)}}(a,o,o.routeConfig.runGuardsAndResolvers);u?i.canActivateChecks.push(new Ge(s)):(o.data=a.data,o._resolvedData=a._resolvedData),t(e,n,o.component?c?c.children:null:r,s,i),u&&i.canDeactivateChecks.push(new We(c&&c.outlet&&c.outlet.component||null,a))}else a&&Je(n,c,i),i.canActivateChecks.push(new Ge(s)),t(e,null,o.component?c?c.children:null:r,s,i)}(e,o[e.value.outlet],r,s.concat([e.value]),i),delete o[e.value.outlet]}),Lt(o,(t,e)=>Je(t,r.getContext(e),i)),i}(r,e?e._root:null,n,[r.value])}function Qe(t,e,n){const r=function(t){if(!t)return null;for(let e=t.parent;e;e=e.parent){const t=e.routeConfig;if(t&&t._loadedConfig)return t._loadedConfig}return null}(e);return(r?r.module.injector:n).get(t)}function Je(t,e,n){const r=le(t),s=t.value;Lt(r,(t,r)=>{Je(t,s.component?e?e.children.getContext(r):null:e,n)}),n.canDeactivateChecks.push(new We(s.component&&e&&e.outlet&&e.outlet.isActivated?e.outlet.component:null,s))}const Ke=Symbol(\"INITIAL_VALUE\");function Xe(){return Object(Z.a)(t=>function(...t){let e=null,n=null;return Object(d.a)(t[t.length-1])&&(n=t.pop()),\"function\"==typeof t[t.length-1]&&(e=t.pop()),1===t.length&&Object(p.a)(t[0])&&(t=t[0]),Object(m.a)(t,n).lift(new y(e))}(...t.map(t=>t.pipe(Object(z.a)(1),function(...t){const e=t[t.length-1];return Object(d.a)(e)?(t.pop(),n=>Object(Q.a)(t,n,e)):e=>Object(Q.a)(t,e)}(Ke)))).pipe(J((t,e)=>{let n=!1;return e.reduce((t,r,s)=>{if(t!==Ke)return t;if(r===Ke&&(n=!0),!n){if(!1===r)return r;if(s===e.length-1||Me(r))return r}return t},t)},Ke),Object(O.a)(t=>t!==Ke),Object(C.a)(t=>Me(t)?t:!0===t),Object(z.a)(1)))}function Ye(t,e){return null!==t&&e&&e(new _t(t)),Object(i.a)(!0)}function tn(t,e){return null!==t&&e&&e(new yt(t)),Object(i.a)(!0)}function en(t,e,n){const r=e.routeConfig?e.routeConfig.canActivate:null;if(!r||0===r.length)return Object(i.a)(!0);const s=r.map(r=>Object(_.a)(()=>{const s=Qe(r,e,n);let i;if(function(t){return t&&Ne(t.canActivate)}(s))i=Vt(s.canActivate(e,t));else{if(!Ne(s))throw new Error(\"Invalid CanActivate guard\");i=Vt(s(e,t))}return i.pipe(q())}));return Object(i.a)(s).pipe(Xe())}function nn(t,e,n){const r=e[e.length-1],s=e.slice(0,e.length-1).reverse().map(t=>function(t){const e=t.routeConfig?t.routeConfig.canActivateChild:null;return e&&0!==e.length?{node:t,guards:e}:null}(t)).filter(t=>null!==t).map(e=>Object(_.a)(()=>{const s=e.guards.map(s=>{const i=Qe(s,e.node,n);let o;if(function(t){return t&&Ne(t.canActivateChild)}(i))o=Vt(i.canActivateChild(r,t));else{if(!Ne(i))throw new Error(\"Invalid CanActivateChild guard\");o=Vt(i(r,t))}return o.pipe(q())});return Object(i.a)(s).pipe(Xe())}));return Object(i.a)(s).pipe(Xe())}class rn{}class sn{constructor(t,e,n,r,s,i){this.rootComponentType=t,this.config=e,this.urlTree=n,this.url=r,this.paramsInheritanceStrategy=s,this.relativeLinkResolution=i}recognize(){try{const t=cn(this.urlTree.root,[],[],this.config,this.relativeLinkResolution).segmentGroup,e=this.processSegmentGroup(this.config,t,\"primary\"),n=new ge([],Object.freeze({}),Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,{},\"primary\",this.rootComponentType,null,this.urlTree.root,-1,{}),r=new ue(n,e),s=new me(this.url,r);return this.inheritParamsAndData(s._root),Object(i.a)(s)}catch(t){return new l.a(e=>e.error(t))}}inheritParamsAndData(t){const e=t.value,n=fe(e,this.paramsInheritanceStrategy);e.params=Object.freeze(n.params),e.data=Object.freeze(n.data),t.children.forEach(t=>this.inheritParamsAndData(t))}processSegmentGroup(t,e,n){return 0===e.segments.length&&e.hasChildren()?this.processChildren(t,e):this.processSegment(t,e,e.segments,n)}processChildren(t,e){const n=qt(e,(e,n)=>this.processSegmentGroup(t,e,n));return function(t){const e={};t.forEach(t=>{const n=e[t.value.outlet];if(n){const e=n.url.map(t=>t.toString()).join(\"/\"),r=t.value.url.map(t=>t.toString()).join(\"/\");throw new Error(`Two segments cannot have the same outlet name: '${e}' and '${r}'.`)}e[t.value.outlet]=t.value})}(n),n.sort((t,e)=>\"primary\"===t.value.outlet?-1:\"primary\"===e.value.outlet?1:t.value.outlet.localeCompare(e.value.outlet)),n}processSegment(t,e,n,r){for(const i of t)try{return this.processSegmentAgainstRoute(i,e,n,r)}catch(s){if(!(s instanceof rn))throw s}if(this.noLeftoversInUrl(e,n,r))return[];throw new rn}noLeftoversInUrl(t,e,n){return 0===e.length&&!t.children[n]}processSegmentAgainstRoute(t,e,n,r){if(t.redirectTo)throw new rn;if((t.outlet||\"primary\")!==r)throw new rn;let s,i=[],o=[];if(\"**\"===t.path){const i=n.length>0?Dt(n).parameters:{};s=new ge(n,i,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,hn(t),r,t.component,t,on(e),an(e)+n.length,dn(t))}else{const a=function(t,e,n){if(\"\"===e.path){if(\"full\"===e.pathMatch&&(t.hasChildren()||n.length>0))throw new rn;return{consumedSegments:[],lastChild:0,parameters:{}}}const r=(e.matcher||Tt)(n,t,e);if(!r)throw new rn;const s={};Lt(r.posParams,(t,e)=>{s[e]=t.path});const i=r.consumed.length>0?Object.assign(Object.assign({},s),r.consumed[r.consumed.length-1].parameters):s;return{consumedSegments:r.consumed,lastChild:r.consumed.length,parameters:i}}(e,t,n);i=a.consumedSegments,o=n.slice(a.lastChild),s=new ge(i,a.parameters,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,hn(t),r,t.component,t,on(e),an(e)+i.length,dn(t))}const a=function(t){return t.children?t.children:t.loadChildren?t._loadedConfig.routes:[]}(t),{segmentGroup:c,slicedSegments:u}=cn(e,i,o,a,this.relativeLinkResolution);if(0===u.length&&c.hasChildren()){const t=this.processChildren(a,c);return[new ue(s,t)]}if(0===a.length&&0===u.length)return[new ue(s,[])];const l=this.processSegment(a,c,u,\"primary\");return[new ue(s,l)]}}function on(t){let e=t;for(;e._sourceSegment;)e=e._sourceSegment;return e}function an(t){let e=t,n=e._segmentIndexShift?e._segmentIndexShift:0;for(;e._sourceSegment;)e=e._sourceSegment,n+=e._segmentIndexShift?e._segmentIndexShift:0;return n-1}function cn(t,e,n,r,s){if(n.length>0&&function(t,e,n){return n.some(n=>un(t,e,n)&&\"primary\"!==ln(n))}(t,n,r)){const s=new Ht(e,function(t,e,n,r){const s={};s.primary=r,r._sourceSegment=t,r._segmentIndexShift=e.length;for(const i of n)if(\"\"===i.path&&\"primary\"!==ln(i)){const n=new Ht([],{});n._sourceSegment=t,n._segmentIndexShift=e.length,s[ln(i)]=n}return s}(t,e,r,new Ht(n,t.children)));return s._sourceSegment=t,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:[]}}if(0===n.length&&function(t,e,n){return n.some(n=>un(t,e,n))}(t,n,r)){const i=new Ht(t.segments,function(t,e,n,r,s,i){const o={};for(const a of r)if(un(t,n,a)&&!s[ln(a)]){const n=new Ht([],{});n._sourceSegment=t,n._segmentIndexShift=\"legacy\"===i?t.segments.length:e.length,o[ln(a)]=n}return Object.assign(Object.assign({},s),o)}(t,e,n,r,t.children,s));return i._sourceSegment=t,i._segmentIndexShift=e.length,{segmentGroup:i,slicedSegments:n}}const i=new Ht(t.segments,t.children);return i._sourceSegment=t,i._segmentIndexShift=e.length,{segmentGroup:i,slicedSegments:n}}function un(t,e,n){return(!(t.hasChildren()||e.length>0)||\"full\"!==n.pathMatch)&&\"\"===n.path&&void 0===n.redirectTo}function ln(t){return t.outlet||\"primary\"}function hn(t){return t.data||{}}function dn(t){return t.resolve||{}}function pn(t,e,n,r){const s=Qe(t,e,r);return Vt(s.resolve?s.resolve(e,n):s(e,n))}function fn(t){return function(e){return e.pipe(Object(Z.a)(e=>{const n=t(e);return n?Object(o.a)(n).pipe(Object(C.a)(()=>e)):Object(o.a)([e])}))}}class gn{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}}const mn=new s.q(\"ROUTES\");class bn{constructor(t,e,n,r){this.loader=t,this.compiler=e,this.onLoadStartListener=n,this.onLoadEndListener=r}load(t,e){return this.onLoadStartListener&&this.onLoadStartListener(e),this.loadModuleFactory(e.loadChildren).pipe(Object(C.a)(n=>{this.onLoadEndListener&&this.onLoadEndListener(e);const r=n.create(t);return new kt(Mt(r.injector.get(mn)).map(It),r)}))}loadModuleFactory(t){return\"string\"==typeof t?Object(o.a)(this.loader.load(t)):Vt(t()).pipe(Object(B.a)(t=>t instanceof s.v?Object(i.a)(t):Object(o.a)(this.compiler.compileModuleAsync(t))))}}class yn{shouldProcessUrl(t){return!0}extract(t){return t}merge(t,e){return t}}function vn(t){throw t}function _n(t,e,n){return e.parse(\"/\")}function wn(t,e){return Object(i.a)(null)}let Cn=(()=>{class t{constructor(t,e,n,r,i,o,c,l){this.rootComponentType=t,this.urlSerializer=e,this.rootContexts=n,this.location=r,this.config=l,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.navigationId=0,this.isNgZoneEnabled=!1,this.events=new a.a,this.errorHandler=vn,this.malformedUriErrorHandler=_n,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:wn,afterPreactivation:wn},this.urlHandlingStrategy=new yn,this.routeReuseStrategy=new gn,this.onSameUrlNavigation=\"ignore\",this.paramsInheritanceStrategy=\"emptyOnly\",this.urlUpdateStrategy=\"deferred\",this.relativeLinkResolution=\"legacy\",this.ngModule=i.get(s.x),this.console=i.get(s.W);const h=i.get(s.z);this.isNgZoneEnabled=h instanceof s.z,this.resetConfig(l),this.currentUrlTree=new Ft(new Ht([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new bn(o,c,t=>this.triggerEvent(new mt(t)),t=>this.triggerEvent(new bt(t))),this.routerState=de(this.currentUrlTree,this.rootComponentType),this.transitions=new u({id:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:\"imperative\",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}setupNavigations(t){const e=this.events;return t.pipe(Object(O.a)(t=>0!==t.id),Object(C.a)(t=>Object.assign(Object.assign({},t),{extractedUrl:this.urlHandlingStrategy.extract(t.rawUrl)})),Object(Z.a)(t=>{let n=!1,r=!1;return Object(i.a)(t).pipe(Object(et.a)(t=>{this.currentNavigation={id:t.id,initialUrl:t.currentRawUrl,extractedUrl:t.extractedUrl,trigger:t.source,extras:t.extras,previousNavigation:this.lastSuccessfulNavigation?Object.assign(Object.assign({},this.lastSuccessfulNavigation),{previousNavigation:null}):null}}),Object(Z.a)(t=>{const n=!this.navigated||t.extractedUrl.toString()!==this.browserUrlTree.toString();if((\"reload\"===this.onSameUrlNavigation||n)&&this.urlHandlingStrategy.shouldProcessUrl(t.rawUrl))return Object(i.a)(t).pipe(Object(Z.a)(t=>{const n=this.transitions.getValue();return e.next(new at(t.id,this.serializeUrl(t.extractedUrl),t.source,t.restoredState)),n!==this.transitions.getValue()?w.a:[t]}),Object(Z.a)(t=>Promise.resolve(t)),(r=this.ngModule.injector,s=this.configLoader,o=this.urlSerializer,a=this.config,function(t){return t.pipe(Object(Z.a)(t=>function(t,e,n,r,s){return new He(t,e,n,r,s).apply()}(r,s,o,t.extractedUrl,a).pipe(Object(C.a)(e=>Object.assign(Object.assign({},t),{urlAfterRedirects:e})))))}),Object(et.a)(t=>{this.currentNavigation=Object.assign(Object.assign({},this.currentNavigation),{finalUrl:t.urlAfterRedirects})}),function(t,e,n,r,s){return function(i){return i.pipe(Object(B.a)(i=>function(t,e,n,r,s=\"emptyOnly\",i=\"legacy\"){return new sn(t,e,n,r,s,i).recognize()}(t,e,i.urlAfterRedirects,n(i.urlAfterRedirects),r,s).pipe(Object(C.a)(t=>Object.assign(Object.assign({},i),{targetSnapshot:t})))))}}(this.rootComponentType,this.config,t=>this.serializeUrl(t),this.paramsInheritanceStrategy,this.relativeLinkResolution),Object(et.a)(t=>{\"eager\"===this.urlUpdateStrategy&&(t.extras.skipLocationChange||this.setBrowserUrl(t.urlAfterRedirects,!!t.extras.replaceUrl,t.id,t.extras.state),this.browserUrlTree=t.urlAfterRedirects)}),Object(et.a)(t=>{const n=new ht(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);e.next(n)}));var r,s,o,a;if(n&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:n,extractedUrl:r,source:s,restoredState:o,extras:a}=t,c=new at(n,this.serializeUrl(r),s,o);e.next(c);const u=de(r,this.rootComponentType).snapshot;return Object(i.a)(Object.assign(Object.assign({},t),{targetSnapshot:u,urlAfterRedirects:r,extras:Object.assign(Object.assign({},a),{skipLocationChange:!1,replaceUrl:!1})}))}return this.rawUrlTree=t.rawUrl,this.browserUrlTree=t.urlAfterRedirects,t.resolve(null),w.a}),fn(t=>{const{targetSnapshot:e,id:n,extractedUrl:r,rawUrl:s,extras:{skipLocationChange:i,replaceUrl:o}}=t;return this.hooks.beforePreactivation(e,{navigationId:n,appliedUrlTree:r,rawUrlTree:s,skipLocationChange:!!i,replaceUrl:!!o})}),Object(et.a)(t=>{const e=new dt(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}),Object(C.a)(t=>Object.assign(Object.assign({},t),{guards:Ze(t.targetSnapshot,t.currentSnapshot,this.rootContexts)})),function(t,e){return function(n){return n.pipe(Object(B.a)(n=>{const{targetSnapshot:r,currentSnapshot:s,guards:{canActivateChecks:a,canDeactivateChecks:c}}=n;return 0===c.length&&0===a.length?Object(i.a)(Object.assign(Object.assign({},n),{guardsResult:!0})):function(t,e,n,r){return Object(o.a)(t).pipe(Object(B.a)(t=>function(t,e,n,r,s){const o=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!o||0===o.length)return Object(i.a)(!0);const a=o.map(i=>{const o=Qe(i,e,s);let a;if(function(t){return t&&Ne(t.canDeactivate)}(o))a=Vt(o.canDeactivate(t,e,n,r));else{if(!Ne(o))throw new Error(\"Invalid CanDeactivate guard\");a=Vt(o(t,e,n,r))}return a.pipe(q())});return Object(i.a)(a).pipe(Xe())}(t.component,t.route,n,e,r)),q(t=>!0!==t,!0))}(c,r,s,t).pipe(Object(B.a)(n=>n&&\"boolean\"==typeof n?function(t,e,n,r){return Object(o.a)(e).pipe(Object(Y.a)(e=>Object(o.a)([tn(e.route.parent,r),Ye(e.route,r),nn(t,e.path,n),en(t,e.route,n)]).pipe(Object(S.a)(),q(t=>!0!==t,!0))),q(t=>!0!==t,!0))}(r,a,t,e):Object(i.a)(n)),Object(C.a)(t=>Object.assign(Object.assign({},n),{guardsResult:t})))}))}}(this.ngModule.injector,t=>this.triggerEvent(t)),Object(et.a)(t=>{if(Me(t.guardsResult)){const e=xt(`Redirecting to \"${this.serializeUrl(t.guardsResult)}\"`);throw e.url=t.guardsResult,e}}),Object(et.a)(t=>{const e=new pt(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot,!!t.guardsResult);this.triggerEvent(e)}),Object(O.a)(t=>{if(!t.guardsResult){this.resetUrlToCurrentUrlTree();const n=new ut(t.id,this.serializeUrl(t.extractedUrl),\"\");return e.next(n),t.resolve(!1),!1}return!0}),fn(t=>{if(t.guards.canActivateChecks.length)return Object(i.a)(t).pipe(Object(et.a)(t=>{const e=new ft(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}),(e=this.paramsInheritanceStrategy,n=this.ngModule.injector,function(t){return t.pipe(Object(B.a)(t=>{const{targetSnapshot:r,guards:{canActivateChecks:s}}=t;return s.length?Object(o.a)(s).pipe(Object(Y.a)(t=>function(t,e,n,r){return function(t,e,n,r){const s=Object.keys(t);if(0===s.length)return Object(i.a)({});if(1===s.length){const i=s[0];return pn(t[i],e,n,r).pipe(Object(C.a)(t=>({[i]:t})))}const a={};return Object(o.a)(s).pipe(Object(B.a)(s=>pn(t[s],e,n,r).pipe(Object(C.a)(t=>(a[s]=t,t))))).pipe(V(),Object(C.a)(()=>a))}(t._resolve,t,e,r).pipe(Object(C.a)(e=>(t._resolvedData=e,t.data=Object.assign(Object.assign({},t.data),fe(t,n).resolve),null)))}(t.route,r,e,n)),function(t,e){return arguments.length>=2?function(n){return Object(tt.a)(J(t,e),T(1),N(e))(n)}:function(e){return Object(tt.a)(J((e,n,r)=>t(e,n,r+1)),T(1))(e)}}((t,e)=>t),Object(C.a)(e=>t)):Object(i.a)(t)}))}),Object(et.a)(t=>{const e=new gt(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}));var e,n}),fn(t=>{const{targetSnapshot:e,id:n,extractedUrl:r,rawUrl:s,extras:{skipLocationChange:i,replaceUrl:o}}=t;return this.hooks.afterPreactivation(e,{navigationId:n,appliedUrlTree:r,rawUrlTree:s,skipLocationChange:!!i,replaceUrl:!!o})}),Object(C.a)(t=>{const e=function(t,e,n){const r=function t(e,n,r){if(r&&e.shouldReuseRoute(n.value,r.value.snapshot)){const s=r.value;s._futureSnapshot=n.value;const i=function(e,n,r){return n.children.map(n=>{for(const s of r.children)if(e.shouldReuseRoute(s.value.snapshot,n.value))return t(e,n,s);return t(e,n)})}(e,n,r);return new ue(s,i)}{const r=e.retrieve(n.value);if(r){const t=r.route;return function t(e,n){if(e.value.routeConfig!==n.value.routeConfig)throw new Error(\"Cannot reattach ActivatedRouteSnapshot created from a different route\");if(e.children.length!==n.children.length)throw new Error(\"Cannot reattach ActivatedRouteSnapshot with a different number of children\");n.value._futureSnapshot=e.value;for(let r=0;r<e.children.length;++r)t(e.children[r],n.children[r])}(n,t),t}{const r=new pe(new u((s=n.value).url),new u(s.params),new u(s.queryParams),new u(s.fragment),new u(s.data),s.outlet,s.component,s),i=n.children.map(n=>t(e,n));return new ue(r,i)}}var s}(t,e._root,n?n._root:void 0);return new he(r,e)}(this.routeReuseStrategy,t.targetSnapshot,t.currentRouterState);return Object.assign(Object.assign({},t),{targetRouterState:e})}),Object(et.a)(t=>{this.currentUrlTree=t.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t.rawUrl),this.routerState=t.targetRouterState,\"deferred\"===this.urlUpdateStrategy&&(t.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,!!t.extras.replaceUrl,t.id,t.extras.state),this.browserUrlTree=t.urlAfterRedirects)}),(a=this.rootContexts,c=this.routeReuseStrategy,l=t=>this.triggerEvent(t),Object(C.a)(t=>(new Ie(c,t.targetRouterState,t.currentRouterState,l).activate(a),t))),Object(et.a)({next(){n=!0},complete(){n=!0}}),(s=()=>{if(!n&&!r){this.resetUrlToCurrentUrlTree();const n=new ut(t.id,this.serializeUrl(t.extractedUrl),`Navigation ID ${t.id} is not equal to the current navigation id ${this.navigationId}`);e.next(n),t.resolve(!1)}this.currentNavigation=null},t=>t.lift(new rt(s))),F(n=>{if(r=!0,(s=n)&&s.ngNavigationCancelingError){const r=Me(n.url);r||(this.navigated=!0,this.resetStateAndUrl(t.currentRouterState,t.currentUrlTree,t.rawUrl));const s=new ut(t.id,this.serializeUrl(t.extractedUrl),n.message);e.next(s),r?setTimeout(()=>{const e=this.urlHandlingStrategy.merge(n.url,this.rawUrlTree);return this.scheduleNavigation(e,\"imperative\",null,{skipLocationChange:t.extras.skipLocationChange,replaceUrl:\"eager\"===this.urlUpdateStrategy},{resolve:t.resolve,reject:t.reject,promise:t.promise})},0):t.resolve(!1)}else{this.resetStateAndUrl(t.currentRouterState,t.currentUrlTree,t.rawUrl);const r=new lt(t.id,this.serializeUrl(t.extractedUrl),n);e.next(r);try{t.resolve(this.errorHandler(n))}catch(i){t.reject(i)}}var s;return w.a}));var s,a,c,l}))}resetRootComponentType(t){this.rootComponentType=t,this.routerState.root.component=this.rootComponentType}getTransition(){const t=this.transitions.value;return t.urlAfterRedirects=this.browserUrlTree,t}setTransition(t){this.transitions.next(Object.assign(Object.assign({},this.getTransition()),t))}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(t=>{let e=this.parseUrl(t.url);const n=\"popstate\"===t.type?\"popstate\":\"hashchange\",r=t.state&&t.state.navigationId?t.state:null;setTimeout(()=>{this.scheduleNavigation(e,n,r,{replaceUrl:!0})},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(t){this.events.next(t)}resetConfig(t){At(t),this.config=t.map(It),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=null)}createUrlTree(t,e={}){const{relativeTo:n,queryParams:r,fragment:i,preserveQueryParams:o,queryParamsHandling:a,preserveFragment:c}=e;Object(s.T)()&&o&&console&&console.warn&&console.warn(\"preserveQueryParams is deprecated, use queryParamsHandling instead.\");const u=n||this.routerState.root,l=c?this.currentUrlTree.fragment:i;let h=null;if(a)switch(a){case\"merge\":h=Object.assign(Object.assign({},this.currentUrlTree.queryParams),r);break;case\"preserve\":h=this.currentUrlTree.queryParams;break;default:h=r||null}else h=o?this.currentUrlTree.queryParams:r||null;return null!==h&&(h=this.removeEmptyProps(h)),function(t,e,n,r,s){if(0===n.length)return Ce(e.root,e.root,e,r,s);const i=function(t){if(\"string\"==typeof t[0]&&1===t.length&&\"/\"===t[0])return new Se(!0,0,t);let e=0,n=!1;const r=t.reduce((t,r,s)=>{if(\"object\"==typeof r&&null!=r){if(r.outlets){const e={};return Lt(r.outlets,(t,n)=>{e[n]=\"string\"==typeof t?t.split(\"/\"):t}),[...t,{outlets:e}]}if(r.segmentPath)return[...t,r.segmentPath]}return\"string\"!=typeof r?[...t,r]:0===s?(r.split(\"/\").forEach((r,s)=>{0==s&&\".\"===r||(0==s&&\"\"===r?n=!0:\"..\"===r?e++:\"\"!=r&&t.push(r))}),t):[...t,r]},[]);return new Se(n,e,r)}(n);if(i.toRoot())return Ce(e.root,new Ht([],{}),e,r,s);const o=function(t,e,n){if(t.isAbsolute)return new Oe(e.root,!0,0);if(-1===n.snapshot._lastPathIndex)return new Oe(n.snapshot._urlSegment,!0,0);const r=we(t.commands[0])?0:1;return function(t,e,n){let r=t,s=e,i=n;for(;i>s;){if(i-=s,r=r.parent,!r)throw new Error(\"Invalid number of '../'\");s=r.segments.length}return new Oe(r,!1,s-i)}(n.snapshot._urlSegment,n.snapshot._lastPathIndex+r,t.numberOfDoubleDots)}(i,e,t),a=o.processChildren?Te(o.segmentGroup,o.index,i.commands):xe(o.segmentGroup,o.index,i.commands);return Ce(o.segmentGroup,a,e,r,s)}(u,this.currentUrlTree,t,h,l)}navigateByUrl(t,e={skipLocationChange:!1}){Object(s.T)()&&this.isNgZoneEnabled&&!s.z.isInAngularZone()&&this.console.warn(\"Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?\");const n=Me(t)?t:this.parseUrl(t),r=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(r,\"imperative\",null,e)}navigate(t,e={skipLocationChange:!1}){return function(t){for(let e=0;e<t.length;e++){const n=t[e];if(null==n)throw new Error(`The requested path contains ${n} segment at index ${e}`)}}(t),this.navigateByUrl(this.createUrlTree(t,e),e)}serializeUrl(t){return this.urlSerializer.serialize(t)}parseUrl(t){let e;try{e=this.urlSerializer.parse(t)}catch(n){e=this.malformedUriErrorHandler(n,this.urlSerializer,t)}return e}isActive(t,e){if(Me(t))return Ut(this.currentUrlTree,t,e);const n=this.parseUrl(t);return Ut(this.currentUrlTree,n,e)}removeEmptyProps(t){return Object.keys(t).reduce((e,n)=>{const r=t[n];return null!=r&&(e[n]=r),e},{})}processNavigations(){this.navigations.subscribe(t=>{this.navigated=!0,this.lastSuccessfulId=t.id,this.events.next(new ct(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,this.currentNavigation=null,t.resolve(!0)},t=>{this.console.warn(\"Unhandled Navigation Error: \")})}scheduleNavigation(t,e,n,r,s){const i=this.getTransition();if(i&&\"imperative\"!==e&&\"imperative\"===i.source&&i.rawUrl.toString()===t.toString())return Promise.resolve(!0);if(i&&\"hashchange\"==e&&\"popstate\"===i.source&&i.rawUrl.toString()===t.toString())return Promise.resolve(!0);if(i&&\"popstate\"==e&&\"hashchange\"===i.source&&i.rawUrl.toString()===t.toString())return Promise.resolve(!0);let o,a,c;s?(o=s.resolve,a=s.reject,c=s.promise):c=new Promise((t,e)=>{o=t,a=e});const u=++this.navigationId;return this.setTransition({id:u,source:e,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:t,extras:r,resolve:o,reject:a,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(t=>Promise.reject(t))}setBrowserUrl(t,e,n,r){const s=this.urlSerializer.serialize(t);r=r||{},this.location.isCurrentPathEqualTo(s)||e?this.location.replaceState(s,\"\",Object.assign(Object.assign({},r),{navigationId:n})):this.location.go(s,\"\",Object.assign(Object.assign({},r),{navigationId:n}))}resetStateAndUrl(t,e,n){this.routerState=t,this.currentUrlTree=e,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,n),this.resetUrlToCurrentUrlTree()}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),\"\",{navigationId:this.lastSuccessfulId})}}return t.\\u0275fac=function(t){s.Tb()},t.\\u0275dir=s.Eb({type:t}),t})(),Sn=(()=>{class t{constructor(t,e,n,r,s){this.router=t,this.route=e,this.commands=[],null==n&&r.setAttribute(s.nativeElement,\"tabindex\",\"0\")}set routerLink(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]}set preserveQueryParams(t){Object(s.T)()&&console&&console.warn&&console.warn(\"preserveQueryParams is deprecated!, use queryParamsHandling instead.\"),this.preserve=t}onClick(){const t={skipLocationChange:En(this.skipLocationChange),replaceUrl:En(this.replaceUrl)};return this.router.navigateByUrl(this.urlTree,t),!0}get urlTree(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:En(this.preserve),queryParamsHandling:this.queryParamsHandling,preserveFragment:En(this.preserveFragment)})}}return t.\\u0275fac=function(e){return new(e||t)(s.Jb(Cn),s.Jb(pe),s.Rb(\"tabindex\"),s.Jb(s.D),s.Jb(s.l))},t.\\u0275dir=s.Eb({type:t,selectors:[[\"\",\"routerLink\",\"\",5,\"a\",5,\"area\"]],hostBindings:function(t,e){1&t&&s.Ub(\"click\",(function(t){return e.onClick()}))},inputs:{routerLink:\"routerLink\",preserveQueryParams:\"preserveQueryParams\",queryParams:\"queryParams\",fragment:\"fragment\",queryParamsHandling:\"queryParamsHandling\",preserveFragment:\"preserveFragment\",skipLocationChange:\"skipLocationChange\",replaceUrl:\"replaceUrl\",state:\"state\"}}),t})(),On=(()=>{class t{constructor(t,e,n){this.router=t,this.route=e,this.locationStrategy=n,this.commands=[],this.subscription=t.events.subscribe(t=>{t instanceof ct&&this.updateTargetUrlAndHref()})}set routerLink(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]}set preserveQueryParams(t){Object(s.T)()&&console&&console.warn&&console.warn(\"preserveQueryParams is deprecated, use queryParamsHandling instead.\"),this.preserve=t}ngOnChanges(t){this.updateTargetUrlAndHref()}ngOnDestroy(){this.subscription.unsubscribe()}onClick(t,e,n,r){if(0!==t||e||n||r)return!0;if(\"string\"==typeof this.target&&\"_self\"!=this.target)return!0;const s={skipLocationChange:En(this.skipLocationChange),replaceUrl:En(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,s),!1}updateTargetUrlAndHref(){this.href=this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree))}get urlTree(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:En(this.preserve),queryParamsHandling:this.queryParamsHandling,preserveFragment:En(this.preserveFragment)})}}return t.\\u0275fac=function(e){return new(e||t)(s.Jb(Cn),s.Jb(pe),s.Jb(r.h))},t.\\u0275dir=s.Eb({type:t,selectors:[[\"a\",\"routerLink\",\"\"],[\"area\",\"routerLink\",\"\"]],hostVars:2,hostBindings:function(t,e){1&t&&s.Ub(\"click\",(function(t){return e.onClick(t.button,t.ctrlKey,t.metaKey,t.shiftKey)})),2&t&&(s.Pb(\"href\",e.href,s.ec),s.Ab(\"target\",e.target))},inputs:{routerLink:\"routerLink\",preserveQueryParams:\"preserveQueryParams\",target:\"target\",queryParams:\"queryParams\",fragment:\"fragment\",queryParamsHandling:\"queryParamsHandling\",preserveFragment:\"preserveFragment\",skipLocationChange:\"skipLocationChange\",replaceUrl:\"replaceUrl\",state:\"state\"},features:[s.xb()]}),t})();function En(t){return\"\"===t||!!t}let xn=(()=>{class t{constructor(t,e,n,r,s){this.router=t,this.element=e,this.renderer=n,this.link=r,this.linkWithHref=s,this.classes=[],this.isActive=!1,this.routerLinkActiveOptions={exact:!1},this.subscription=t.events.subscribe(t=>{t instanceof ct&&this.update()})}ngAfterContentInit(){this.links.changes.subscribe(t=>this.update()),this.linksWithHrefs.changes.subscribe(t=>this.update()),this.update()}set routerLinkActive(t){const e=Array.isArray(t)?t:t.split(\" \");this.classes=e.filter(t=>!!t)}ngOnChanges(t){this.update()}ngOnDestroy(){this.subscription.unsubscribe()}update(){this.links&&this.linksWithHrefs&&this.router.navigated&&Promise.resolve().then(()=>{const t=this.hasActiveLinks();this.isActive!==t&&(this.isActive=t,this.classes.forEach(e=>{t?this.renderer.addClass(this.element.nativeElement,e):this.renderer.removeClass(this.element.nativeElement,e)}))})}isLinkActive(t){return e=>t.isActive(e.urlTree,this.routerLinkActiveOptions.exact)}hasActiveLinks(){const t=this.isLinkActive(this.router);return this.link&&t(this.link)||this.linkWithHref&&t(this.linkWithHref)||this.links.some(t)||this.linksWithHrefs.some(t)}}return t.\\u0275fac=function(e){return new(e||t)(s.Jb(Cn),s.Jb(s.l),s.Jb(s.D),s.Jb(Sn,8),s.Jb(On,8))},t.\\u0275dir=s.Eb({type:t,selectors:[[\"\",\"routerLinkActive\",\"\"]],contentQueries:function(t,e,n){var r;1&t&&(s.Cb(n,Sn,!0),s.Cb(n,On,!0)),2&t&&(s.bc(r=s.Vb())&&(e.links=r),s.bc(r=s.Vb())&&(e.linksWithHrefs=r))},inputs:{routerLinkActiveOptions:\"routerLinkActiveOptions\",routerLinkActive:\"routerLinkActive\"},exportAs:[\"routerLinkActive\"],features:[s.xb()]}),t})();class Tn{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.children=new kn,this.attachRef=null}}class kn{constructor(){this.contexts=new Map}onChildOutletCreated(t,e){const n=this.getOrCreateContext(t);n.outlet=e,this.contexts.set(t,n)}onChildOutletDestroyed(t){const e=this.getContext(t);e&&(e.outlet=null)}onOutletDeactivated(){const t=this.contexts;return this.contexts=new Map,t}onOutletReAttached(t){this.contexts=t}getOrCreateContext(t){let e=this.getContext(t);return e||(e=new Tn,this.contexts.set(t,e)),e}getContext(t){return this.contexts.get(t)||null}}let An=(()=>{class t{constructor(t,e,n,r,i){this.parentContexts=t,this.location=e,this.resolver=n,this.changeDetector=i,this.activated=null,this._activatedRoute=null,this.activateEvents=new s.n,this.deactivateEvents=new s.n,this.name=r||\"primary\",t.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const t=this.parentContexts.getContext(this.name);t&&t.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.resolver||null))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Error(\"Outlet is not activated\");return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Error(\"Outlet is not activated\");return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Error(\"Outlet is not activated\");this.location.detach();const t=this.activated;return this.activated=null,this._activatedRoute=null,t}attach(t,e){this.activated=t,this._activatedRoute=e,this.location.insert(t.hostView)}deactivate(){if(this.activated){const t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,e){if(this.isActivated)throw new Error(\"Cannot activate an already activated outlet\");this._activatedRoute=t;const n=(e=e||this.resolver).resolveComponentFactory(t._futureSnapshot.routeConfig.component),r=this.parentContexts.getOrCreateContext(this.name).children,s=new jn(t,r,this.location.injector);this.activated=this.location.createComponent(n,this.location.length,s),this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return t.\\u0275fac=function(e){return new(e||t)(s.Jb(kn),s.Jb(s.N),s.Jb(s.j),s.Rb(\"name\"),s.Jb(s.h))},t.\\u0275dir=s.Eb({type:t,selectors:[[\"router-outlet\"]],outputs:{activateEvents:\"activate\",deactivateEvents:\"deactivate\"},exportAs:[\"outlet\"]}),t})();class jn{constructor(t,e,n){this.route=t,this.childContexts=e,this.parent=n}get(t,e){return t===pe?this.route:t===kn?this.childContexts:this.parent.get(t,e)}}class Pn{}class In{preload(t,e){return Object(i.a)(null)}}let Rn=(()=>{class t{constructor(t,e,n,r,s){this.router=t,this.injector=r,this.preloadingStrategy=s,this.loader=new bn(e,n,e=>t.triggerEvent(new mt(e)),e=>t.triggerEvent(new bt(e)))}setUpPreloading(){this.subscription=this.router.events.pipe(Object(O.a)(t=>t instanceof ct),Object(Y.a)(()=>this.preload())).subscribe(()=>{})}preload(){const t=this.injector.get(s.x);return this.processRoutes(t,this.router.config)}ngOnDestroy(){this.subscription.unsubscribe()}processRoutes(t,e){const n=[];for(const r of e)if(r.loadChildren&&!r.canLoad&&r._loadedConfig){const t=r._loadedConfig;n.push(this.processRoutes(t.module,t.routes))}else r.loadChildren&&!r.canLoad?n.push(this.preloadConfig(t,r)):r.children&&n.push(this.processRoutes(t,r.children));return Object(o.a)(n).pipe(Object(it.a)(),Object(C.a)(t=>{}))}preloadConfig(t,e){return this.preloadingStrategy.preload(e,()=>this.loader.load(t.injector,e).pipe(Object(B.a)(t=>(e._loadedConfig=t,this.processRoutes(t.module,t.routes)))))}}return t.\\u0275fac=function(e){return new(e||t)(s.Qb(Cn),s.Qb(s.w),s.Qb(s.i),s.Qb(s.r),s.Qb(Pn))},t.\\u0275prov=s.Fb({token:t,factory:t.\\u0275fac}),t})(),Nn=(()=>{class t{constructor(t,e,n={}){this.router=t,this.viewportScroller=e,this.options=n,this.lastId=0,this.lastSource=\"imperative\",this.restoredId=0,this.store={},n.scrollPositionRestoration=n.scrollPositionRestoration||\"disabled\",n.anchorScrolling=n.anchorScrolling||\"disabled\"}init(){\"disabled\"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration(\"manual\"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(t=>{t instanceof at?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=t.navigationTrigger,this.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof ct&&(this.lastId=t.id,this.scheduleScrollEvent(t,this.router.parseUrl(t.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(t=>{t instanceof Ct&&(t.position?\"top\"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):\"enabled\"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(t.position):t.anchor&&\"enabled\"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(t.anchor):\"disabled\"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(t,e){this.router.triggerEvent(new Ct(t,\"popstate\"===this.lastSource?this.store[this.restoredId]:null,e))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}return t.\\u0275fac=function(t){s.Tb()},t.\\u0275dir=s.Eb({type:t}),t})();const Mn=new s.q(\"ROUTER_CONFIGURATION\"),Dn=new s.q(\"ROUTER_FORROOT_GUARD\"),Ln=[r.g,{provide:Bt,useClass:Gt},{provide:Cn,useFactory:function(t,e,n,s,i,o,a,c,u={},l,h){const d=new Cn(null,e,n,s,i,o,a,Mt(c));if(l&&(d.urlHandlingStrategy=l),h&&(d.routeReuseStrategy=h),u.errorHandler&&(d.errorHandler=u.errorHandler),u.malformedUriErrorHandler&&(d.malformedUriErrorHandler=u.malformedUriErrorHandler),u.enableTracing){const t=Object(r.q)();d.events.subscribe(e=>{t.logGroup(`Router Event: ${e.constructor.name}`),t.log(e.toString()),t.log(e),t.logGroupEnd()})}return u.onSameUrlNavigation&&(d.onSameUrlNavigation=u.onSameUrlNavigation),u.paramsInheritanceStrategy&&(d.paramsInheritanceStrategy=u.paramsInheritanceStrategy),u.urlUpdateStrategy&&(d.urlUpdateStrategy=u.urlUpdateStrategy),u.relativeLinkResolution&&(d.relativeLinkResolution=u.relativeLinkResolution),d},deps:[s.g,Bt,kn,r.g,s.r,s.w,s.i,mn,Mn,[class{},new s.A],[class{},new s.A]]},kn,{provide:pe,useFactory:function(t){return t.routerState.root},deps:[Cn]},{provide:s.w,useClass:s.J},Rn,In,class{preload(t,e){return e().pipe(F(()=>Object(i.a)(null)))}},{provide:Mn,useValue:{enableTracing:!1}}];function Vn(){return new s.y(\"Router\",Cn)}let Un=(()=>{class t{constructor(t,e){}static forRoot(e,n){return{ngModule:t,providers:[Ln,zn(e),{provide:Dn,useFactory:$n,deps:[[Cn,new s.A,new s.I]]},{provide:Mn,useValue:n||{}},{provide:r.h,useFactory:Hn,deps:[r.l,[new s.p(r.a),new s.A],Mn]},{provide:Nn,useFactory:Fn,deps:[Cn,r.m,Mn]},{provide:Pn,useExisting:n&&n.preloadingStrategy?n.preloadingStrategy:In},{provide:s.y,multi:!0,useFactory:Vn},[qn,{provide:s.d,multi:!0,useFactory:Bn,deps:[qn]},{provide:Wn,useFactory:Gn,deps:[qn]},{provide:s.b,multi:!0,useExisting:Wn}]]}}static forChild(e){return{ngModule:t,providers:[zn(e)]}}}return t.\\u0275mod=s.Hb({type:t}),t.\\u0275inj=s.Gb({factory:function(e){return new(e||t)(s.Qb(Dn,8),s.Qb(Cn,8))}}),t})();function Fn(t,e,n){return n.scrollOffset&&e.setOffset(n.scrollOffset),new Nn(t,e,n)}function Hn(t,e,n={}){return n.useHash?new r.e(t,e):new r.k(t,e)}function $n(t){if(t)throw new Error(\"RouterModule.forRoot() called twice. Lazy loaded modules should use RouterModule.forChild() instead.\");return\"guarded\"}function zn(t){return[{provide:s.a,multi:!0,useValue:t},{provide:mn,multi:!0,useValue:t}]}let qn=(()=>{class t{constructor(t){this.injector=t,this.initNavigation=!1,this.resultOfPreactivationDone=new a.a}appInitializer(){return this.injector.get(r.f,Promise.resolve(null)).then(()=>{let t=null;const e=new Promise(e=>t=e),n=this.injector.get(Cn),r=this.injector.get(Mn);if(this.isLegacyDisabled(r)||this.isLegacyEnabled(r))t(!0);else if(\"disabled\"===r.initialNavigation)n.setUpLocationChangeListener(),t(!0);else{if(\"enabled\"!==r.initialNavigation)throw new Error(`Invalid initialNavigation options: '${r.initialNavigation}'`);n.hooks.afterPreactivation=()=>this.initNavigation?Object(i.a)(null):(this.initNavigation=!0,t(!0),this.resultOfPreactivationDone),n.initialNavigation()}return e})}bootstrapListener(t){const e=this.injector.get(Mn),n=this.injector.get(Rn),r=this.injector.get(Nn),i=this.injector.get(Cn),o=this.injector.get(s.g);t===o.components[0]&&(this.isLegacyEnabled(e)?i.initialNavigation():this.isLegacyDisabled(e)&&i.setUpLocationChangeListener(),n.setUpPreloading(),r.init(),i.resetRootComponentType(o.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())}isLegacyEnabled(t){return\"legacy_enabled\"===t.initialNavigation||!0===t.initialNavigation||void 0===t.initialNavigation}isLegacyDisabled(t){return\"legacy_disabled\"===t.initialNavigation||!1===t.initialNavigation}}return t.\\u0275fac=function(e){return new(e||t)(s.Qb(s.r))},t.\\u0275prov=s.Fb({token:t,factory:t.\\u0275fac}),t})();function Bn(t){return t.appInitializer.bind(t)}function Gn(t){return t.bootstrapListener.bind(t)}const Wn=new s.q(\"Router Initializer\")},vkgz:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return o}));var r=n(\"7o/Q\"),s=n(\"KqfI\"),i=n(\"n6bG\");function o(t,e,n){return function(r){return r.lift(new a(t,e,n))}}class a{constructor(t,e,n){this.nextOrObserver=t,this.error=e,this.complete=n}call(t,e){return e.subscribe(new c(t,this.nextOrObserver,this.error,this.complete))}}class c extends r.a{constructor(t,e,n,r){super(t),this._tapNext=s.a,this._tapError=s.a,this._tapComplete=s.a,this._tapError=n||s.a,this._tapComplete=r||s.a,Object(i.a)(e)?(this._context=this,this._tapNext=e):e&&(this._context=e,this._tapNext=e.next||s.a,this._tapError=e.error||s.a,this._tapComplete=e.complete||s.a)}_next(t){try{this._tapNext.call(this._context,t)}catch(e){return void this.destination.error(e)}this.destination.next(t)}_error(t){try{this._tapError.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.error(t)}_complete(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()}}},\"x+ZX\":function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return s}));var r=n(\"7o/Q\");function s(){return function(t){return t.lift(new i(t))}}class i{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const r=new o(t,n),s=e.subscribe(r);return r.closed||(r.connection=n.connect()),s}}class o extends r.a{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:n}=this,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}},yCtX:function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return o}));var r=n(\"HDdC\"),s=n(\"ngJS\"),i=n(\"jZKg\");function o(t,e){return e?Object(i.a)(t,e):new r.a(Object(s.a)(t))}},\"z+Ro\":function(t,e,n){\"use strict\";function r(t){return t&&\"function\"==typeof t.schedule}n.d(e,\"a\",(function(){return r}))},zUnb:function(t,e,n){\"use strict\";n.r(e);var r=n(\"fXoL\"),s=n(\"ofXK\");class i extends s.o{constructor(){super()}supportsDOMEvents(){return!0}}class o extends i{static makeCurrent(){Object(s.s)(new o)}getProperty(t,e){return t[e]}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}getValue(t){return t.value}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return\"window\"===e?window:\"document\"===e?t:\"body\"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=c||(c=document.querySelector(\"base\"),c)?c.getAttribute(\"href\"):null;return null==e?null:(n=e,a||(a=document.createElement(\"a\")),a.setAttribute(\"href\",n),\"/\"===a.pathname.charAt(0)?a.pathname:\"/\"+a.pathname);var n}resetBaseElement(){c=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return Object(s.r)(document.cookie,t)}}let a,c=null;const u=new r.q(\"TRANSITION_ID\"),l=[{provide:r.d,useFactory:function(t,e,n){return()=>{n.get(r.e).donePromise.then(()=>{const n=Object(s.q)();Array.prototype.slice.apply(e.querySelectorAll(\"style[ng-transition]\")).filter(e=>e.getAttribute(\"ng-transition\")===t).forEach(t=>n.remove(t))})}},deps:[u,s.d,r.r],multi:!0}];class h{static init(){Object(r.V)(new h)}addToWindow(t){r.nb.getAngularTestability=(e,n=!0)=>{const r=t.findTestabilityInTree(e,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},r.nb.getAllAngularTestabilities=()=>t.getAllTestabilities(),r.nb.getAllAngularRootElements=()=>t.getAllRootElements(),r.nb.frameworkStabilizers||(r.nb.frameworkStabilizers=[]),r.nb.frameworkStabilizers.push(t=>{const e=r.nb.getAllAngularTestabilities();let n=e.length,s=!1;const i=function(e){s=s||e,n--,0==n&&t(s)};e.forEach((function(t){t.whenStable(i)}))})}findTestabilityInTree(t,e,n){if(null==e)return null;const r=t.getTestability(e);return null!=r?r:n?Object(s.q)().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}const d=new r.q(\"EventManagerPlugins\");let p=(()=>{class t{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let r=0;r<n.length;r++){const e=n[r];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(`No event manager plugin found for event ${t}`)}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(d),r.Qb(r.z))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})();class f{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const r=Object(s.q)().getGlobalEventTarget(this._doc,t);if(!r)throw new Error(`Unsupported event target ${r} for event ${e}`);return this.addEventListener(r,e,n)}}let g=(()=>{class t{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})(),m=(()=>{class t extends g{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement(\"style\");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>Object(s.q)().remove(t))}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(s.d))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})();const b={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},y=/%COMP%/g;function v(t,e,n){for(let r=0;r<e.length;r++){let s=e[r];Array.isArray(s)?v(t,s,n):(s=s.replace(y,t),n.push(s))}return n}function _(t){return e=>{if(\"__ngUnwrap__\"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let w=(()=>{class t{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new C(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case r.O.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new S(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case r.O.Native:case r.O.ShadowDom:return new O(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=v(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(p),r.Qb(m),r.Qb(r.c))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})();class C{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(b[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n=\"string\"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector \"${t}\" did not match any elements`);return e||(n.textContent=\"\"),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,r){if(r){e=r+\":\"+e;const s=b[r];s?t.setAttributeNS(s,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const r=b[n];r?t.removeAttributeNS(r,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,s){s&r.F.DashCase?t.style.setProperty(e,n,s&r.F.Important?\"important\":\"\"):t.style[e]=n}removeStyle(t,e,n){n&r.F.DashCase?t.style.removeProperty(e):t.style[e]=\"\"}setProperty(t,e,n){t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return\"string\"==typeof t?this.eventManager.addGlobalEventListener(t,e,_(n)):this.eventManager.addEventListener(t,e,_(n))}}class S extends C{constructor(t,e,n,r){super(t),this.component=n;const s=v(r+\"-\"+n.id,n.styles,[]);e.addStyles(s),this.contentAttr=\"_ngcontent-%COMP%\".replace(y,r+\"-\"+n.id),this.hostAttr=function(t){return\"_nghost-%COMP%\".replace(y,t)}(r+\"-\"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,\"\")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,\"\"),n}}class O extends C{constructor(t,e,n,s){super(t),this.sharedStylesHost=e,this.hostEl=n,this.component=s,this.shadowRoot=s.encapsulation===r.O.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const i=v(s.id,s.styles,[]);for(let r=0;r<i.length;r++){const t=document.createElement(\"style\");t.textContent=i[r],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}let E=(()=>{class t extends f{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,n){return t.addEventListener(e,n,!1),()=>this.removeEventListener(t,e,n)}removeEventListener(t,e,n){return t.removeEventListener(e,n)}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(s.d))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})();const x=[\"alt\",\"control\",\"meta\",\"shift\"],T={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},k={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},A={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let j=(()=>{class t extends f{constructor(t){super(t)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,n,r){const i=t.parseEventName(n),o=t.eventCallback(i.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Object(s.q)().onAndCancel(e,i.domEventName,o))}static parseEventName(e){const n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const s=t._normalizeKey(n.pop());let i=\"\";if(x.forEach(t=>{const e=n.indexOf(t);e>-1&&(n.splice(e,1),i+=t+\".\")}),i+=s,0!=n.length||0===s.length)return null;const o={};return o.domEventName=r,o.fullKey=i,o}static getEventFullKey(t){let e=\"\",n=function(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return\"Unidentified\";e.startsWith(\"U+\")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&k.hasOwnProperty(e)&&(e=k[e]))}return T[e]||e}(t);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),x.forEach(r=>{r!=n&&(0,A[r])(t)&&(e+=r+\".\")}),e+=n,e}static eventCallback(e,n,r){return s=>{t.getEventFullKey(s)===e&&r.runGuarded(()=>n(s))}}static _normalizeKey(t){switch(t){case\"esc\":return\"escape\";default:return t}}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(s.d))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})();const P=[{provide:r.B,useValue:s.p},{provide:r.C,useValue:function(){o.makeCurrent(),h.init()},multi:!0},{provide:s.d,useFactory:function(){return Object(r.tb)(document),document},deps:[]}],I=Object(r.Q)(r.U,\"browser\",P),R=[[],{provide:r.X,useValue:\"root\"},{provide:r.m,useFactory:function(){return new r.m},deps:[]},{provide:d,useClass:E,multi:!0,deps:[s.d,r.z,r.B]},{provide:d,useClass:j,multi:!0,deps:[s.d]},[],{provide:w,useClass:w,deps:[p,m,r.c]},{provide:r.E,useExisting:w},{provide:g,useExisting:m},{provide:m,useClass:m,deps:[s.d]},{provide:r.L,useClass:r.L,deps:[r.z]},{provide:p,useClass:p,deps:[d,r.z]},[]];let N=(()=>{class t{constructor(t){if(t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(e){return{ngModule:t,providers:[{provide:r.c,useValue:e.appId},{provide:u,useExisting:r.c},l]}}}return t.\\u0275mod=r.Hb({type:t}),t.\\u0275inj=r.Gb({factory:function(e){return new(e||t)(r.Qb(t,12))},providers:R,imports:[s.b,r.f]}),t})();\"undefined\"!=typeof window&&window;var M=n(\"tyNb\");let D=(()=>{class t{}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=r.Db({type:t,selectors:[[\"app\"]],decls:1,vars:0,template:function(t,e){1&t&&r.Kb(0,\"router-outlet\")},directives:[M.f],encapsulation:2}),t})();var L=n(\"3Pt+\"),V=n(\"jU2X\"),U=n(\"4Sfc\"),F=n(\"Cfvw\");let H=(()=>{class t{constructor(){this.products=[new U.a(1,\"Product 1\",\"Category 1\",\"Product 1 (Category 1)\",100),new U.a(2,\"Product 2\",\"Category 1\",\"Product 2 (Category 1)\",100),new U.a(3,\"Product 3\",\"Category 1\",\"Product 3 (Category 1)\",100),new U.a(4,\"Product 4\",\"Category 1\",\"Product 4 (Category 1)\",100),new U.a(5,\"Product 5\",\"Category 1\",\"Product 5 (Category 1)\",100),new U.a(6,\"Product 6\",\"Category 2\",\"Product 6 (Category 2)\",100),new U.a(7,\"Product 7\",\"Category 2\",\"Product 7 (Category 2)\",100),new U.a(8,\"Product 8\",\"Category 2\",\"Product 8 (Category 2)\",100),new U.a(9,\"Product 9\",\"Category 2\",\"Product 9 (Category 2)\",100),new U.a(10,\"Product 10\",\"Category 2\",\"Product 10 (Category 2)\",100),new U.a(11,\"Product 11\",\"Category 3\",\"Product 11 (Category 3)\",100),new U.a(12,\"Product 12\",\"Category 3\",\"Product 12 (Category 3)\",100),new U.a(13,\"Product 13\",\"Category 3\",\"Product 13 (Category 3)\",100),new U.a(14,\"Product 14\",\"Category 3\",\"Product 14 (Category 3)\",100),new U.a(15,\"Product 15\",\"Category 3\",\"Product 15 (Category 3)\",100)]}getProducts(){return Object(F.a)([this.products])}saveOrder(t){return console.log(JSON.stringify(t)),Object(F.a)([t])}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})(),$=(()=>{class t{constructor(){this.lines=[],this.itemCount=0,this.cartPrice=0}addLine(t,e=1){let n=this.lines.find(e=>e.product.id==t.id);null!=n?n.quantity+=e:this.lines.push(new z(t,e)),this.recalculate()}updateQuantity(t,e){let n=this.lines.find(e=>e.product.id==t.id);null!=n&&(n.quantity=Number(e)),this.recalculate()}removeLine(t){let e=this.lines.findIndex(e=>e.product.id==t);this.lines.splice(e,1),this.recalculate()}clear(){this.lines=[],this.itemCount=0,this.cartPrice=0}recalculate(){this.itemCount=0,this.cartPrice=0,this.lines.forEach(t=>{this.itemCount+=t.quantity,this.cartPrice+=t.quantity*t.product.price})}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})();class z{constructor(t,e){this.product=t,this.quantity=e}get lineTotal(){return this.quantity*this.product.price}}let q=(()=>{class t{constructor(t){this.cart=t,this.shipped=!1}clear(){this.id=null,this.name=this.address=this.city=null,this.state=this.zip=this.country=null,this.shipped=!1,this.cart.clear()}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb($))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})();var B=n(\"hf/X\"),G=n(\"DZdm\"),W=n(\"tk/3\"),Z=n(\"hO0c\"),Q=n(\"XNiG\");let J=(()=>{class t{constructor(){this.connEvents=new Q.a,window.addEventListener(\"online\",t=>this.handleConnectionChange(t)),window.addEventListener(\"offline\",t=>this.handleConnectionChange(t))}handleConnectionChange(t){this.connEvents.next(this.connected)}get connected(){return window.navigator.onLine}get Changes(){return this.connEvents}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})(),K=(()=>{class t{}return t.\\u0275mod=r.Hb({type:t}),t.\\u0275inj=r.Gb({factory:function(e){return new(e||t)},providers:[V.a,$,q,B.a,{provide:H,useClass:G.a},G.a,Z.a,J],imports:[[W.b]]}),t})(),X=(()=>{class t{}return t.\\u0275mod=r.Hb({type:t}),t.\\u0275inj=r.Gb({factory:function(e){return new(e||t)},imports:[[K,N,L.c,M.e]]}),t})();function Y(t,e){if(1&t&&(r.Mb(0,\"span\"),r.hc(1),r.Xb(2,\"currency\"),r.Lb()),2&t){const t=r.Wb();r.zb(1),r.kc(\" \",t.cart.itemCount,\" item(s) \",r.Yb(2,2,t.cart.cartPrice,\"USD\",\"symbol\",\"2.2-2\"),\" \")}}function tt(t,e){1&t&&(r.Mb(0,\"span\"),r.hc(1,\" (empty) \"),r.Lb())}let et=(()=>{class t{constructor(t){this.cart=t}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb($))},t.\\u0275cmp=r.Db({type:t,selectors:[[\"cart-summary\"]],decls:7,vars:3,consts:[[1,\"float-right\"],[4,\"ngIf\"],[\"routerLink\",\"/cart\",1,\"btn\",\"btn-sm\",\"bg-dark\",\"text-white\",3,\"disabled\"],[1,\"fa\",\"fa-shopping-cart\"]],template:function(t,e){1&t&&(r.Mb(0,\"div\",0),r.Mb(1,\"small\"),r.hc(2,\" Your cart: \"),r.gc(3,Y,3,7,\"span\",1),r.gc(4,tt,2,0,\"span\",1),r.Lb(),r.Mb(5,\"button\",2),r.Kb(6,\"i\",3),r.Lb(),r.Lb()),2&t&&(r.zb(3),r.Zb(\"ngIf\",e.cart.itemCount>0),r.zb(1),r.Zb(\"ngIf\",0==e.cart.itemCount),r.zb(1),r.Zb(\"disabled\",0==e.cart.itemCount))},directives:[s.j,M.c],pipes:[s.c],encapsulation:2}),t})(),nt=(()=>{class t{constructor(t,e){this.container=t,this.template=e}ngOnChanges(t){this.container.clear();for(let e=0;e<this.counter;e++)this.container.createEmbeddedView(this.template,new rt(e+1))}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(r.N),r.Jb(r.K))},t.\\u0275dir=r.Eb({type:t,selectors:[[\"\",\"counterOf\",\"\"]],inputs:{counter:[\"counterOf\",\"counter\"]},features:[r.xb()]}),t})();class rt{constructor(t){this.$implicit=t}}function st(t,e){if(1&t){const t=r.Nb();r.Mb(0,\"button\",18),r.Ub(\"click\",(function(n){r.dc(t);const s=e.$implicit;return r.Wb().changeCategory(s)})),r.hc(1),r.Lb()}if(2&t){const t=e.$implicit,n=r.Wb();r.Bb(\"active\",t==n.selectedCategory),r.zb(1),r.jc(\" \",t,\" \")}}function it(t,e){if(1&t){const t=r.Nb();r.Mb(0,\"div\",19),r.Mb(1,\"h4\"),r.hc(2),r.Mb(3,\"span\",20),r.hc(4),r.Xb(5,\"currency\"),r.Lb(),r.Lb(),r.Mb(6,\"div\",21),r.hc(7),r.Mb(8,\"button\",22),r.Ub(\"click\",(function(n){r.dc(t);const s=e.$implicit;return r.Wb().addProductToCart(s)})),r.hc(9,\" Add To Cart \"),r.Lb(),r.Lb(),r.Lb()}if(2&t){const t=e.$implicit;r.zb(2),r.jc(\" \",t.name,\" \"),r.zb(2),r.jc(\" \",r.Yb(5,3,t.price,\"USD\",\"symbol\",\"2.2-2\"),\" \"),r.zb(3),r.jc(\" \",t.description,\" \")}}function ot(t,e){if(1&t){const t=r.Nb();r.Mb(0,\"button\",23),r.Ub(\"click\",(function(n){r.dc(t);const s=e.$implicit;return r.Wb().changePage(s)})),r.hc(1),r.Lb()}if(2&t){const t=e.$implicit,n=r.Wb();r.Bb(\"active\",t==n.selectedPage),r.zb(1),r.jc(\" \",t,\" \")}}let at=(()=>{class t{constructor(t,e,n){this.repository=t,this.cart=e,this.router=n,this.selectedCategory=null,this.productsPerPage=4,this.selectedPage=1}get products(){let t=(this.selectedPage-1)*this.productsPerPage;return this.repository.getProducts(this.selectedCategory).slice(t,t+this.productsPerPage)}get categories(){return this.repository.getCategories()}changeCategory(t){this.selectedCategory=t}changePage(t){this.selectedPage=t}changePageSize(t){this.productsPerPage=Number(t),this.changePage(1)}get pageCount(){return Math.ceil(this.repository.getProducts(this.selectedCategory).length/this.productsPerPage)}addProductToCart(t){this.cart.addLine(t),this.router.navigateByUrl(\"/cart\")}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(V.a),r.Jb($),r.Jb(M.b))},t.\\u0275cmp=r.Db({type:t,selectors:[[\"store\"]],decls:27,vars:4,consts:[[1,\"container-fluid\"],[1,\"row\"],[1,\"col\",\"bg-dark\",\"text-white\"],[1,\"navbar-brand\"],[1,\"col-3\",\"p-2\"],[1,\"btn\",\"btn-block\",\"btn-outline-primary\",3,\"click\"],[\"class\",\"btn btn-outline-primary btn-block\",3,\"active\",\"click\",4,\"ngFor\",\"ngForOf\"],[\"routerLink\",\"/admin\",1,\"btn\",\"btn-block\",\"btn-danger\",\"mt-5\"],[1,\"col-9\",\"p-2\"],[\"class\",\"card m-1 p-1 bg-light\",4,\"ngFor\",\"ngForOf\"],[1,\"form-inline\",\"float-left\",\"mr-1\"],[1,\"form-control\",3,\"value\",\"change\"],[\"value\",\"3\"],[\"value\",\"4\"],[\"value\",\"6\"],[\"value\",\"8\"],[1,\"btn-group\",\"float-right\"],[\"class\",\"btn btn-outline-primary\",3,\"active\",\"click\",4,\"counter\",\"counterOf\"],[1,\"btn\",\"btn-outline-primary\",\"btn-block\",3,\"click\"],[1,\"card\",\"m-1\",\"p-1\",\"bg-light\"],[1,\"badge\",\"badge-pill\",\"badge-primary\",\"float-right\"],[1,\"card-text\",\"bg-white\",\"p-1\"],[1,\"btn\",\"btn-success\",\"btn-sm\",\"float-right\",3,\"click\"],[1,\"btn\",\"btn-outline-primary\",3,\"click\"]],template:function(t,e){1&t&&(r.Mb(0,\"div\",0),r.Mb(1,\"div\",1),r.Mb(2,\"div\",2),r.Mb(3,\"a\",3),r.hc(4,\"SPORTS STORE\"),r.Lb(),r.Kb(5,\"cart-summary\"),r.Lb(),r.Lb(),r.Mb(6,\"div\",1),r.Mb(7,\"div\",4),r.Mb(8,\"button\",5),r.Ub(\"click\",(function(t){return e.changeCategory()})),r.hc(9,\" Home \"),r.Lb(),r.gc(10,st,2,3,\"button\",6),r.Mb(11,\"button\",7),r.hc(12,\" Admin \"),r.Lb(),r.Lb(),r.Mb(13,\"div\",8),r.gc(14,it,10,8,\"div\",9),r.Mb(15,\"div\",10),r.Mb(16,\"select\",11),r.Ub(\"change\",(function(t){return e.changePageSize(t.target.value)})),r.Mb(17,\"option\",12),r.hc(18,\"3 per Page\"),r.Lb(),r.Mb(19,\"option\",13),r.hc(20,\"4 per Page\"),r.Lb(),r.Mb(21,\"option\",14),r.hc(22,\"6 per Page\"),r.Lb(),r.Mb(23,\"option\",15),r.hc(24,\"8 per Page\"),r.Lb(),r.Lb(),r.Lb(),r.Mb(25,\"div\",16),r.gc(26,ot,2,3,\"button\",17),r.Lb(),r.Lb(),r.Lb(),r.Lb()),2&t&&(r.zb(10),r.Zb(\"ngForOf\",e.categories),r.zb(4),r.Zb(\"ngForOf\",e.products),r.zb(2),r.Zb(\"value\",e.productsPerPage),r.zb(10),r.Zb(\"counterOf\",e.pageCount))},directives:[et,s.i,M.c,L.h,L.j,nt],pipes:[s.c],encapsulation:2}),t})();function ct(t,e){1&t&&(r.Mb(0,\"div\",6),r.Mb(1,\"h2\"),r.hc(2,\"Thanks!\"),r.Lb(),r.Mb(3,\"p\"),r.hc(4,\"Thanks for placing your order.\"),r.Lb(),r.Mb(5,\"p\"),r.hc(6,\"We'll ship your goods as soon as possible.\"),r.Lb(),r.Mb(7,\"button\",7),r.hc(8,\"Return to Store\"),r.Lb(),r.Lb())}function ut(t,e){1&t&&(r.Mb(0,\"span\",27),r.hc(1,\" Please enter your name \"),r.Lb())}function lt(t,e){1&t&&(r.Mb(0,\"span\",27),r.hc(1,\" Please enter your address \"),r.Lb())}function ht(t,e){1&t&&(r.Mb(0,\"span\",27),r.hc(1,\" Please enter your city \"),r.Lb())}function dt(t,e){1&t&&(r.Mb(0,\"span\",27),r.hc(1,\" Please enter your state \"),r.Lb())}function pt(t,e){1&t&&(r.Mb(0,\"span\",27),r.hc(1,\" Please enter your zip/postal code \"),r.Lb())}function ft(t,e){1&t&&(r.Mb(0,\"span\",27),r.hc(1,\" Please enter your country \"),r.Lb())}function gt(t,e){if(1&t){const t=r.Nb();r.Mb(0,\"form\",8,9),r.Ub(\"ngSubmit\",(function(e){r.dc(t);const n=r.cc(1);return r.Wb().submitOrder(n)})),r.Mb(2,\"div\",10),r.Mb(3,\"label\"),r.hc(4,\"Name\"),r.Lb(),r.Mb(5,\"input\",11,12),r.Ub(\"ngModelChange\",(function(e){return r.dc(t),r.Wb().order.name=e})),r.Lb(),r.gc(7,ut,2,0,\"span\",13),r.Lb(),r.Mb(8,\"div\",10),r.Mb(9,\"label\"),r.hc(10,\"Address\"),r.Lb(),r.Mb(11,\"input\",14,15),r.Ub(\"ngModelChange\",(function(e){return r.dc(t),r.Wb().order.address=e})),r.Lb(),r.gc(13,lt,2,0,\"span\",13),r.Lb(),r.Mb(14,\"div\",10),r.Mb(15,\"label\"),r.hc(16,\"City\"),r.Lb(),r.Mb(17,\"input\",16,17),r.Ub(\"ngModelChange\",(function(e){return r.dc(t),r.Wb().order.city=e})),r.Lb(),r.gc(19,ht,2,0,\"span\",13),r.Lb(),r.Mb(20,\"div\",10),r.Mb(21,\"label\"),r.hc(22,\"State\"),r.Lb(),r.Mb(23,\"input\",18,19),r.Ub(\"ngModelChange\",(function(e){return r.dc(t),r.Wb().order.state=e})),r.Lb(),r.gc(25,dt,2,0,\"span\",13),r.Lb(),r.Mb(26,\"div\",10),r.Mb(27,\"label\"),r.hc(28,\"Zip/Postal Code\"),r.Lb(),r.Mb(29,\"input\",20,21),r.Ub(\"ngModelChange\",(function(e){return r.dc(t),r.Wb().order.zip=e})),r.Lb(),r.gc(31,pt,2,0,\"span\",13),r.Lb(),r.Mb(32,\"div\",10),r.Mb(33,\"label\"),r.hc(34,\"Country\"),r.Lb(),r.Mb(35,\"input\",22,23),r.Ub(\"ngModelChange\",(function(e){return r.dc(t),r.Wb().order.country=e})),r.Lb(),r.gc(37,ft,2,0,\"span\",13),r.Lb(),r.Mb(38,\"div\",24),r.Mb(39,\"button\",25),r.hc(40,\"Back\"),r.Lb(),r.Mb(41,\"button\",26),r.hc(42,\"Complete Order\"),r.Lb(),r.Lb(),r.Lb()}if(2&t){const t=r.cc(6),e=r.cc(12),n=r.cc(18),s=r.cc(24),i=r.cc(30),o=r.cc(36),a=r.Wb();r.zb(5),r.Zb(\"ngModel\",a.order.name),r.zb(2),r.Zb(\"ngIf\",a.submitted&&t.invalid),r.zb(4),r.Zb(\"ngModel\",a.order.address),r.zb(2),r.Zb(\"ngIf\",a.submitted&&e.invalid),r.zb(4),r.Zb(\"ngModel\",a.order.city),r.zb(2),r.Zb(\"ngIf\",a.submitted&&n.invalid),r.zb(4),r.Zb(\"ngModel\",a.order.state),r.zb(2),r.Zb(\"ngIf\",a.submitted&&s.invalid),r.zb(4),r.Zb(\"ngModel\",a.order.zip),r.zb(2),r.Zb(\"ngIf\",a.submitted&&i.invalid),r.zb(4),r.Zb(\"ngModel\",a.order.country),r.zb(2),r.Zb(\"ngIf\",a.submitted&&o.invalid)}}let mt=(()=>{class t{constructor(t,e){this.repository=t,this.order=e,this.orderSent=!1,this.submitted=!1}submitOrder(t){this.submitted=!0,t.valid&&this.repository.saveOrder(this.order).subscribe(t=>{this.order.clear(),this.orderSent=!0,this.submitted=!1})}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb(B.a),r.Jb(q))},t.\\u0275cmp=r.Db({type:t,selectors:[[\"ng-component\"]],decls:7,vars:2,consts:[[1,\"container-fluid\"],[1,\"row\"],[1,\"col\",\"bg-dark\",\"text-white\"],[1,\"navbar-brand\"],[\"class\",\"m-2 text-center\",4,\"ngIf\"],[\"novalidate\",\"\",\"class\",\"m-2\",3,\"ngSubmit\",4,\"ngIf\"],[1,\"m-2\",\"text-center\"],[\"routerLink\",\"/store\",1,\"btn\",\"btn-primary\"],[\"novalidate\",\"\",1,\"m-2\",3,\"ngSubmit\"],[\"form\",\"ngForm\"],[1,\"form-group\"],[\"name\",\"name\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"name\",\"ngModel\"],[\"class\",\"text-danger\",4,\"ngIf\"],[\"name\",\"address\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"address\",\"ngModel\"],[\"name\",\"city\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"city\",\"ngModel\"],[\"name\",\"state\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"state\",\"ngModel\"],[\"name\",\"zip\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"zip\",\"ngModel\"],[\"name\",\"country\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"country\",\"ngModel\"],[1,\"text-center\"],[\"routerLink\",\"/cart\",1,\"btn\",\"btn-secondary\",\"m-1\"],[\"type\",\"submit\",1,\"btn\",\"btn-primary\",\"m-1\"],[1,\"text-danger\"]],template:function(t,e){1&t&&(r.Mb(0,\"div\",0),r.Mb(1,\"div\",1),r.Mb(2,\"div\",2),r.Mb(3,\"a\",3),r.hc(4,\"SPORTS STORE\"),r.Lb(),r.Lb(),r.Lb(),r.Lb(),r.gc(5,ct,9,0,\"div\",4),r.gc(6,gt,43,12,\"form\",5)),2&t&&(r.zb(5),r.Zb(\"ngIf\",e.orderSent),r.zb(1),r.Zb(\"ngIf\",!e.orderSent))},directives:[s.j,M.c,L.k,L.e,L.f,L.b,L.i,L.d,L.g],styles:[\"input.ng-dirty.ng-invalid[_ngcontent-%COMP%]{border:2px solid red}input.ng-dirty.ng-valid[_ngcontent-%COMP%]{border:2px solid #6bc502}\"]}),t})();function bt(t,e){1&t&&(r.Mb(0,\"tr\"),r.Mb(1,\"td\",14),r.hc(2,\" Your cart is empty \"),r.Lb(),r.Lb())}function yt(t,e){if(1&t){const t=r.Nb();r.Mb(0,\"tr\"),r.Mb(1,\"td\"),r.Mb(2,\"input\",15),r.Ub(\"change\",(function(n){r.dc(t);const s=e.$implicit;return r.Wb().cart.updateQuantity(s.product,n.target.value)})),r.Lb(),r.Lb(),r.Mb(3,\"td\"),r.hc(4),r.Lb(),r.Mb(5,\"td\",7),r.hc(6),r.Xb(7,\"currency\"),r.Lb(),r.Mb(8,\"td\",7),r.hc(9),r.Xb(10,\"currency\"),r.Lb(),r.Mb(11,\"td\",5),r.Mb(12,\"button\",16),r.Ub(\"click\",(function(n){r.dc(t);const s=e.$implicit;return r.Wb().cart.removeLine(s.product.id)})),r.hc(13,\" Remove \"),r.Lb(),r.Lb(),r.Lb()}if(2&t){const t=e.$implicit;r.zb(2),r.Zb(\"value\",t.quantity),r.zb(2),r.ic(t.product.name),r.zb(2),r.jc(\" \",r.Yb(7,4,t.product.price,\"USD\",\"symbol\",\"2.2-2\"),\" \"),r.zb(3),r.jc(\" \",r.Yb(10,9,t.lineTotal,\"USD\",\"symbol\",\"2.2-2\"),\" \")}}let vt=(()=>{class t{constructor(t,e){this.cart=t,this.connection=e,this.connected=!0,this.connected=this.connection.connected,e.Changes.subscribe(t=>this.connected=t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Jb($),r.Jb(J))},t.\\u0275cmp=r.Db({type:t,selectors:[[\"ng-component\"]],decls:37,vars:10,consts:[[1,\"container-fluid\"],[1,\"row\"],[1,\"col\",\"bg-dark\",\"text-white\"],[1,\"navbar-brand\"],[1,\"col\",\"mt-2\"],[1,\"text-center\"],[1,\"table\",\"table-bordered\",\"table-striped\",\"p-2\"],[1,\"text-right\"],[4,\"ngIf\"],[4,\"ngFor\",\"ngForOf\"],[\"colspan\",\"3\",1,\"text-right\"],[1,\"col\"],[\"routerLink\",\"/store\",1,\"btn\",\"btn-primary\",\"m-1\"],[\"routerLink\",\"/checkout\",1,\"btn\",\"btn-secondary\",\"m-1\",3,\"disabled\"],[\"colspan\",\"4\",1,\"text-center\"],[\"type\",\"number\",1,\"form-control-sm\",2,\"width\",\"5em\",3,\"value\",\"change\"],[1,\"btn\",\"btn-sm\",\"btn-danger\",3,\"click\"]],template:function(t,e){1&t&&(r.Mb(0,\"div\",0),r.Mb(1,\"div\",1),r.Mb(2,\"div\",2),r.Mb(3,\"a\",3),r.hc(4,\"SPORTS STORE\"),r.Lb(),r.Lb(),r.Lb(),r.Mb(5,\"div\",1),r.Mb(6,\"div\",4),r.Mb(7,\"h2\",5),r.hc(8,\"Your Cart\"),r.Lb(),r.Mb(9,\"table\",6),r.Mb(10,\"thead\"),r.Mb(11,\"tr\"),r.Mb(12,\"th\"),r.hc(13,\"Quantity\"),r.Lb(),r.Mb(14,\"th\"),r.hc(15,\"Product\"),r.Lb(),r.Mb(16,\"th\",7),r.hc(17,\"Price\"),r.Lb(),r.Mb(18,\"th\",7),r.hc(19,\"Subtotal\"),r.Lb(),r.Lb(),r.Lb(),r.Mb(20,\"tbody\"),r.gc(21,bt,3,0,\"tr\",8),r.gc(22,yt,14,14,\"tr\",9),r.Lb(),r.Mb(23,\"tfoot\"),r.Mb(24,\"tr\"),r.Mb(25,\"td\",10),r.hc(26,\"Total:\"),r.Lb(),r.Mb(27,\"td\",7),r.hc(28),r.Xb(29,\"currency\"),r.Lb(),r.Lb(),r.Lb(),r.Lb(),r.Lb(),r.Lb(),r.Mb(30,\"div\",1),r.Mb(31,\"div\",11),r.Mb(32,\"div\",5),r.Mb(33,\"button\",12),r.hc(34,\" Continue Shopping \"),r.Lb(),r.Mb(35,\"button\",13),r.hc(36),r.Lb(),r.Lb(),r.Lb(),r.Lb(),r.Lb()),2&t&&(r.zb(21),r.Zb(\"ngIf\",0==e.cart.lines.length),r.zb(1),r.Zb(\"ngForOf\",e.cart.lines),r.zb(6),r.jc(\" \",r.Yb(29,5,e.cart.cartPrice,\"USD\",\"symbol\",\"2.2-2\"),\" \"),r.zb(7),r.Zb(\"disabled\",0==e.cart.lines.length||!e.connected),r.zb(1),r.jc(\" \",e.connected?\"Checkout\":\"Offline\",\" \"))},directives:[s.j,s.i,M.c],pipes:[s.c],encapsulation:2}),t})(),_t=(()=>{class t{constructor(t){this.router=t,this.firstNavigation=!0}canActivate(t,e){return!this.firstNavigation||(this.firstNavigation=!1,t.component==at)||(this.router.navigateByUrl(\"/\"),!1)}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(M.b))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})();var wt=n(\"NXyV\"),Ct=n(\"HDdC\");function St(t,e){return new Ct.a(e?n=>e.schedule(Ot,0,{error:t,subscriber:n}):e=>e.error(t))}function Ot({error:t,subscriber:e}){e.error(t)}var Et=n(\"DH7j\"),xt=n(\"n6bG\"),Tt=n(\"lJxs\");function kt(t,e,n,r){return Object(xt.a)(n)&&(r=n,n=void 0),r?kt(t,e,n).pipe(Object(Tt.a)(t=>Object(Et.a)(t)?r(...t):r(t))):new Ct.a(r=>{!function t(e,n,r,s,i){let o;if(function(t){return t&&\"function\"==typeof t.addEventListener&&\"function\"==typeof t.removeEventListener}(e)){const t=e;e.addEventListener(n,r,i),o=()=>t.removeEventListener(n,r,i)}else if(function(t){return t&&\"function\"==typeof t.on&&\"function\"==typeof t.off}(e)){const t=e;e.on(n,r),o=()=>t.off(n,r)}else if(function(t){return t&&\"function\"==typeof t.addListener&&\"function\"==typeof t.removeListener}(e)){const t=e;e.addListener(n,r),o=()=>t.removeListener(n,r)}else{if(!e||!e.length)throw new TypeError(\"Invalid event target\");for(let o=0,a=e.length;o<a;o++)t(e[o],n,r,s,i)}s.add(o)}(t,e,(function(t){r.next(arguments.length>1?Array.prototype.slice.call(arguments):t)}),r,n)})}var At=n(\"LRne\"),jt=n(\"GyhO\"),Pt=n(\"KqfI\");const It=new Ct.a(Pt.a);var Rt=n(\"VRyK\"),Nt=n(\"pLZG\"),Mt=n(\"eIep\"),Dt=n(\"oB13\"),Lt=n(\"IzEk\"),Vt=n(\"vkgz\"),Ut=n(\"quSY\");class Ft extends Ut.a{constructor(t,e){super()}schedule(t,e=0){return this}}class Ht extends Ft{constructor(t,e){super(t,e),this.scheduler=t,this.work=e,this.pending=!1}schedule(t,e=0){if(this.closed)return this;this.state=t;const n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(r,this.id,e),this}requestAsyncId(t,e,n=0){return setInterval(t.flush.bind(t,this),n)}recycleAsyncId(t,e,n=0){if(null!==n&&this.delay===n&&!1===this.pending)return e;clearInterval(e)}execute(t,e){if(this.closed)return new Error(\"executing a cancelled action\");this.pending=!1;const n=this._execute(t,e);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let n=!1,r=void 0;try{this.work(t)}catch(s){n=!0,r=!!s&&s||new Error(s)}if(n)return this.unsubscribe(),r}_unsubscribe(){const t=this.id,e=this.scheduler,n=e.actions,r=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==r&&n.splice(r,1),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null}}let $t=(()=>{class t{constructor(e,n=t.now){this.SchedulerAction=e,this.now=n}schedule(t,e=0,n){return new this.SchedulerAction(this,t).schedule(n,e)}}return t.now=()=>Date.now(),t})();class zt extends $t{constructor(t,e=$t.now){super(t,()=>zt.delegate&&zt.delegate!==this?zt.delegate.now():e()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(t,e=0,n){return zt.delegate&&zt.delegate!==this?zt.delegate.schedule(t,e,n):super.schedule(t,e,n)}flush(t){const{actions:e}=this;if(this.active)return void e.push(t);let n;this.active=!0;do{if(n=t.execute(t.state,t.delay))break}while(t=e.shift());if(this.active=!1,n){for(;t=e.shift();)t.unsubscribe();throw n}}}const qt=new zt(Ht);var Bt=n(\"7o/Q\"),Gt=n(\"EY2u\");let Wt=(()=>{class t{constructor(t,e,n){this.kind=t,this.value=e,this.error=n,this.hasValue=\"N\"===t}observe(t){switch(this.kind){case\"N\":return t.next&&t.next(this.value);case\"E\":return t.error&&t.error(this.error);case\"C\":return t.complete&&t.complete()}}do(t,e,n){switch(this.kind){case\"N\":return t&&t(this.value);case\"E\":return e&&e(this.error);case\"C\":return n&&n()}}accept(t,e,n){return t&&\"function\"==typeof t.next?this.observe(t):this.do(t,e,n)}toObservable(){switch(this.kind){case\"N\":return Object(At.a)(this.value);case\"E\":return St(this.error);case\"C\":return Object(Gt.b)()}throw new Error(\"unexpected notification kind value\")}static createNext(e){return void 0!==e?new t(\"N\",e):t.undefinedValueNotification}static createError(e){return new t(\"E\",void 0,e)}static createComplete(){return t.completeNotification}}return t.completeNotification=new t(\"C\"),t.undefinedValueNotification=new t(\"N\",void 0),t})();class Zt{constructor(t,e){this.delay=t,this.scheduler=e}call(t,e){return e.subscribe(new Qt(t,this.delay,this.scheduler))}}class Qt extends Bt.a{constructor(t,e,n){super(t),this.delay=e,this.scheduler=n,this.queue=[],this.active=!1,this.errored=!1}static dispatch(t){const e=t.source,n=e.queue,r=t.scheduler,s=t.destination;for(;n.length>0&&n[0].time-r.now()<=0;)n.shift().notification.observe(s);if(n.length>0){const e=Math.max(0,n[0].time-r.now());this.schedule(t,e)}else this.unsubscribe(),e.active=!1}_schedule(t){this.active=!0,this.destination.add(t.schedule(Qt.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))}scheduleNotification(t){if(!0===this.errored)return;const e=this.scheduler,n=new Jt(e.now()+this.delay,t);this.queue.push(n),!1===this.active&&this._schedule(e)}_next(t){this.scheduleNotification(Wt.createNext(t))}_error(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()}_complete(){this.scheduleNotification(Wt.createComplete()),this.unsubscribe()}}class Jt{constructor(t,e){this.time=t,this.notification=e}}const Kt=\"Service workers are disabled or not supported by this browser\";class Xt{constructor(t){if(this.serviceWorker=t,t){const e=kt(t,\"controllerchange\").pipe(Object(Tt.a)(()=>t.controller)),n=Object(wt.a)(()=>Object(At.a)(t.controller)),r=Object(jt.a)(n,e);this.worker=r.pipe(Object(Nt.a)(t=>!!t)),this.registration=this.worker.pipe(Object(Mt.a)(()=>t.getRegistration()));const s=kt(t,\"message\").pipe(Object(Tt.a)(t=>t.data)).pipe(Object(Nt.a)(t=>t&&t.type)).pipe(Object(Dt.a)(new Q.a));s.connect(),this.events=s}else this.worker=this.events=this.registration=Object(wt.a)(()=>St(new Error(\"Service workers are disabled or not supported by this browser\")))}postMessage(t,e){return this.worker.pipe(Object(Lt.a)(1),Object(Vt.a)(n=>{n.postMessage(Object.assign({action:t},e))})).toPromise().then(()=>{})}postMessageWithStatus(t,e,n){const r=this.waitForStatus(n),s=this.postMessage(t,e);return Promise.all([r,s]).then(()=>{})}generateNonce(){return Math.round(1e7*Math.random())}eventsOfType(t){return this.events.pipe(Object(Nt.a)(e=>e.type===t))}nextEventOfType(t){return this.eventsOfType(t).pipe(Object(Lt.a)(1))}waitForStatus(t){return this.eventsOfType(\"STATUS\").pipe(Object(Nt.a)(e=>e.nonce===t),Object(Lt.a)(1),Object(Tt.a)(t=>{if(!t.status)throw new Error(t.error)})).toPromise()}get isEnabled(){return!!this.serviceWorker}}let Yt=(()=>{class t{constructor(t){if(this.sw=t,this.subscriptionChanges=new Q.a,!t.isEnabled)return this.messages=It,this.notificationClicks=It,void(this.subscription=It);this.messages=this.sw.eventsOfType(\"PUSH\").pipe(Object(Tt.a)(t=>t.data)),this.notificationClicks=this.sw.eventsOfType(\"NOTIFICATION_CLICK\").pipe(Object(Tt.a)(t=>t.data)),this.pushManager=this.sw.registration.pipe(Object(Tt.a)(t=>t.pushManager));const e=this.pushManager.pipe(Object(Mt.a)(t=>t.getSubscription()));this.subscription=Object(Rt.a)(e,this.subscriptionChanges)}get isEnabled(){return this.sw.isEnabled}requestSubscription(t){if(!this.sw.isEnabled)return Promise.reject(new Error(Kt));const e={userVisibleOnly:!0};let n=this.decodeBase64(t.serverPublicKey.replace(/_/g,\"/\").replace(/-/g,\"+\")),r=new Uint8Array(new ArrayBuffer(n.length));for(let s=0;s<n.length;s++)r[s]=n.charCodeAt(s);return e.applicationServerKey=r,this.pushManager.pipe(Object(Mt.a)(t=>t.subscribe(e)),Object(Lt.a)(1)).toPromise().then(t=>(this.subscriptionChanges.next(t),t))}unsubscribe(){return this.sw.isEnabled?this.subscription.pipe(Object(Lt.a)(1),Object(Mt.a)(t=>{if(null===t)throw new Error(\"Not subscribed to push notifications.\");return t.unsubscribe().then(t=>{if(!t)throw new Error(\"Unsubscribe failed!\");this.subscriptionChanges.next(null)})})).toPromise():Promise.reject(new Error(Kt))}decodeBase64(t){return atob(t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(Xt))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})(),te=(()=>{class t{constructor(t){if(this.sw=t,!t.isEnabled)return this.available=It,void(this.activated=It);this.available=this.sw.eventsOfType(\"UPDATE_AVAILABLE\"),this.activated=this.sw.eventsOfType(\"UPDATE_ACTIVATED\")}get isEnabled(){return this.sw.isEnabled}checkForUpdate(){if(!this.sw.isEnabled)return Promise.reject(new Error(Kt));const t=this.sw.generateNonce();return this.sw.postMessageWithStatus(\"CHECK_FOR_UPDATES\",{statusNonce:t},t)}activateUpdate(){if(!this.sw.isEnabled)return Promise.reject(new Error(Kt));const t=this.sw.generateNonce();return this.sw.postMessageWithStatus(\"ACTIVATE_UPDATE\",{statusNonce:t},t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Qb(Xt))},t.\\u0275prov=r.Fb({token:t,factory:t.\\u0275fac}),t})();class ee{}const ne=new r.q(\"NGSW_REGISTER_SCRIPT\");function re(t,e,n,i){return()=>{if(!(Object(s.n)(i)&&\"serviceWorker\"in navigator&&!1!==n.enabled))return;let o;if(navigator.serviceWorker.addEventListener(\"controllerchange\",()=>{null!==navigator.serviceWorker.controller&&navigator.serviceWorker.controller.postMessage({action:\"INITIALIZE\"})}),\"function\"==typeof n.registrationStrategy)o=n.registrationStrategy();else{const[e,...s]=(n.registrationStrategy||\"registerWhenStable\").split(\":\");switch(e){case\"registerImmediately\":o=Object(At.a)(null);break;case\"registerWithDelay\":o=Object(At.a)(null).pipe(function(t,e=qt){var n;const r=(n=t)instanceof Date&&!isNaN(+n)?+t-e.now():Math.abs(t);return t=>t.lift(new Zt(r,e))}(+s[0]||0));break;case\"registerWhenStable\":o=t.get(r.g).isStable.pipe(Object(Nt.a)(t=>t));break;default:throw new Error(`Unknown ServiceWorker registration strategy: ${n.registrationStrategy}`)}}o.pipe(Object(Lt.a)(1)).subscribe(()=>navigator.serviceWorker.register(e,{scope:n.scope}).catch(t=>console.error(\"Service worker registration failed with:\",t)))}}function se(t,e){return new Xt(Object(s.n)(e)&&!1!==t.enabled?navigator.serviceWorker:void 0)}let ie=(()=>{class t{static register(e,n={}){return{ngModule:t,providers:[{provide:ne,useValue:e},{provide:ee,useValue:n},{provide:Xt,useFactory:se,deps:[ee,r.B]},{provide:r.d,useFactory:re,deps:[r.r,ne,ee,r.B],multi:!0}]}}}return t.\\u0275mod=r.Hb({type:t}),t.\\u0275inj=r.Gb({factory:function(e){return new(e||t)},providers:[Yt,te]}),t})(),oe=(()=>{class t{}return t.\\u0275mod=r.Hb({type:t,bootstrap:[D]}),t.\\u0275inj=r.Gb({factory:function(e){return new(e||t)},providers:[_t],imports:[[N,X,M.e.forRoot([{path:\"store\",component:at,canActivate:[_t]},{path:\"cart\",component:vt,canActivate:[_t]},{path:\"checkout\",component:mt,canActivate:[_t]},{path:\"admin\",loadChildren:()=>n.e(5).then(n.bind(null,\"jkDv\")).then(t=>t.AdminModule),canActivate:[_t]},{path:\"**\",redirectTo:\"/store\"}]),ie.register(\"ngsw-worker.js\",{enabled:!0})]]}),t})();Object(r.R)(),I().bootstrapModule(oe).catch(t=>console.error(t))},zn8P:function(t,e){function n(t){return Promise.resolve().then((function(){var e=new Error(\"Cannot find module '\"+t+\"'\");throw e.code=\"MODULE_NOT_FOUND\",e}))}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/main-es5.17a65f3ef96068aef242.js",
    "content": "function _toArray(e){return _arrayWithHoles(e)||_iterableToArray(e)||_nonIterableRest()}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(u){i=!0,o=u}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(i,n.prototype),i}).apply(null,arguments)}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(n):i.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},\"0EUg\":function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return i}));var r=n(\"bHdf\");function i(){return Object(r.a)(1)}},\"2QA8\":function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return r}));var r=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random()},\"2fFW\":function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return i}));var r=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else r&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");r=e},get useDeprecatedSynchronousErrorHandling(){return r}}},\"3Pt+\":function(e,t,n){\"use strict\";var r=n(\"fXoL\"),i=n(\"ofXK\"),o=n(\"HDdC\"),a=n(\"DH7j\"),s=n(\"lJxs\"),u=n(\"XoHu\"),c=n(\"Cfvw\");function l(e,t){return new o.a((function(n){var r=e.length;if(0!==r)for(var i=new Array(r),o=0,a=0,s=function(s){var u=Object(c.a)(e[s]),l=!1;n.add(u.subscribe({next:function(e){l||(l=!0,a++),i[s]=e},error:function(e){return n.error(e)},complete:function(){++o!==r&&l||(a===r&&n.next(t?t.reduce((function(e,t,n){return e[t]=i[n],e}),{}):i),n.complete())}}))},u=0;u<r;u++)s(u);else n.complete()}))}n.d(t,\"a\",(function(){return g})),n.d(t,\"b\",(function(){return _})),n.d(t,\"c\",(function(){return Je})),n.d(t,\"d\",(function(){return P})),n.d(t,\"e\",(function(){return A})),n.d(t,\"f\",(function(){return De})),n.d(t,\"g\",(function(){return Be})),n.d(t,\"h\",(function(){return oe})),n.d(t,\"i\",(function(){return Ze})),n.d(t,\"j\",(function(){return he})),n.d(t,\"k\",(function(){return Ge}));var h,f,d,v,p=new r.q(\"NgValueAccessor\"),y={provide:p,useExisting:Object(r.S)((function(){return g})),multi:!0},g=((h=function(){function e(t,n){_classCallCheck(this,e),this._renderer=t,this._elementRef=n,this.onChange=function(e){},this.onTouched=function(){}}return _createClass(e,[{key:\"writeValue\",value:function(e){this._renderer.setProperty(this._elementRef.nativeElement,\"checked\",e)}},{key:\"registerOnChange\",value:function(e){this.onChange=e}},{key:\"registerOnTouched\",value:function(e){this.onTouched=e}},{key:\"setDisabledState\",value:function(e){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",e)}}]),e}()).\\u0275fac=function(e){return new(e||h)(r.Jb(r.D),r.Jb(r.l))},h.\\u0275dir=r.Eb({type:h,selectors:[[\"input\",\"type\",\"checkbox\",\"formControlName\",\"\"],[\"input\",\"type\",\"checkbox\",\"formControl\",\"\"],[\"input\",\"type\",\"checkbox\",\"ngModel\",\"\"]],hostBindings:function(e,t){1&e&&r.Ub(\"change\",(function(e){return t.onChange(e.target.checked)}))(\"blur\",(function(e){return t.onTouched()}))},features:[r.yb([y])]}),h),m={provide:p,useExisting:Object(r.S)((function(){return _})),multi:!0},b=new r.q(\"CompositionEventMode\"),_=((v=function(){function e(t,n,r){var o;_classCallCheck(this,e),this._renderer=t,this._elementRef=n,this._compositionMode=r,this.onChange=function(e){},this.onTouched=function(){},this._composing=!1,null==this._compositionMode&&(this._compositionMode=(o=Object(i.q)()?Object(i.q)().getUserAgent():\"\",!/android (\\d+)/.test(o.toLowerCase())))}return _createClass(e,[{key:\"writeValue\",value:function(e){this._renderer.setProperty(this._elementRef.nativeElement,\"value\",null==e?\"\":e)}},{key:\"registerOnChange\",value:function(e){this.onChange=e}},{key:\"registerOnTouched\",value:function(e){this.onTouched=e}},{key:\"setDisabledState\",value:function(e){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",e)}},{key:\"_handleInput\",value:function(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}},{key:\"_compositionStart\",value:function(){this._composing=!0}},{key:\"_compositionEnd\",value:function(e){this._composing=!1,this._compositionMode&&this.onChange(e)}}]),e}()).\\u0275fac=function(e){return new(e||v)(r.Jb(r.D),r.Jb(r.l),r.Jb(b,8))},v.\\u0275dir=r.Eb({type:v,selectors:[[\"input\",\"formControlName\",\"\",3,\"type\",\"checkbox\"],[\"textarea\",\"formControlName\",\"\"],[\"input\",\"formControl\",\"\",3,\"type\",\"checkbox\"],[\"textarea\",\"formControl\",\"\"],[\"input\",\"ngModel\",\"\",3,\"type\",\"checkbox\"],[\"textarea\",\"ngModel\",\"\"],[\"\",\"ngDefaultControl\",\"\"]],hostBindings:function(e,t){1&e&&r.Ub(\"input\",(function(e){return t._handleInput(e.target.value)}))(\"blur\",(function(e){return t.onTouched()}))(\"compositionstart\",(function(e){return t._compositionStart()}))(\"compositionend\",(function(e){return t._compositionEnd(e.target.value)}))},features:[r.yb([m])]}),v),C=((d=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"reset\",value:function(e){this.control&&this.control.reset(e)}},{key:\"hasError\",value:function(e,t){return!!this.control&&this.control.hasError(e,t)}},{key:\"getError\",value:function(e,t){return this.control?this.control.getError(e,t):null}},{key:\"value\",get:function(){return this.control?this.control.value:null}},{key:\"valid\",get:function(){return this.control?this.control.valid:null}},{key:\"invalid\",get:function(){return this.control?this.control.invalid:null}},{key:\"pending\",get:function(){return this.control?this.control.pending:null}},{key:\"disabled\",get:function(){return this.control?this.control.disabled:null}},{key:\"enabled\",get:function(){return this.control?this.control.enabled:null}},{key:\"errors\",get:function(){return this.control?this.control.errors:null}},{key:\"pristine\",get:function(){return this.control?this.control.pristine:null}},{key:\"dirty\",get:function(){return this.control?this.control.dirty:null}},{key:\"touched\",get:function(){return this.control?this.control.touched:null}},{key:\"status\",get:function(){return this.control?this.control.status:null}},{key:\"untouched\",get:function(){return this.control?this.control.untouched:null}},{key:\"statusChanges\",get:function(){return this.control?this.control.statusChanges:null}},{key:\"valueChanges\",get:function(){return this.control?this.control.valueChanges:null}},{key:\"path\",get:function(){return null}}]),e}()).\\u0275fac=function(e){return new(e||d)},d.\\u0275dir=r.Eb({type:d}),d),k=((f=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"formDirective\",get:function(){return null}},{key:\"path\",get:function(){return null}}]),t}(C)).\\u0275fac=function(e){return w(e||f)},f.\\u0275dir=r.Eb({type:f,features:[r.wb]}),f),w=r.Ob(k);function O(){throw new Error(\"unimplemented\")}var S,E,x=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments)))._parent=null,e.name=null,e.valueAccessor=null,e._rawValidators=[],e._rawAsyncValidators=[],e}return _inherits(t,e),_createClass(t,[{key:\"validator\",get:function(){return O()}},{key:\"asyncValidator\",get:function(){return O()}}]),t}(C),T=function(){function e(t){_classCallCheck(this,e),this._cd=t}return _createClass(e,[{key:\"ngClassUntouched\",get:function(){return!!this._cd.control&&this._cd.control.untouched}},{key:\"ngClassTouched\",get:function(){return!!this._cd.control&&this._cd.control.touched}},{key:\"ngClassPristine\",get:function(){return!!this._cd.control&&this._cd.control.pristine}},{key:\"ngClassDirty\",get:function(){return!!this._cd.control&&this._cd.control.dirty}},{key:\"ngClassValid\",get:function(){return!!this._cd.control&&this._cd.control.valid}},{key:\"ngClassInvalid\",get:function(){return!!this._cd.control&&this._cd.control.invalid}},{key:\"ngClassPending\",get:function(){return!!this._cd.control&&this._cd.control.pending}}]),e}(),P=((E=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),t}(T)).\\u0275fac=function(e){return new(e||E)(r.Jb(x,2))},E.\\u0275dir=r.Eb({type:E,selectors:[[\"\",\"formControlName\",\"\"],[\"\",\"ngModel\",\"\"],[\"\",\"formControl\",\"\"]],hostVars:14,hostBindings:function(e,t){2&e&&r.Bb(\"ng-untouched\",t.ngClassUntouched)(\"ng-touched\",t.ngClassTouched)(\"ng-pristine\",t.ngClassPristine)(\"ng-dirty\",t.ngClassDirty)(\"ng-valid\",t.ngClassValid)(\"ng-invalid\",t.ngClassInvalid)(\"ng-pending\",t.ngClassPending)},features:[r.wb]}),E),A=((S=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),t}(T)).\\u0275fac=function(e){return new(e||S)(r.Jb(k,2))},S.\\u0275dir=r.Eb({type:S,selectors:[[\"\",\"formGroupName\",\"\"],[\"\",\"formArrayName\",\"\"],[\"\",\"ngModelGroup\",\"\"],[\"\",\"formGroup\",\"\"],[\"form\",3,\"ngNoForm\",\"\"],[\"\",\"ngForm\",\"\"]],hostVars:14,hostBindings:function(e,t){2&e&&r.Bb(\"ng-untouched\",t.ngClassUntouched)(\"ng-touched\",t.ngClassTouched)(\"ng-pristine\",t.ngClassPristine)(\"ng-dirty\",t.ngClassDirty)(\"ng-valid\",t.ngClassValid)(\"ng-invalid\",t.ngClassInvalid)(\"ng-pending\",t.ngClassPending)},features:[r.wb]}),S);function j(e){return null==e||0===e.length}var R=new r.q(\"NgValidators\"),I=new r.q(\"NgAsyncValidators\"),N=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,M=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"min\",value:function(e){return function(t){if(j(t.value)||j(e))return null;var n=parseFloat(t.value);return!isNaN(n)&&n<e?{min:{min:e,actual:t.value}}:null}}},{key:\"max\",value:function(e){return function(t){if(j(t.value)||j(e))return null;var n=parseFloat(t.value);return!isNaN(n)&&n>e?{max:{max:e,actual:t.value}}:null}}},{key:\"required\",value:function(e){return j(e.value)?{required:!0}:null}},{key:\"requiredTrue\",value:function(e){return!0===e.value?null:{required:!0}}},{key:\"email\",value:function(e){return j(e.value)?null:N.test(e.value)?null:{email:!0}}},{key:\"minLength\",value:function(e){return function(t){if(j(t.value))return null;var n=t.value?t.value.length:0;return n<e?{minlength:{requiredLength:e,actualLength:n}}:null}}},{key:\"maxLength\",value:function(e){return function(t){var n=t.value?t.value.length:0;return n>e?{maxlength:{requiredLength:e,actualLength:n}}:null}}},{key:\"pattern\",value:function(t){return t?(\"string\"==typeof t?(r=\"\",\"^\"!==t.charAt(0)&&(r+=\"^\"),r+=t,\"$\"!==t.charAt(t.length-1)&&(r+=\"$\"),n=new RegExp(r)):(r=t.toString(),n=t),function(e){if(j(e.value))return null;var t=e.value;return n.test(t)?null:{pattern:{requiredPattern:r,actualValue:t}}}):e.nullValidator;var n,r}},{key:\"nullValidator\",value:function(e){return null}},{key:\"compose\",value:function(e){if(!e)return null;var t=e.filter(D);return 0==t.length?null:function(e){return V(function(e,t){return t.map((function(t){return t(e)}))}(e,t))}}},{key:\"composeAsync\",value:function(e){if(!e)return null;var t=e.filter(D);return 0==t.length?null:function(e){return function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(1===t.length){var r=t[0];if(Object(a.a)(r))return l(r,null);if(Object(u.a)(r)&&Object.getPrototypeOf(r)===Object.prototype){var i=Object.keys(r);return l(i.map((function(e){return r[e]})),i)}}if(\"function\"==typeof t[t.length-1]){var o=t.pop();return l(t=1===t.length&&Object(a.a)(t[0])?t[0]:t,null).pipe(Object(s.a)((function(e){return o.apply(void 0,_toConsumableArray(e))})))}return l(t,null)}(function(e,t){return t.map((function(t){return t(e)}))}(e,t).map(L)).pipe(Object(s.a)(V))}}}]),e}();function D(e){return null!=e}function L(e){var t=Object(r.qb)(e)?Object(c.a)(e):e;if(!Object(r.pb)(t))throw new Error(\"Expected validator to return Promise or Observable.\");return t}function V(e){var t={};return e.forEach((function(e){t=null!=e?Object.assign(Object.assign({},t),e):t})),0===Object.keys(t).length?null:t}function U(e){return e.validate?function(t){return e.validate(t)}:e}function F(e){return e.validate?function(t){return e.validate(t)}:e}var H,z,q,B,G={provide:p,useExisting:Object(r.S)((function(){return W})),multi:!0},W=((H=function(){function e(t,n){_classCallCheck(this,e),this._renderer=t,this._elementRef=n,this.onChange=function(e){},this.onTouched=function(){}}return _createClass(e,[{key:\"writeValue\",value:function(e){this._renderer.setProperty(this._elementRef.nativeElement,\"value\",null==e?\"\":e)}},{key:\"registerOnChange\",value:function(e){this.onChange=function(t){e(\"\"==t?null:parseFloat(t))}}},{key:\"registerOnTouched\",value:function(e){this.onTouched=e}},{key:\"setDisabledState\",value:function(e){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",e)}}]),e}()).\\u0275fac=function(e){return new(e||H)(r.Jb(r.D),r.Jb(r.l))},H.\\u0275dir=r.Eb({type:H,selectors:[[\"input\",\"type\",\"number\",\"formControlName\",\"\"],[\"input\",\"type\",\"number\",\"formControl\",\"\"],[\"input\",\"type\",\"number\",\"ngModel\",\"\"]],hostBindings:function(e,t){1&e&&r.Ub(\"change\",(function(e){return t.onChange(e.target.value)}))(\"input\",(function(e){return t.onChange(e.target.value)}))(\"blur\",(function(e){return t.onTouched()}))},features:[r.yb([G])]}),H),Z={provide:p,useExisting:Object(r.S)((function(){return J})),multi:!0},Q=((q=function(){function e(){_classCallCheck(this,e),this._accessors=[]}return _createClass(e,[{key:\"add\",value:function(e,t){this._accessors.push([e,t])}},{key:\"remove\",value:function(e){for(var t=this._accessors.length-1;t>=0;--t)if(this._accessors[t][1]===e)return void this._accessors.splice(t,1)}},{key:\"select\",value:function(e){var t=this;this._accessors.forEach((function(n){t._isSameGroup(n,e)&&n[1]!==e&&n[1].fireUncheck(e.value)}))}},{key:\"_isSameGroup\",value:function(e,t){return!!e[0].control&&e[0]._parent===t._control._parent&&e[1].name===t.name}}]),e}()).\\u0275fac=function(e){return new(e||q)},q.\\u0275prov=r.Fb({token:q,factory:q.\\u0275fac}),q),J=((z=function(){function e(t,n,r,i){_classCallCheck(this,e),this._renderer=t,this._elementRef=n,this._registry=r,this._injector=i,this.onChange=function(){},this.onTouched=function(){}}return _createClass(e,[{key:\"ngOnInit\",value:function(){this._control=this._injector.get(x),this._checkName(),this._registry.add(this._control,this)}},{key:\"ngOnDestroy\",value:function(){this._registry.remove(this)}},{key:\"writeValue\",value:function(e){this._state=e===this.value,this._renderer.setProperty(this._elementRef.nativeElement,\"checked\",this._state)}},{key:\"registerOnChange\",value:function(e){var t=this;this._fn=e,this.onChange=function(){e(t.value),t._registry.select(t)}}},{key:\"fireUncheck\",value:function(e){this.writeValue(e)}},{key:\"registerOnTouched\",value:function(e){this.onTouched=e}},{key:\"setDisabledState\",value:function(e){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",e)}},{key:\"_checkName\",value:function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)}},{key:\"_throwNameError\",value:function(){throw new Error('\\n      If you define both a name and a formControlName attribute on your radio button, their values\\n      must match. Ex: <input type=\"radio\" formControlName=\"food\" name=\"food\">\\n    ')}}]),e}()).\\u0275fac=function(e){return new(e||z)(r.Jb(r.D),r.Jb(r.l),r.Jb(Q),r.Jb(r.r))},z.\\u0275dir=r.Eb({type:z,selectors:[[\"input\",\"type\",\"radio\",\"formControlName\",\"\"],[\"input\",\"type\",\"radio\",\"formControl\",\"\"],[\"input\",\"type\",\"radio\",\"ngModel\",\"\"]],hostBindings:function(e,t){1&e&&r.Ub(\"change\",(function(e){return t.onChange()}))(\"blur\",(function(e){return t.onTouched()}))},inputs:{name:\"name\",formControlName:\"formControlName\",value:\"value\"},features:[r.yb([Z])]}),z),K={provide:p,useExisting:Object(r.S)((function(){return X})),multi:!0},X=((B=function(){function e(t,n){_classCallCheck(this,e),this._renderer=t,this._elementRef=n,this.onChange=function(e){},this.onTouched=function(){}}return _createClass(e,[{key:\"writeValue\",value:function(e){this._renderer.setProperty(this._elementRef.nativeElement,\"value\",parseFloat(e))}},{key:\"registerOnChange\",value:function(e){this.onChange=function(t){e(\"\"==t?null:parseFloat(t))}}},{key:\"registerOnTouched\",value:function(e){this.onTouched=e}},{key:\"setDisabledState\",value:function(e){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",e)}}]),e}()).\\u0275fac=function(e){return new(e||B)(r.Jb(r.D),r.Jb(r.l))},B.\\u0275dir=r.Eb({type:B,selectors:[[\"input\",\"type\",\"range\",\"formControlName\",\"\"],[\"input\",\"type\",\"range\",\"formControl\",\"\"],[\"input\",\"type\",\"range\",\"ngModel\",\"\"]],hostBindings:function(e,t){1&e&&r.Ub(\"change\",(function(e){return t.onChange(e.target.value)}))(\"input\",(function(e){return t.onChange(e.target.value)}))(\"blur\",(function(e){return t.onTouched()}))},features:[r.yb([K])]}),B),$='\\n    <div [formGroup]=\"myGroup\">\\n       <div formGroupName=\"person\">\\n          <input formControlName=\"firstName\">\\n       </div>\\n    </div>\\n\\n    In your class:\\n\\n    this.myGroup = new FormGroup({\\n       person: new FormGroup({ firstName: new FormControl() })\\n    });',Y='\\n    <form>\\n       <div ngModelGroup=\"person\">\\n          <input [(ngModel)]=\"person.name\" name=\"firstName\">\\n       </div>\\n    </form>',ee={provide:p,useExisting:Object(r.S)((function(){return ie})),multi:!0};function te(e,t){return null==e?\"\".concat(t):(t&&\"object\"==typeof t&&(t=\"Object\"),\"\".concat(e,\": \").concat(t).slice(0,50))}var ne,re,ie=((re=function(){function e(t,n){_classCallCheck(this,e),this._renderer=t,this._elementRef=n,this._optionMap=new Map,this._idCounter=0,this.onChange=function(e){},this.onTouched=function(){},this._compareWith=r.rb}return _createClass(e,[{key:\"writeValue\",value:function(e){this.value=e;var t=this._getOptionId(e);null==t&&this._renderer.setProperty(this._elementRef.nativeElement,\"selectedIndex\",-1);var n=te(t,e);this._renderer.setProperty(this._elementRef.nativeElement,\"value\",n)}},{key:\"registerOnChange\",value:function(e){var t=this;this.onChange=function(n){t.value=t._getOptionValue(n),e(t.value)}}},{key:\"registerOnTouched\",value:function(e){this.onTouched=e}},{key:\"setDisabledState\",value:function(e){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",e)}},{key:\"_registerOption\",value:function(){return(this._idCounter++).toString()}},{key:\"_getOptionId\",value:function(e){for(var t=0,n=Array.from(this._optionMap.keys());t<n.length;t++){var r=n[t];if(this._compareWith(this._optionMap.get(r),e))return r}return null}},{key:\"_getOptionValue\",value:function(e){var t=function(e){return e.split(\":\")[0]}(e);return this._optionMap.has(t)?this._optionMap.get(t):e}},{key:\"compareWith\",set:function(e){if(\"function\"!=typeof e)throw new Error(\"compareWith must be a function, but received \".concat(JSON.stringify(e)));this._compareWith=e}}]),e}()).\\u0275fac=function(e){return new(e||re)(r.Jb(r.D),r.Jb(r.l))},re.\\u0275dir=r.Eb({type:re,selectors:[[\"select\",\"formControlName\",\"\",3,\"multiple\",\"\"],[\"select\",\"formControl\",\"\",3,\"multiple\",\"\"],[\"select\",\"ngModel\",\"\",3,\"multiple\",\"\"]],hostBindings:function(e,t){1&e&&r.Ub(\"change\",(function(e){return t.onChange(e.target.value)}))(\"blur\",(function(e){return t.onTouched()}))},inputs:{compareWith:\"compareWith\"},features:[r.yb([ee])]}),re),oe=((ne=function(){function e(t,n,r){_classCallCheck(this,e),this._element=t,this._renderer=n,this._select=r,this._select&&(this.id=this._select._registerOption())}return _createClass(e,[{key:\"_setElementValue\",value:function(e){this._renderer.setProperty(this._element.nativeElement,\"value\",e)}},{key:\"ngOnDestroy\",value:function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}},{key:\"ngValue\",set:function(e){null!=this._select&&(this._select._optionMap.set(this.id,e),this._setElementValue(te(this.id,e)),this._select.writeValue(this._select.value))}},{key:\"value\",set:function(e){this._setElementValue(e),this._select&&this._select.writeValue(this._select.value)}}]),e}()).\\u0275fac=function(e){return new(e||ne)(r.Jb(r.l),r.Jb(r.D),r.Jb(ie,9))},ne.\\u0275dir=r.Eb({type:ne,selectors:[[\"option\"]],inputs:{ngValue:\"ngValue\",value:\"value\"}}),ne),ae={provide:p,useExisting:Object(r.S)((function(){return le})),multi:!0};function se(e,t){return null==e?\"\".concat(t):(\"string\"==typeof t&&(t=\"'\".concat(t,\"'\")),t&&\"object\"==typeof t&&(t=\"Object\"),\"\".concat(e,\": \").concat(t).slice(0,50))}var ue,ce,le=((ce=function(){function e(t,n){_classCallCheck(this,e),this._renderer=t,this._elementRef=n,this._optionMap=new Map,this._idCounter=0,this.onChange=function(e){},this.onTouched=function(){},this._compareWith=r.rb}return _createClass(e,[{key:\"writeValue\",value:function(e){var t,n=this;if(this.value=e,Array.isArray(e)){var r=e.map((function(e){return n._getOptionId(e)}));t=function(e,t){e._setSelected(r.indexOf(t.toString())>-1)}}else t=function(e,t){e._setSelected(!1)};this._optionMap.forEach(t)}},{key:\"registerOnChange\",value:function(e){var t=this;this.onChange=function(n){var r=[];if(n.hasOwnProperty(\"selectedOptions\"))for(var i=n.selectedOptions,o=0;o<i.length;o++){var a=i.item(o),s=t._getOptionValue(a.value);r.push(s)}else for(var u=n.options,c=0;c<u.length;c++){var l=u.item(c);if(l.selected){var h=t._getOptionValue(l.value);r.push(h)}}t.value=r,e(r)}}},{key:\"registerOnTouched\",value:function(e){this.onTouched=e}},{key:\"setDisabledState\",value:function(e){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",e)}},{key:\"_registerOption\",value:function(e){var t=(this._idCounter++).toString();return this._optionMap.set(t,e),t}},{key:\"_getOptionId\",value:function(e){for(var t=0,n=Array.from(this._optionMap.keys());t<n.length;t++){var r=n[t];if(this._compareWith(this._optionMap.get(r)._value,e))return r}return null}},{key:\"_getOptionValue\",value:function(e){var t=function(e){return e.split(\":\")[0]}(e);return this._optionMap.has(t)?this._optionMap.get(t)._value:e}},{key:\"compareWith\",set:function(e){if(\"function\"!=typeof e)throw new Error(\"compareWith must be a function, but received \".concat(JSON.stringify(e)));this._compareWith=e}}]),e}()).\\u0275fac=function(e){return new(e||ce)(r.Jb(r.D),r.Jb(r.l))},ce.\\u0275dir=r.Eb({type:ce,selectors:[[\"select\",\"multiple\",\"\",\"formControlName\",\"\"],[\"select\",\"multiple\",\"\",\"formControl\",\"\"],[\"select\",\"multiple\",\"\",\"ngModel\",\"\"]],hostBindings:function(e,t){1&e&&r.Ub(\"change\",(function(e){return t.onChange(e.target)}))(\"blur\",(function(e){return t.onTouched()}))},inputs:{compareWith:\"compareWith\"},features:[r.yb([ae])]}),ce),he=((ue=function(){function e(t,n,r){_classCallCheck(this,e),this._element=t,this._renderer=n,this._select=r,this._select&&(this.id=this._select._registerOption(this))}return _createClass(e,[{key:\"_setElementValue\",value:function(e){this._renderer.setProperty(this._element.nativeElement,\"value\",e)}},{key:\"_setSelected\",value:function(e){this._renderer.setProperty(this._element.nativeElement,\"selected\",e)}},{key:\"ngOnDestroy\",value:function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}},{key:\"ngValue\",set:function(e){null!=this._select&&(this._value=e,this._setElementValue(se(this.id,e)),this._select.writeValue(this._select.value))}},{key:\"value\",set:function(e){this._select?(this._value=e,this._setElementValue(se(this.id,e)),this._select.writeValue(this._select.value)):this._setElementValue(e)}}]),e}()).\\u0275fac=function(e){return new(e||ue)(r.Jb(r.l),r.Jb(r.D),r.Jb(le,9))},ue.\\u0275dir=r.Eb({type:ue,selectors:[[\"option\"]],inputs:{ngValue:\"ngValue\",value:\"value\"}}),ue);function fe(e,t){return[].concat(_toConsumableArray(t.path),[e])}function de(e,t){e||pe(t,\"Cannot find control with\"),t.valueAccessor||pe(t,\"No value accessor for form control with\"),e.validator=M.compose([e.validator,t.validator]),e.asyncValidator=M.composeAsync([e.asyncValidator,t.asyncValidator]),t.valueAccessor.writeValue(e.value),function(e,t){t.valueAccessor.registerOnChange((function(n){e._pendingValue=n,e._pendingChange=!0,e._pendingDirty=!0,\"change\"===e.updateOn&&ve(e,t)}))}(e,t),function(e,t){e.registerOnChange((function(e,n){t.valueAccessor.writeValue(e),n&&t.viewToModelUpdate(e)}))}(e,t),function(e,t){t.valueAccessor.registerOnTouched((function(){e._pendingTouched=!0,\"blur\"===e.updateOn&&e._pendingChange&&ve(e,t),\"submit\"!==e.updateOn&&e.markAsTouched()}))}(e,t),t.valueAccessor.setDisabledState&&e.registerOnDisabledChange((function(e){t.valueAccessor.setDisabledState(e)})),t._rawValidators.forEach((function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange((function(){return e.updateValueAndValidity()}))})),t._rawAsyncValidators.forEach((function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange((function(){return e.updateValueAndValidity()}))}))}function ve(e,t){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function pe(e,t){var n;throw n=e.path.length>1?\"path: '\".concat(e.path.join(\" -> \"),\"'\"):e.path[0]?\"name: '\".concat(e.path,\"'\"):\"unspecified name attribute\",new Error(\"\".concat(t,\" \").concat(n))}function ye(e){return null!=e?M.compose(e.map(U)):null}function ge(e){return null!=e?M.composeAsync(e.map(F)):null}var me=[g,X,W,ie,le,J];function be(e){var t=Ce(e)?e.validators:e;return Array.isArray(t)?ye(t):t||null}function _e(e,t){var n=Ce(t)?t.asyncValidators:e;return Array.isArray(n)?ge(n):n||null}function Ce(e){return null!=e&&!Array.isArray(e)&&\"object\"==typeof e}var ke,we,Oe,Se,Ee,xe,Te,Pe,Ae=function(){function e(t,n){_classCallCheck(this,e),this.validator=t,this.asyncValidator=n,this._onCollectionChange=function(){},this.pristine=!0,this.touched=!1,this._onDisabledChange=[]}return _createClass(e,[{key:\"setValidators\",value:function(e){this.validator=be(e)}},{key:\"setAsyncValidators\",value:function(e){this.asyncValidator=_e(e)}},{key:\"clearValidators\",value:function(){this.validator=null}},{key:\"clearAsyncValidators\",value:function(){this.asyncValidator=null}},{key:\"markAsTouched\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.touched=!0,this._parent&&!e.onlySelf&&this._parent.markAsTouched(e)}},{key:\"markAllAsTouched\",value:function(){this.markAsTouched({onlySelf:!0}),this._forEachChild((function(e){return e.markAllAsTouched()}))}},{key:\"markAsUntouched\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.touched=!1,this._pendingTouched=!1,this._forEachChild((function(e){e.markAsUntouched({onlySelf:!0})})),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)}},{key:\"markAsDirty\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.pristine=!1,this._parent&&!e.onlySelf&&this._parent.markAsDirty(e)}},{key:\"markAsPristine\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.pristine=!0,this._pendingDirty=!1,this._forEachChild((function(e){e.markAsPristine({onlySelf:!0})})),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)}},{key:\"markAsPending\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.status=\"PENDING\",!1!==e.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!e.onlySelf&&this._parent.markAsPending(e)}},{key:\"disable\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this._parentMarkedDirty(e.onlySelf);this.status=\"DISABLED\",this.errors=null,this._forEachChild((function(t){t.disable(Object.assign(Object.assign({},e),{onlySelf:!0}))})),this._updateValue(),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object.assign(Object.assign({},e),{skipPristineCheck:t})),this._onDisabledChange.forEach((function(e){return e(!0)}))}},{key:\"enable\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this._parentMarkedDirty(e.onlySelf);this.status=\"VALID\",this._forEachChild((function(t){t.enable(Object.assign(Object.assign({},e),{onlySelf:!0}))})),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(Object.assign(Object.assign({},e),{skipPristineCheck:t})),this._onDisabledChange.forEach((function(e){return e(!1)}))}},{key:\"_updateAncestors\",value:function(e){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}},{key:\"setParent\",value:function(e){this._parent=e}},{key:\"updateValueAndValidity\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),\"VALID\"!==this.status&&\"PENDING\"!==this.status||this._runAsyncValidator(e.emitEvent)),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(e)}},{key:\"_updateTreeValidity\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{emitEvent:!0};this._forEachChild((function(t){return t._updateTreeValidity(e)})),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}},{key:\"_setInitialStatus\",value:function(){this.status=this._allControlsDisabled()?\"DISABLED\":\"VALID\"}},{key:\"_runValidator\",value:function(){return this.validator?this.validator(this):null}},{key:\"_runAsyncValidator\",value:function(e){var t=this;if(this.asyncValidator){this.status=\"PENDING\";var n=L(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe((function(n){return t.setErrors(n,{emitEvent:e})}))}}},{key:\"_cancelExistingSubscription\",value:function(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()}},{key:\"setErrors\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.errors=e,this._updateControlsErrors(!1!==t.emitEvent)}},{key:\"get\",value:function(e){return function(e,t,n){if(null==t)return null;if(Array.isArray(t)||(t=t.split(\".\")),Array.isArray(t)&&0===t.length)return null;var r=e;return t.forEach((function(e){r=r instanceof Re?r.controls.hasOwnProperty(e)?r.controls[e]:null:r instanceof Ie&&r.at(e)||null})),r}(this,e)}},{key:\"getError\",value:function(e,t){var n=t?this.get(t):this;return n&&n.errors?n.errors[e]:null}},{key:\"hasError\",value:function(e,t){return!!this.getError(e,t)}},{key:\"_updateControlsErrors\",value:function(e){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(e)}},{key:\"_initObservables\",value:function(){this.valueChanges=new r.n,this.statusChanges=new r.n}},{key:\"_calculateStatus\",value:function(){return this._allControlsDisabled()?\"DISABLED\":this.errors?\"INVALID\":this._anyControlsHaveStatus(\"PENDING\")?\"PENDING\":this._anyControlsHaveStatus(\"INVALID\")?\"INVALID\":\"VALID\"}},{key:\"_anyControlsHaveStatus\",value:function(e){return this._anyControls((function(t){return t.status===e}))}},{key:\"_anyControlsDirty\",value:function(){return this._anyControls((function(e){return e.dirty}))}},{key:\"_anyControlsTouched\",value:function(){return this._anyControls((function(e){return e.touched}))}},{key:\"_updatePristine\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.pristine=!this._anyControlsDirty(),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)}},{key:\"_updateTouched\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.touched=this._anyControlsTouched(),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)}},{key:\"_isBoxedValue\",value:function(e){return\"object\"==typeof e&&null!==e&&2===Object.keys(e).length&&\"value\"in e&&\"disabled\"in e}},{key:\"_registerOnCollectionChange\",value:function(e){this._onCollectionChange=e}},{key:\"_setUpdateStrategy\",value:function(e){Ce(e)&&null!=e.updateOn&&(this._updateOn=e.updateOn)}},{key:\"_parentMarkedDirty\",value:function(e){return!e&&this._parent&&this._parent.dirty&&!this._parent._anyControlsDirty()}},{key:\"parent\",get:function(){return this._parent}},{key:\"valid\",get:function(){return\"VALID\"===this.status}},{key:\"invalid\",get:function(){return\"INVALID\"===this.status}},{key:\"pending\",get:function(){return\"PENDING\"==this.status}},{key:\"disabled\",get:function(){return\"DISABLED\"===this.status}},{key:\"enabled\",get:function(){return\"DISABLED\"!==this.status}},{key:\"dirty\",get:function(){return!this.pristine}},{key:\"untouched\",get:function(){return!this.touched}},{key:\"updateOn\",get:function(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:\"change\"}},{key:\"root\",get:function(){for(var e=this;e._parent;)e=e._parent;return e}}]),e}(),je=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,be(r),_e(i,r))))._onChange=[],e._applyFormState(n),e._setUpdateStrategy(r),e.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),e._initObservables(),e}return _inherits(t,e),_createClass(t,[{key:\"setValue\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.value=this._pendingValue=e,this._onChange.length&&!1!==n.emitModelToViewChange&&this._onChange.forEach((function(e){return e(t.value,!1!==n.emitViewToModelChange)})),this.updateValueAndValidity(n)}},{key:\"patchValue\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.setValue(e,t)}},{key:\"reset\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._applyFormState(e),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}},{key:\"_updateValue\",value:function(){}},{key:\"_anyControls\",value:function(e){return!1}},{key:\"_allControlsDisabled\",value:function(){return this.disabled}},{key:\"registerOnChange\",value:function(e){this._onChange.push(e)}},{key:\"_clearChangeFns\",value:function(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=function(){}}},{key:\"registerOnDisabledChange\",value:function(e){this._onDisabledChange.push(e)}},{key:\"_forEachChild\",value:function(e){}},{key:\"_syncPendingControls\",value:function(){return!(\"submit\"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}},{key:\"_applyFormState\",value:function(e){this._isBoxedValue(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}}]),t}(Ae),Re=function(e){function t(e,n,r){var i;return _classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,be(n),_e(r,n)))).controls=e,i._initObservables(),i._setUpdateStrategy(n),i._setUpControls(),i.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),i}return _inherits(t,e),_createClass(t,[{key:\"registerControl\",value:function(e,t){return this.controls[e]?this.controls[e]:(this.controls[e]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)}},{key:\"addControl\",value:function(e,t){this.registerControl(e,t),this.updateValueAndValidity(),this._onCollectionChange()}},{key:\"removeControl\",value:function(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange((function(){})),delete this.controls[e],this.updateValueAndValidity(),this._onCollectionChange()}},{key:\"setControl\",value:function(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange((function(){})),delete this.controls[e],t&&this.registerControl(e,t),this.updateValueAndValidity(),this._onCollectionChange()}},{key:\"contains\",value:function(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled}},{key:\"setValue\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._checkAllValuesPresent(e),Object.keys(e).forEach((function(r){t._throwIfControlMissing(r),t.controls[r].setValue(e[r],{onlySelf:!0,emitEvent:n.emitEvent})})),this.updateValueAndValidity(n)}},{key:\"patchValue\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object.keys(e).forEach((function(r){t.controls[r]&&t.controls[r].patchValue(e[r],{onlySelf:!0,emitEvent:n.emitEvent})})),this.updateValueAndValidity(n)}},{key:\"reset\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._forEachChild((function(n,r){n.reset(e[r],{onlySelf:!0,emitEvent:t.emitEvent})})),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)}},{key:\"getRawValue\",value:function(){return this._reduceChildren({},(function(e,t,n){return e[n]=t instanceof je?t.value:t.getRawValue(),e}))}},{key:\"_syncPendingControls\",value:function(){var e=this._reduceChildren(!1,(function(e,t){return!!t._syncPendingControls()||e}));return e&&this.updateValueAndValidity({onlySelf:!0}),e}},{key:\"_throwIfControlMissing\",value:function(e){if(!Object.keys(this.controls).length)throw new Error(\"\\n        There are no form controls registered with this group yet.  If you're using ngModel,\\n        you may want to check next tick (e.g. use setTimeout).\\n      \");if(!this.controls[e])throw new Error(\"Cannot find form control with name: \".concat(e,\".\"))}},{key:\"_forEachChild\",value:function(e){var t=this;Object.keys(this.controls).forEach((function(n){return e(t.controls[n],n)}))}},{key:\"_setUpControls\",value:function(){var e=this;this._forEachChild((function(t){t.setParent(e),t._registerOnCollectionChange(e._onCollectionChange)}))}},{key:\"_updateValue\",value:function(){this.value=this._reduceValue()}},{key:\"_anyControls\",value:function(e){var t=this,n=!1;return this._forEachChild((function(r,i){n=n||t.contains(i)&&e(r)})),n}},{key:\"_reduceValue\",value:function(){var e=this;return this._reduceChildren({},(function(t,n,r){return(n.enabled||e.disabled)&&(t[r]=n.value),t}))}},{key:\"_reduceChildren\",value:function(e,t){var n=e;return this._forEachChild((function(e,r){n=t(n,e,r)})),n}},{key:\"_allControlsDisabled\",value:function(){for(var e=0,t=Object.keys(this.controls);e<t.length;e++){var n=t[e];if(this.controls[n].enabled)return!1}return Object.keys(this.controls).length>0||this.disabled}},{key:\"_checkAllValuesPresent\",value:function(e){this._forEachChild((function(t,n){if(void 0===e[n])throw new Error(\"Must supply a value for form control with name: '\".concat(n,\"'.\"))}))}}]),t}(Ae),Ie=function(e){function t(e,n,r){var i;return _classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,be(n),_e(r,n)))).controls=e,i._initObservables(),i._setUpdateStrategy(n),i._setUpControls(),i.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),i}return _inherits(t,e),_createClass(t,[{key:\"at\",value:function(e){return this.controls[e]}},{key:\"push\",value:function(e){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity(),this._onCollectionChange()}},{key:\"insert\",value:function(e,t){this.controls.splice(e,0,t),this._registerControl(t),this.updateValueAndValidity()}},{key:\"removeAt\",value:function(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange((function(){})),this.controls.splice(e,1),this.updateValueAndValidity()}},{key:\"setControl\",value:function(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange((function(){})),this.controls.splice(e,1),t&&(this.controls.splice(e,0,t),this._registerControl(t)),this.updateValueAndValidity(),this._onCollectionChange()}},{key:\"setValue\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._checkAllValuesPresent(e),e.forEach((function(e,r){t._throwIfControlMissing(r),t.at(r).setValue(e,{onlySelf:!0,emitEvent:n.emitEvent})})),this.updateValueAndValidity(n)}},{key:\"patchValue\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.forEach((function(e,r){t.at(r)&&t.at(r).patchValue(e,{onlySelf:!0,emitEvent:n.emitEvent})})),this.updateValueAndValidity(n)}},{key:\"reset\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._forEachChild((function(n,r){n.reset(e[r],{onlySelf:!0,emitEvent:t.emitEvent})})),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)}},{key:\"getRawValue\",value:function(){return this.controls.map((function(e){return e instanceof je?e.value:e.getRawValue()}))}},{key:\"clear\",value:function(){this.controls.length<1||(this._forEachChild((function(e){return e._registerOnCollectionChange((function(){}))})),this.controls.splice(0),this.updateValueAndValidity())}},{key:\"_syncPendingControls\",value:function(){var e=this.controls.reduce((function(e,t){return!!t._syncPendingControls()||e}),!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e}},{key:\"_throwIfControlMissing\",value:function(e){if(!this.controls.length)throw new Error(\"\\n        There are no form controls registered with this array yet.  If you're using ngModel,\\n        you may want to check next tick (e.g. use setTimeout).\\n      \");if(!this.at(e))throw new Error(\"Cannot find form control at index \".concat(e))}},{key:\"_forEachChild\",value:function(e){this.controls.forEach((function(t,n){e(t,n)}))}},{key:\"_updateValue\",value:function(){var e=this;this.value=this.controls.filter((function(t){return t.enabled||e.disabled})).map((function(e){return e.value}))}},{key:\"_anyControls\",value:function(e){return this.controls.some((function(t){return t.enabled&&e(t)}))}},{key:\"_setUpControls\",value:function(){var e=this;this._forEachChild((function(t){return e._registerControl(t)}))}},{key:\"_checkAllValuesPresent\",value:function(e){this._forEachChild((function(t,n){if(void 0===e[n])throw new Error(\"Must supply a value for form control at index: \".concat(n,\".\"))}))}},{key:\"_allControlsDisabled\",value:function(){var e=!0,t=!1,n=void 0;try{for(var r,i=this.controls[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){if(r.value.enabled)return!1}}catch(o){t=!0,n=o}finally{try{e||null==i.return||i.return()}finally{if(t)throw n}}return this.controls.length>0||this.disabled}},{key:\"_registerControl\",value:function(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)}},{key:\"length\",get:function(){return this.controls.length}}]),t}(Ae),Ne={provide:k,useExisting:Object(r.S)((function(){return De}))},Me=Promise.resolve(null),De=((we=function(e){function t(e,n){var i;return _classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).submitted=!1,i._directives=[],i.ngSubmit=new r.n,i.form=new Re({},ye(e),ge(n)),i}return _inherits(t,e),_createClass(t,[{key:\"ngAfterViewInit\",value:function(){this._setUpdateStrategy()}},{key:\"addControl\",value:function(e){var t=this;Me.then((function(){var n=t._findContainer(e.path);e.control=n.registerControl(e.name,e.control),de(e.control,e),e.control.updateValueAndValidity({emitEvent:!1}),t._directives.push(e)}))}},{key:\"getControl\",value:function(e){return this.form.get(e.path)}},{key:\"removeControl\",value:function(e){var t=this;Me.then((function(){var n,r,i,o=t._findContainer(e.path);o&&o.removeControl(e.name),n=t._directives,r=e,(i=n.indexOf(r))>-1&&n.splice(i,1)}))}},{key:\"addFormGroup\",value:function(e){var t=this;Me.then((function(){var n=t._findContainer(e.path),r=new Re({});(function(e,t){null==e&&pe(t,\"Cannot find control with\"),e.validator=M.compose([e.validator,t.validator]),e.asyncValidator=M.composeAsync([e.asyncValidator,t.asyncValidator])})(r,e),n.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})}))}},{key:\"removeFormGroup\",value:function(e){var t=this;Me.then((function(){var n=t._findContainer(e.path);n&&n.removeControl(e.name)}))}},{key:\"getFormGroup\",value:function(e){return this.form.get(e.path)}},{key:\"updateModel\",value:function(e,t){var n=this;Me.then((function(){n.form.get(e.path).setValue(t)}))}},{key:\"setValue\",value:function(e){this.control.setValue(e)}},{key:\"onSubmit\",value:function(e){return this.submitted=!0,t=this._directives,this.form._syncPendingControls(),t.forEach((function(e){var t=e.control;\"submit\"===t.updateOn&&t._pendingChange&&(e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1)})),this.ngSubmit.emit(e),!1;var t}},{key:\"onReset\",value:function(){this.resetForm()}},{key:\"resetForm\",value:function(e){this.form.reset(e),this.submitted=!1}},{key:\"_setUpdateStrategy\",value:function(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}},{key:\"_findContainer\",value:function(e){return e.pop(),e.length?this.form.get(e):this.form}},{key:\"formDirective\",get:function(){return this}},{key:\"control\",get:function(){return this.form}},{key:\"path\",get:function(){return[]}},{key:\"controls\",get:function(){return this.form.controls}}]),t}(k)).\\u0275fac=function(e){return new(e||we)(r.Jb(R,10),r.Jb(I,10))},we.\\u0275dir=r.Eb({type:we,selectors:[[\"form\",3,\"ngNoForm\",\"\",3,\"formGroup\",\"\"],[\"ng-form\"],[\"\",\"ngForm\",\"\"]],hostBindings:function(e,t){1&e&&r.Ub(\"submit\",(function(e){return t.onSubmit(e)}))(\"reset\",(function(e){return t.onReset()}))},inputs:{options:[\"ngFormOptions\",\"options\"]},outputs:{ngSubmit:\"ngSubmit\"},exportAs:[\"ngForm\"],features:[r.yb([Ne]),r.wb]}),we),Le=((ke=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"ngOnInit\",value:function(){this._checkParentType(),this.formDirective.addFormGroup(this)}},{key:\"ngOnDestroy\",value:function(){this.formDirective&&this.formDirective.removeFormGroup(this)}},{key:\"_checkParentType\",value:function(){}},{key:\"control\",get:function(){return this.formDirective.getFormGroup(this)}},{key:\"path\",get:function(){return fe(null==this.name?this.name:this.name.toString(),this._parent)}},{key:\"formDirective\",get:function(){return this._parent?this._parent.formDirective:null}},{key:\"validator\",get:function(){return ye(this._validators)}},{key:\"asyncValidator\",get:function(){return ge(this._asyncValidators)}}]),t}(k)).\\u0275fac=function(e){return Ve(e||ke)},ke.\\u0275dir=r.Eb({type:ke,features:[r.wb]}),ke),Ve=r.Ob(Le),Ue=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"modelParentException\",value:function(){throw new Error('\\n      ngModel cannot be used to register form controls with a parent formGroup directive.  Try using\\n      formGroup\\'s partner directive \"formControlName\" instead.  Example:\\n\\n      \\n    <div [formGroup]=\"myGroup\">\\n      <input formControlName=\"firstName\">\\n    </div>\\n\\n    In your class:\\n\\n    this.myGroup = new FormGroup({\\n       firstName: new FormControl()\\n    });\\n\\n      Or, if you\\'d like to avoid registering this form control, indicate that it\\'s standalone in ngModelOptions:\\n\\n      Example:\\n\\n      \\n    <div [formGroup]=\"myGroup\">\\n       <input formControlName=\"firstName\">\\n       <input [(ngModel)]=\"showMoreControls\" [ngModelOptions]=\"{standalone: true}\">\\n    </div>\\n  ')}},{key:\"formGroupNameException\",value:function(){throw new Error(\"\\n      ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\\n\\n      Option 1: Use formControlName instead of ngModel (reactive strategy):\\n\\n      \".concat($,\"\\n\\n      Option 2:  Update ngModel's parent be ngModelGroup (template-driven strategy):\\n\\n      \").concat(Y))}},{key:\"missingNameException\",value:function(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\\n      control must be defined as \\'standalone\\' in ngModelOptions.\\n\\n      Example 1: <input [(ngModel)]=\"person.firstName\" name=\"first\">\\n      Example 2: <input [(ngModel)]=\"person.firstName\" [ngModelOptions]=\"{standalone: true}\">')}},{key:\"modelGroupParentException\",value:function(){throw new Error(\"\\n      ngModelGroup cannot be used with a parent formGroup directive.\\n\\n      Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\\n\\n      \".concat($,\"\\n\\n      Option 2:  Use a regular form tag instead of the formGroup directive (template-driven strategy):\\n\\n      \").concat(Y))}}]),e}(),Fe={provide:k,useExisting:Object(r.S)((function(){return He}))},He=((Oe=function(e){function t(e,n,r){var i;return _classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=e,i._validators=n,i._asyncValidators=r,i}return _inherits(t,e),_createClass(t,[{key:\"_checkParentType\",value:function(){this._parent instanceof t||this._parent instanceof De||Ue.modelGroupParentException()}}]),t}(Le)).\\u0275fac=function(e){return new(e||Oe)(r.Jb(k,5),r.Jb(R,10),r.Jb(I,10))},Oe.\\u0275dir=r.Eb({type:Oe,selectors:[[\"\",\"ngModelGroup\",\"\"]],inputs:{name:[\"ngModelGroup\",\"name\"]},exportAs:[\"ngModelGroup\"],features:[r.yb([Fe]),r.wb]}),Oe),ze={provide:x,useExisting:Object(r.S)((function(){return Be}))},qe=Promise.resolve(null),Be=((Ee=function(e){function t(e,n,i,o){var a;return _classCallCheck(this,t),(a=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).control=new je,a._registered=!1,a.update=new r.n,a._parent=e,a._rawValidators=n||[],a._rawAsyncValidators=i||[],a.valueAccessor=function(e,t){if(!t)return null;Array.isArray(t)||pe(e,\"Value accessor was not provided as an array for form control with\");var n=void 0,r=void 0,i=void 0;return t.forEach((function(t){var o;t.constructor===_?n=t:(o=t,me.some((function(e){return o.constructor===e}))?(r&&pe(e,\"More than one built-in value accessor matches form control with\"),r=t):(i&&pe(e,\"More than one custom value accessor matches form control with\"),i=t))})),i||r||n||(pe(e,\"No valid value accessor for form control with\"),null)}(_assertThisInitialized(a),o),a}return _inherits(t,e),_createClass(t,[{key:\"ngOnChanges\",value:function(e){this._checkForErrors(),this._registered||this._setUpControl(),\"isDisabled\"in e&&this._updateDisabled(e),function(e,t){if(!e.hasOwnProperty(\"model\"))return!1;var n=e.model;return!!n.isFirstChange()||!Object(r.rb)(t,n.currentValue)}(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}},{key:\"ngOnDestroy\",value:function(){this.formDirective&&this.formDirective.removeControl(this)}},{key:\"viewToModelUpdate\",value:function(e){this.viewModel=e,this.update.emit(e)}},{key:\"_setUpControl\",value:function(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}},{key:\"_setUpdateStrategy\",value:function(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}},{key:\"_isStandalone\",value:function(){return!this._parent||!(!this.options||!this.options.standalone)}},{key:\"_setUpStandalone\",value:function(){de(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})}},{key:\"_checkForErrors\",value:function(){this._isStandalone()||this._checkParentType(),this._checkName()}},{key:\"_checkParentType\",value:function(){!(this._parent instanceof He)&&this._parent instanceof Le?Ue.formGroupNameException():this._parent instanceof He||this._parent instanceof De||Ue.modelParentException()}},{key:\"_checkName\",value:function(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||Ue.missingNameException()}},{key:\"_updateValue\",value:function(e){var t=this;qe.then((function(){t.control.setValue(e,{emitViewToModelChange:!1})}))}},{key:\"_updateDisabled\",value:function(e){var t=this,n=e.isDisabled.currentValue,r=\"\"===n||n&&\"false\"!==n;qe.then((function(){r&&!t.control.disabled?t.control.disable():!r&&t.control.disabled&&t.control.enable()}))}},{key:\"path\",get:function(){return this._parent?fe(this.name,this._parent):[this.name]}},{key:\"formDirective\",get:function(){return this._parent?this._parent.formDirective:null}},{key:\"validator\",get:function(){return ye(this._rawValidators)}},{key:\"asyncValidator\",get:function(){return ge(this._rawAsyncValidators)}}]),t}(x)).\\u0275fac=function(e){return new(e||Ee)(r.Jb(k,9),r.Jb(R,10),r.Jb(I,10),r.Jb(p,10))},Ee.\\u0275dir=r.Eb({type:Ee,selectors:[[\"\",\"ngModel\",\"\",3,\"formControlName\",\"\",3,\"formControl\",\"\"]],inputs:{name:\"name\",isDisabled:[\"disabled\",\"isDisabled\"],model:[\"ngModel\",\"model\"],options:[\"ngModelOptions\",\"options\"]},outputs:{update:\"ngModelChange\"},exportAs:[\"ngModel\"],features:[r.yb([ze]),r.wb,r.xb()]}),Ee),Ge=((Se=function e(){_classCallCheck(this,e)}).\\u0275fac=function(e){return new(e||Se)},Se.\\u0275dir=r.Eb({type:Se,selectors:[[\"form\",3,\"ngNoForm\",\"\",3,\"ngNativeValidate\",\"\"]],hostAttrs:[\"novalidate\",\"\"]}),Se),We={provide:R,useExisting:Object(r.S)((function(){return Ze})),multi:!0},Ze=((Pe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"validate\",value:function(e){return this.required?M.required(e):null}},{key:\"registerOnValidatorChange\",value:function(e){this._onChange=e}},{key:\"required\",get:function(){return this._required},set:function(e){this._required=null!=e&&!1!==e&&\"false\"!==\"\".concat(e),this._onChange&&this._onChange()}}]),e}()).\\u0275fac=function(e){return new(e||Pe)},Pe.\\u0275dir=r.Eb({type:Pe,selectors:[[\"\",\"required\",\"\",\"formControlName\",\"\",3,\"type\",\"checkbox\"],[\"\",\"required\",\"\",\"formControl\",\"\",3,\"type\",\"checkbox\"],[\"\",\"required\",\"\",\"ngModel\",\"\",3,\"type\",\"checkbox\"]],hostVars:1,hostBindings:function(e,t){2&e&&r.Ab(\"required\",t.required?\"\":null)},inputs:{required:\"required\"},features:[r.yb([We])]}),Pe),Qe=((Te=function e(){_classCallCheck(this,e)}).\\u0275mod=r.Hb({type:Te}),Te.\\u0275inj=r.Gb({factory:function(e){return new(e||Te)}}),Te),Je=((xe=function e(){_classCallCheck(this,e)}).\\u0275mod=r.Hb({type:xe}),xe.\\u0275inj=r.Gb({factory:function(e){return new(e||xe)},providers:[Q],imports:[Qe]}),xe)},\"4I5i\":function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return r}));var r=function(){function e(){return Error.call(this),this.message=\"argument out of range\",this.name=\"ArgumentOutOfRangeError\",this}return e.prototype=Object.create(Error.prototype),e}()},\"4Sfc\":function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return r}));var r=function e(t,n,r,i,o){_classCallCheck(this,e),this.id=t,this.name=n,this.category=r,this.description=i,this.price=o}},\"5+tZ\":function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return u}));var r=n(\"ZUHj\"),i=n(\"l7GE\"),o=n(\"51Dv\"),a=n(\"lJxs\"),s=n(\"Cfvw\");function u(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof t?function(r){return r.pipe(u((function(n,r){return Object(s.a)(e(n,r)).pipe(Object(a.a)((function(e,i){return t(n,e,r,i)})))}),n))}:(\"number\"==typeof t&&(n=t),function(t){return t.lift(new c(e,n))})}var c=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new l(e,this.project,this.concurrent))}}]),e}(),l=function(e){function t(e,n){var r,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=i,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var i=new o.a(this,t,n),a=this.destination;a.add(i);var s=Object(r.a)(this,e,void 0,void 0,i);s!==i&&a.add(s)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,i){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(i.a)},\"51Dv\":function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return r}));var r=function(e){function t(e,n,r){var i;return _classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,i.outerValue=n,i.outerIndex=r,i.index=0,i}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(n(\"7o/Q\").a)},\"7o/Q\":function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return c}));var r=n(\"n6bG\"),i=n(\"gRHU\"),o=n(\"quSY\"),a=n(\"2QA8\"),s=n(\"2fFW\"),u=n(\"NJ4a\"),c=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=i.a;break;case 1:if(!e){o.destination=i.a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new l(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new l(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:a.a,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var i=new t(e,n,r);return i.syncErrorThrowable=!1,i}}]),t}(o.a),l=function(e){function t(e,n,o,a){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var c=_assertThisInitialized(s);return Object(r.a)(n)?u=n:n&&(u=n.next,o=n.error,a=n.complete,n!==i.a&&(c=Object.create(n),Object(r.a)(c.unsubscribe)&&s.add(c.unsubscribe.bind(c)),c.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=c,s._next=u,s._error=o,s._complete=a,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;s.a.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=s.a.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):Object(u.a)(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;Object(u.a)(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};s.a.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.a.useDeprecatedSynchronousErrorHandling)throw n;Object(u.a)(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!s.a.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.a.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(Object(u.a)(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(c)},\"9ppp\":function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return r}));var r=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}()},Cfvw:function(e,t,n){\"use strict\";var r=n(\"HDdC\"),i=n(\"SeVD\"),o=n(\"quSY\"),a=n(\"kJWO\"),s=n(\"jZKg\"),u=n(\"Lhse\"),c=n(\"c2HN\"),l=n(\"I55L\");function h(e,t){return t?function(e,t){if(null!=e){if(function(e){return e&&\"function\"==typeof e[a.a]}(e))return function(e,t){return new r.a((function(n){var r=new o.a;return r.add(t.schedule((function(){var i=e[a.a]();r.add(i.subscribe({next:function(e){r.add(t.schedule((function(){return n.next(e)})))},error:function(e){r.add(t.schedule((function(){return n.error(e)})))},complete:function(){r.add(t.schedule((function(){return n.complete()})))}}))}))),r}))}(e,t);if(Object(c.a)(e))return function(e,t){return new r.a((function(n){var r=new o.a;return r.add(t.schedule((function(){return e.then((function(e){r.add(t.schedule((function(){n.next(e),r.add(t.schedule((function(){return n.complete()})))})))}),(function(e){r.add(t.schedule((function(){return n.error(e)})))}))}))),r}))}(e,t);if(Object(l.a)(e))return Object(s.a)(e,t);if(function(e){return e&&\"function\"==typeof e[u.a]}(e)||\"string\"==typeof e)return function(e,t){if(!e)throw new Error(\"Iterable cannot be null\");return new r.a((function(n){var r,i=new o.a;return i.add((function(){r&&\"function\"==typeof r.return&&r.return()})),i.add(t.schedule((function(){r=e[u.a](),i.add(t.schedule((function(){if(!n.closed){var e,t;try{var i=r.next();e=i.value,t=i.done}catch(o){return void n.error(o)}t?n.complete():(n.next(e),this.schedule())}})))}))),i}))}(e,t)}throw new TypeError((null!==e&&typeof e||e)+\" is not observable\")}(e,t):e instanceof r.a?e:new r.a(Object(i.a)(e))}n.d(t,\"a\",(function(){return h}))},DH7j:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return r}));var r=Array.isArray||function(e){return e&&\"number\"==typeof e.length}},DZdm:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return a}));var r=n(\"lJxs\"),i=n(\"tk/3\"),o=n(\"fXoL\"),a=function(){var e=function(){function e(t){_classCallCheck(this,e),this.http=t,this.baseUrl=\"/api/\"}return _createClass(e,[{key:\"getProducts\",value:function(){return this.http.get(this.baseUrl+\"products\")}},{key:\"saveOrder\",value:function(e){return this.http.post(this.baseUrl+\"orders\",e)}},{key:\"authenticate\",value:function(e,t){var n=this;return this.http.post(this.baseUrl+\"login\",{name:e,password:t}).pipe(Object(r.a)((function(e){return n.auth_token=e.success?e.token:null,e.success})))}},{key:\"saveProduct\",value:function(e){return this.http.post(this.baseUrl+\"products\",e,this.getOptions())}},{key:\"updateProduct\",value:function(e){return this.http.put(\"\".concat(this.baseUrl,\"products/\").concat(e.id),e,this.getOptions())}},{key:\"deleteProduct\",value:function(e){return this.http.delete(\"\".concat(this.baseUrl,\"products/\").concat(e),this.getOptions())}},{key:\"getOrders\",value:function(){return this.http.get(this.baseUrl+\"orders\",this.getOptions())}},{key:\"deleteOrder\",value:function(e){return this.http.delete(\"\".concat(this.baseUrl,\"orders/\").concat(e),this.getOptions())}},{key:\"updateOrder\",value:function(e){return this.http.put(\"\".concat(this.baseUrl,\"orders/\").concat(e.id),e,this.getOptions())}},{key:\"getOptions\",value:function(){return{headers:new i.c({Authorization:\"Bearer<\".concat(this.auth_token,\">\")})}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(o.Qb(i.a))},e.\\u0275prov=o.Fb({token:e,factory:e.\\u0275fac}),e}()},EY2u:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return i})),n.d(t,\"b\",(function(){return o}));var r=n(\"HDdC\"),i=new r.a((function(e){return e.complete()}));function o(e){return e?function(e){return new r.a((function(t){return e.schedule((function(){return t.complete()}))}))}(e):i}},GyhO:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return o}));var r=n(\"LRne\"),i=n(\"0EUg\");function o(){return Object(i.a)()(Object(r.a).apply(void 0,arguments))}},HDdC:function(e,t,n){\"use strict\";var r=n(\"7o/Q\"),i=n(\"2QA8\"),o=n(\"gRHU\"),a=n(\"kJWO\"),s=n(\"mCNh\"),u=n(\"2fFW\");n.d(t,\"a\",(function(){return l}));var c,l=((c=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var a=this.operator,s=function(e,t,n){if(e){if(e instanceof r.a)return e;if(e[i.a])return e[i.a]()}return e||t||n?new r.a(e,t,n):new r.a(o.a)}(e,t,n);if(s.add(a?a.call(s,this.source):this.source||u.a.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),u.a.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){u.a.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,i=t.destination,o=t.isStopped;if(n||o)return!1;e=i&&i instanceof r.a?i:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=h(t))((function(t,r){var i;i=n.subscribe((function(t){try{e(t)}catch(n){r(n),i&&i.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:a.a,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:Object(s.b)(t)(this)}},{key:\"toPromise\",value:function(e){var t=this;return new(e=h(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new c(e)},c);function h(e){if(e||(e=u.a.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}},I55L:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return r}));var r=function(e){return e&&\"number\"==typeof e.length&&\"function\"!=typeof e}},IzEk:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return a}));var r=n(\"7o/Q\"),i=n(\"4I5i\"),o=n(\"EY2u\");function a(e){return function(t){return 0===e?Object(o.b)():t.lift(new s(e))}}var s=function(){function e(t){if(_classCallCheck(this,e),this.total=t,this.total<0)throw new i.a}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new u(e,this.total))}}]),e}(),u=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).total=n,r.count=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t=this.total,n=++this.count;n<=t&&(this.destination.next(e),n===t&&(this.destination.complete(),this.unsubscribe()))}}]),t}(r.a)},KqfI:function(e,t,n){\"use strict\";function r(){}n.d(t,\"a\",(function(){return r}))},LRne:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return a}));var r=n(\"z+Ro\"),i=n(\"yCtX\"),o=n(\"jZKg\");function a(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var a=t[t.length-1];return Object(r.a)(a)?(t.pop(),Object(o.a)(t,a)):Object(i.a)(t)}},Lhse:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return r}));var r=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"},NJ4a:function(e,t,n){\"use strict\";function r(e){setTimeout((function(){throw e}),0)}n.d(t,\"a\",(function(){return r}))},NXyV:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return a}));var r=n(\"HDdC\"),i=n(\"Cfvw\"),o=n(\"EY2u\");function a(e){return new r.a((function(t){var n;try{n=e()}catch(r){return void t.error(r)}return(n?Object(i.a)(n):Object(o.b)()).subscribe(t)}))}},SeVD:function(e,t,n){\"use strict\";var r=n(\"ngJS\"),i=n(\"NJ4a\"),o=n(\"Lhse\"),a=n(\"kJWO\"),s=n(\"I55L\"),u=n(\"c2HN\"),c=n(\"XoHu\");n.d(t,\"a\",(function(){return l}));var l=function(e){if(e&&\"function\"==typeof e[a.a])return l=e,function(e){var t=l[a.a]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if(Object(s.a)(e))return Object(r.a)(e);if(Object(u.a)(e))return n=e,function(e){return n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,i.a),e};if(e&&\"function\"==typeof e[o.a])return t=e,function(e){for(var n=t[o.a]();;){var r=n.next();if(r.done){e.complete();break}if(e.next(r.value),e.closed)break}return\"function\"==typeof n.return&&e.add((function(){n.return&&n.return()})),e};var t,n,l,h=Object(c.a)(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(h,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")}},SpAZ:function(e,t,n){\"use strict\";function r(e){return e}n.d(t,\"a\",(function(){return r}))},VRyK:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return s}));var r=n(\"HDdC\"),i=n(\"z+Ro\"),o=n(\"bHdf\"),a=n(\"yCtX\");function s(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var s=Number.POSITIVE_INFINITY,u=null,c=t[t.length-1];return Object(i.a)(c)?(u=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(s=t.pop())):\"number\"==typeof c&&(s=t.pop()),null===u&&1===t.length&&t[0]instanceof r.a?t[0]:Object(o.a)(s)(Object(a.a)(t,u))}},XNiG:function(e,t,n){\"use strict\";var r=n(\"HDdC\"),i=n(\"7o/Q\"),o=n(\"quSY\"),a=n(\"9ppp\"),s=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(o.a),u=n(\"2QA8\");n.d(t,\"b\",(function(){return l})),n.d(t,\"a\",(function(){return h}));var c,l=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(i.a),h=((c=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:u.a,value:function(){return new l(this)}},{key:\"lift\",value:function(e){var t=new f(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new a.a;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),i=0;i<n;i++)r[i].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new a.a;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),i=0;i<n;i++)r[i].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new a.a;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new a.a;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new a.a;return this.hasError?(e.error(this.thrownError),o.a.EMPTY):this.isStopped?(e.complete(),o.a.EMPTY):(this.observers.push(e),new s(this,e))}},{key:\"asObservable\",value:function(){var e=new r.a;return e.source=this,e}}]),t}(r.a)).create=function(e,t){return new f(e,t)},c),f=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):o.a.EMPTY}}]),t}(h)},XoHu:function(e,t,n){\"use strict\";function r(e){return null!==e&&\"object\"==typeof e}n.d(t,\"a\",(function(){return r}))},ZUHj:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return a}));var r=n(\"51Dv\"),i=n(\"SeVD\"),o=n(\"HDdC\");function a(e,t,n,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new r.a(e,n,a);if(!s.closed)return t instanceof o.a?t.subscribe(s):Object(i.a)(t)(s)}},bHdf:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return o}));var r=n(\"5+tZ\"),i=n(\"SpAZ\");function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return Object(r.a)(i.a,e)}},bOdf:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return i}));var r=n(\"5+tZ\");function i(e,t){return Object(r.a)(e,t,1)}},c2HN:function(e,t,n){\"use strict\";function r(e){return!!e&&\"function\"!=typeof e.subscribe&&\"function\"==typeof e.then}n.d(t,\"a\",(function(){return r}))},eIep:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return u}));var r=n(\"l7GE\"),i=n(\"51Dv\"),o=n(\"ZUHj\"),a=n(\"lJxs\"),s=n(\"Cfvw\");function u(e,t){return\"function\"==typeof t?function(n){return n.pipe(u((function(n,r){return Object(s.a)(e(n,r)).pipe(Object(a.a)((function(e,i){return t(n,e,r,i)})))})))}:function(t){return t.lift(new c(e))}}var c=function(){function e(t){_classCallCheck(this,e),this.project=t}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new l(e,this.project))}}]),e}(),l=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=this.innerSubscription;r&&r.unsubscribe();var a=new i.a(this,t,n),s=this.destination;s.add(a),this.innerSubscription=Object(o.a)(this,e,void 0,void 0,a),this.innerSubscription!==a&&s.add(this.innerSubscription)}},{key:\"_complete\",value:function(){var e=this.innerSubscription;e&&!e.closed||_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this),this.unsubscribe()}},{key:\"_unsubscribe\",value:function(){this.innerSubscription=null}},{key:\"notifyComplete\",value:function(e){this.destination.remove(e),this.innerSubscription=null,this.isStopped&&_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"notifyNext\",value:function(e,t,n,r,i){this.destination.next(t)}}]),t}(r.a)},fXoL:function(e,t,n){\"use strict\";var r=n(\"XNiG\"),i=n(\"quSY\"),o=n(\"HDdC\"),a=n(\"VRyK\"),s=n(\"oB13\"),u=n(\"x+ZX\");function c(){return new r.a}function l(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function i(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof i)return r.apply(this,t),this;var o=_construct(i,t);return a.annotation=o,a;function a(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(o),e}}return n&&(i.prototype=Object.create(n.prototype)),i.prototype.ngMetadataName=e,i.annotationCls=i,i}n.d(t,\"a\",(function(){return ao})),n.d(t,\"b\",(function(){return Fs})),n.d(t,\"c\",(function(){return Ms})),n.d(t,\"d\",(function(){return Is})),n.d(t,\"e\",(function(){return Ns})),n.d(t,\"f\",(function(){return Ru})),n.d(t,\"g\",(function(){return ku})),n.d(t,\"h\",(function(){return qi})),n.d(t,\"i\",(function(){return Xs})),n.d(t,\"j\",(function(){return _a})),n.d(t,\"k\",(function(){return qs})),n.d(t,\"l\",(function(){return Ca})),n.d(t,\"m\",(function(){return en})),n.d(t,\"n\",(function(){return gs})),n.d(t,\"o\",(function(){return Q})),n.d(t,\"p\",(function(){return h})),n.d(t,\"q\",(function(){return Z})),n.d(t,\"r\",(function(){return oo})),n.d(t,\"s\",(function(){return Fa})),n.d(t,\"t\",(function(){return Ha})),n.d(t,\"u\",(function(){return zs})),n.d(t,\"v\",(function(){return se})),n.d(t,\"w\",(function(){return Ou})),n.d(t,\"x\",(function(){return ae})),n.d(t,\"y\",(function(){return yu})),n.d(t,\"z\",(function(){return tu})),n.d(t,\"A\",(function(){return f})),n.d(t,\"B\",(function(){return Us})),n.d(t,\"C\",(function(){return Vs})),n.d(t,\"D\",(function(){return Sa})),n.d(t,\"E\",(function(){return wa})),n.d(t,\"F\",(function(){return Oa})),n.d(t,\"G\",(function(){return xa})),n.d(t,\"H\",(function(){return zn})),n.d(t,\"I\",(function(){return v})),n.d(t,\"J\",(function(){return xu})),n.d(t,\"K\",(function(){return Ga})),n.d(t,\"L\",(function(){return cu})),n.d(t,\"M\",(function(){return Ta})),n.d(t,\"N\",(function(){return Za})),n.d(t,\"O\",(function(){return ve})),n.d(t,\"P\",(function(){return po})),n.d(t,\"Q\",(function(){return gu})),n.d(t,\"R\",(function(){return bn})),n.d(t,\"S\",(function(){return j})),n.d(t,\"T\",(function(){return mn})),n.d(t,\"U\",(function(){return Au})),n.d(t,\"V\",(function(){return hu})),n.d(t,\"W\",(function(){return Hs})),n.d(t,\"X\",(function(){return Gi})),n.d(t,\"Y\",(function(){return us})),n.d(t,\"Z\",(function(){return Fn})),n.d(t,\"ab\",(function(){return Gn})),n.d(t,\"bb\",(function(){return wn})),n.d(t,\"cb\",(function(){return cn})),n.d(t,\"db\",(function(){return hn})),n.d(t,\"eb\",(function(){return pn})),n.d(t,\"fb\",(function(){return dn})),n.d(t,\"gb\",(function(){return fn})),n.d(t,\"hb\",(function(){return vn})),n.d(t,\"ib\",(function(){return is})),n.d(t,\"jb\",(function(){return Pu})),n.d(t,\"kb\",(function(){return os})),n.d(t,\"lb\",(function(){return as})),n.d(t,\"mb\",(function(){return ln})),n.d(t,\"nb\",(function(){return U})),n.d(t,\"ob\",(function(){return yo})),n.d(t,\"pb\",(function(){return Mo})),n.d(t,\"qb\",(function(){return No})),n.d(t,\"rb\",(function(){return vo})),n.d(t,\"sb\",(function(){return rs})),n.d(t,\"tb\",(function(){return mt})),n.d(t,\"ub\",(function(){return T})),n.d(t,\"vb\",(function(){return un})),n.d(t,\"wb\",(function(){return ea})),n.d(t,\"xb\",(function(){return aa})),n.d(t,\"yb\",(function(){return ga})),n.d(t,\"zb\",(function(){return mr})),n.d(t,\"Ab\",(function(){return ko})),n.d(t,\"Bb\",(function(){return qo})),n.d(t,\"Cb\",(function(){return Ps})),n.d(t,\"Db\",(function(){return be})),n.d(t,\"Eb\",(function(){return Ee})),n.d(t,\"Fb\",(function(){return m})),n.d(t,\"Gb\",(function(){return b})),n.d(t,\"Hb\",(function(){return we})),n.d(t,\"Ib\",(function(){return xe})),n.d(t,\"Jb\",(function(){return So})),n.d(t,\"Kb\",(function(){return Ro})),n.d(t,\"Lb\",(function(){return jo})),n.d(t,\"Mb\",(function(){return Ao})),n.d(t,\"Nb\",(function(){return Io})),n.d(t,\"Ob\",(function(){return Kt})),n.d(t,\"Pb\",(function(){return $o})),n.d(t,\"Qb\",(function(){return ne})),n.d(t,\"Rb\",(function(){return Eo})),n.d(t,\"Sb\",(function(){return Rs})),n.d(t,\"Tb\",(function(){return xo})),n.d(t,\"Ub\",(function(){return Do})),n.d(t,\"Vb\",(function(){return As})),n.d(t,\"Wb\",(function(){return Uo})),n.d(t,\"Xb\",(function(){return ps})),n.d(t,\"Yb\",(function(){return ys})),n.d(t,\"Zb\",(function(){return To})),n.d(t,\"ac\",(function(){return vs})),n.d(t,\"bc\",(function(){return Ts})),n.d(t,\"cc\",(function(){return Oo})),n.d(t,\"dc\",(function(){return ze})),n.d(t,\"ec\",(function(){return Wn})),n.d(t,\"fc\",(function(){return Oe})),n.d(t,\"gc\",(function(){return wo})),n.d(t,\"hc\",(function(){return Qo})),n.d(t,\"ic\",(function(){return Jo})),n.d(t,\"jc\",(function(){return Ko})),n.d(t,\"kc\",(function(){return Xo}));var h=l(\"Inject\",(function(e){return{token:e}})),f=l(\"Optional\"),d=l(\"Self\"),v=l(\"SkipSelf\"),p=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function y(e){for(var t in e)if(e[t]===y)return t;throw Error(\"Could not find renamed property on target object.\")}function g(e,t){for(var n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function m(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function b(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function _(e){return C(e,e[w])||C(e,e[E])}function C(e,t){return t&&t.token===e?t:null}function k(e){return e&&(e.hasOwnProperty(O)||e.hasOwnProperty(x))?e[O]:null}var w=y({\"\\u0275prov\":y}),O=y({\"\\u0275inj\":y}),S=y({\"\\u0275provFallback\":y}),E=y({ngInjectableDef:y}),x=y({ngInjectorDef:y});function T(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(T).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function P(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var A=y({__forward_ref__:y});function j(e){return e.__forward_ref__=j,e.toString=function(){return T(this())},e}function R(e){return I(e)?e():e}function I(e){return\"function\"==typeof e&&e.hasOwnProperty(A)&&e.__forward_ref__===j}var N,M=\"undefined\"!=typeof globalThis&&globalThis,D=\"undefined\"!=typeof window&&window,L=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,V=\"undefined\"!=typeof global&&global,U=M||V||D||L,F=y({\"\\u0275cmp\":y}),H=y({\"\\u0275dir\":y}),z=y({\"\\u0275pipe\":y}),q=y({\"\\u0275mod\":y}),B=y({\"\\u0275loc\":y}),G=y({\"\\u0275fac\":y}),W=y({__NG_ELEMENT_ID__:y}),Z=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=m({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Q=new Z(\"INJECTOR\",-1),J={},K=/\\n/gm,X=y({provide:String,useValue:y}),$=void 0;function Y(e){var t=$;return $=e,t}function ee(e){var t=N;return N=e,t}function te(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p.Default;if(void 0===$)throw new Error(\"inject() must be called from an injection context\");return null===$?re(e,void 0,t):$.get(e,t&p.Optional?null:void 0,t)}function ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p.Default;return(N||te)(R(e),t)}function re(e,t,n){var r=_(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&p.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(T(e),\"]\"))}function ie(e){for(var t=[],n=0;n<e.length;n++){var r=R(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var i=void 0,o=p.Default,a=0;a<r.length;a++){var s=r[a];s instanceof f||\"Optional\"===s.ngMetadataName||s===f?o|=p.Optional:s instanceof v||\"SkipSelf\"===s.ngMetadataName||s===v?o|=p.SkipSelf:s instanceof d||\"Self\"===s.ngMetadataName||s===d?o|=p.Self:i=s instanceof h||s===h?s.token:s}t.push(ne(i,o))}else t.push(ne(r))}return t}var oe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:J;if(t===J){var n=new Error(\"NullInjectorError: No provider for \".concat(T(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),ae=function e(){_classCallCheck(this,e)},se=function e(){_classCallCheck(this,e)};function ue(e,t){e.forEach((function(e){return Array.isArray(e)?ue(e,t):t(e)}))}function ce(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function le(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function he(e,t){var n=fe(e,t);if(n>=0)return e[1|n]}function fe(e,t){return function(e,t,n){for(var r=0,i=e.length>>1;i!==r;){var o=r+(i-r>>1),a=e[o<<1];if(t===a)return o<<1;a>t?i=o:r=o+1}return~(i<<1)}(e,t)}var de=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),ve=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function pe(e){return\"\"+{toString:e}}var ye={},ge=[],me=0;function be(e){var t=e.type,n=t.prototype,r={},i={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===de.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||ge,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||ve.Emulated,id:\"c\",styles:e.styles||ge,_:null,setInput:null,schemas:e.schemas||null,tView:null};return i._=pe((function(){var t=e.directives,n=e.features,o=e.pipes;i.id+=me++,i.inputs=Se(e.inputs,r),i.outputs=Se(e.outputs),n&&n.forEach((function(e){return e(i)})),i.directiveDefs=t?function(){return(\"function\"==typeof t?t():t).map(_e)}:null,i.pipeDefs=o?function(){return(\"function\"==typeof o?o():o).map(Ce)}:null})),i}function _e(e){return Te(e)||function(e){return e[H]||null}(e)}function Ce(e){return function(e){return e[z]||null}(e)}var ke={};function we(e){var t={type:e.type,bootstrap:e.bootstrap||ge,declarations:e.declarations||ge,imports:e.imports||ge,exports:e.exports||ge,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&pe((function(){ke[e.id]=e.type})),t}function Oe(e,t){return pe((function(){var n=Ae(e,!0);n.declarations=t.declarations||ge,n.imports=t.imports||ge,n.exports=t.exports||ge}))}function Se(e,t){if(null==e)return ye;var n={};for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],o=i;Array.isArray(i)&&(o=i[1],i=i[0]),n[i]=r,t&&(t[i]=o)}return n}var Ee=be;function xe(e){return{type:e.type,name:e.name,factory:null,pure:!1!==e.pure,onDestroy:e.type.prototype.ngOnDestroy||null}}function Te(e){return e[F]||null}function Pe(e,t){return e.hasOwnProperty(G)?e[G]:null}function Ae(e,t){var n=e[q]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(T(e),\" does not have '\\u0275mod' property.\"));return n}function je(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function Re(e){return Array.isArray(e)&&!0===e[1]}function Ie(e){return 0!=(8&e.flags)}function Ne(e){return 2==(2&e.flags)}function Me(e){return 1==(1&e.flags)}function De(e){return null!==e.template}function Le(e){return 0!=(512&e[2])}var Ve={lFrame:it(null),bindingsEnabled:!0,checkNoChangesMode:!1};function Ue(){return Ve.bindingsEnabled}function Fe(){return Ve.lFrame.lView}function He(){return Ve.lFrame.tView}function ze(e){Ve.lFrame.contextLView=e}function qe(){return Ve.lFrame.previousOrParentTNode}function Be(e,t){Ve.lFrame.previousOrParentTNode=e,Ve.lFrame.isParent=t}function Ge(){return Ve.lFrame.isParent}function We(){return Ve.checkNoChangesMode}function Ze(e){Ve.checkNoChangesMode=e}function Qe(){var e=Ve.lFrame,t=e.bindingRootIndex;return-1===t&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function Je(){return Ve.lFrame.bindingIndex}function Ke(){return Ve.lFrame.bindingIndex++}function Xe(e){var t=Ve.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}function $e(e,t){var n=Ve.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function Ye(){return Ve.lFrame.currentQueryIndex}function et(e){Ve.lFrame.currentQueryIndex=e}function tt(e,t){var n=rt();Ve.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function nt(e,t){var n=rt(),r=e[1];Ve.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function rt(){var e=Ve.lFrame,t=null===e?null:e.child;return null===t?it(e):t}function it(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function ot(){var e=Ve.lFrame;return Ve.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var at=ot;function st(){var e=ot();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function ut(){return Ve.lFrame.selectedIndex}function ct(e){Ve.lFrame.selectedIndex=e}function lt(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var i=e.data[n];i.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,i.afterContentInit),i.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,i.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,i.afterContentChecked)),i.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,i.afterViewInit),i.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,i.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,i.afterViewChecked)),null!=i.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,i.onDestroy)}}function ht(e,t,n){vt(e,t,3,n)}function ft(e,t,n,r){(3&e[2])===n&&vt(e,t,n,r)}function dt(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function vt(e,t,n,r){for(var i=null!=r?r:-1,o=0,a=void 0!==r?65535&e[18]:0;a<t.length;a++)if(\"number\"==typeof t[a+1]){if(o=t[a],null!=r&&o>=r)break}else t[a]<0&&(e[18]+=65536),(o<i||-1==i)&&(pt(e,n,t,a),e[18]=(4294901760&e[18])+a+2),a++}function pt(e,t,n,r){var i=n[r]<0,o=n[r+1],a=e[i?-n[r]:n[r]];i?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,o.call(a)):o.call(a)}var yt=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},gt=void 0;function mt(e){gt=e}function bt(e){return!!e.listen}var _t={createRenderer:function(e,t){return void 0!==gt?gt:\"undefined\"!=typeof document?document:void 0}};function Ct(e,t,n){for(var r=bt(e),i=0;i<n.length;){var o=n[i];if(\"number\"==typeof o){if(0!==o)break;i++;var a=n[i++],s=n[i++],u=n[i++];r?e.setAttribute(t,s,u,a):t.setAttributeNS(a,s,u)}else{var c=o,l=n[++i];wt(c)?r&&e.setProperty(t,c,l):r?e.setAttribute(t,c,l):t.setAttribute(c,l),i++}}return i}function kt(e){return 3===e||4===e||6===e}function wt(e){return 64===e.charCodeAt(0)}function Ot(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var i=t[r];\"number\"==typeof i?n=i:0===n||St(e,n,i,null,-1===n||2===n?t[++r]:null)}return e}function St(e,t,n,r,i){var o=0,a=e.length;if(-1===t)a=-1;else for(;o<e.length;){var s=e[o++];if(\"number\"==typeof s){if(s===t){a=-1;break}if(s>t){a=o-1;break}}}for(;o<e.length;){var u=e[o];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==i&&(e[o+1]=i));if(r===e[o+1])return void(e[o+2]=i)}o++,null!==r&&o++,null!==i&&o++}-1!==a&&(e.splice(a,0,t),o=a+1),e.splice(o++,0,n),null!==r&&e.splice(o++,0,r),null!==i&&e.splice(o++,0,i)}function Et(e){return-1!==e}function xt(e){return 32767&e}function Tt(e){return e>>16}function Pt(e,t){for(var n=Tt(e),r=t;n>0;)r=r[15],n--;return r}function At(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}function jt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():At(e)}var Rt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(U);function It(e){return e instanceof Function?e():e}var Nt=!0;function Mt(e){var t=Nt;return Nt=e,t}var Dt=0;function Lt(e,t){var n=Ut(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,Vt(r.data,e),Vt(t,null),Vt(r.blueprint,null));var i=Ft(e,t),o=e.injectorIndex;if(Et(i))for(var a=xt(i),s=Pt(i,t),u=s[1].data,c=0;c<8;c++)t[o+c]=s[a+c]|u[a+c];return t[o+8]=i,o}function Vt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Ft(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Ht(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[W]:n.charCodeAt(0)||0;null==r&&(r=n[W]=Dt++);var i=255&r,o=1<<i,a=64&i,s=32&i,u=t.data;128&i?a?s?u[e+7]|=o:u[e+6]|=o:s?u[e+5]|=o:u[e+4]|=o:a?s?u[e+3]|=o:u[e+2]|=o:s?u[e+1]|=o:u[e]|=o}(e,t,n)}function zt(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:p.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==e){var o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[W];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){tt(t,e);try{var a=o();if(null!=a||r&p.Optional)return a;throw new Error(\"No provider for \".concat(jt(n),\"!\"))}finally{at()}}else if(\"number\"==typeof o){if(-1===o)return new Jt(e,t);var s=null,u=Ut(e,t),c=-1,l=r&p.Host?t[16][6]:null;for((-1===u||r&p.SkipSelf)&&(c=-1===u?Ft(e,t):t[u+8],Qt(r,!1)?(s=t[1],u=xt(c),t=Pt(c,t)):u=-1);-1!==u;){c=t[u+8];var h=t[1];if(Zt(o,u,h.data)){var f=Bt(u,t,n,s,r,l);if(f!==qt)return f}Qt(r,t[1].data[u+8]===l)&&Zt(o,u,t)?(s=h,u=xt(c),t=Pt(c,t)):u=-1}}}if(r&p.Optional&&void 0===i&&(i=null),0==(r&(p.Self|p.Host))){var d=t[9],v=ee(void 0);try{return d?d.get(n,i,r&p.Optional):re(n,i,r&p.Optional)}finally{ee(v)}}if(r&p.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(jt(n),\"]\"))}var qt={};function Bt(e,t,n,r,i,o){var a=t[1],s=a.data[e+8],u=Gt(s,a,n,null==r?Ne(s)&&Nt:r!=a&&3===s.type,i&p.Host&&o===s);return null!==u?Wt(t,a,u,s):qt}function Gt(e,t,n,r,i){for(var o=e.providerIndexes,a=t.data,s=65535&o,u=e.directiveStart,c=o>>16,l=i?s+c:e.directiveEnd,h=r?s:s+c;h<l;h++){var f=a[h];if(h<u&&n===f||h>=u&&f.type===n)return h}if(i){var d=a[u];if(d&&De(d)&&d.type===n)return u}return null}function Wt(e,t,n,r){var i=e[n],o=t.data;if(i instanceof yt){var a=i;if(a.resolving)throw new Error(\"Circular dep for \".concat(jt(o[n])));var s,u=Mt(a.canSeeViewProviders);a.resolving=!0,a.injectImpl&&(s=ee(a.injectImpl)),tt(e,r);try{i=e[n]=a.factory(void 0,o,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,i=t.onInit,o=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),i&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,i),o&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,o))}(n,o[n],t)}finally{a.injectImpl&&ee(s),Mt(u),a.resolving=!1,at()}}return i}function Zt(e,t,n){var r=64&e,i=32&e;return!!((128&e?r?i?n[t+7]:n[t+6]:i?n[t+5]:n[t+4]:r?i?n[t+3]:n[t+2]:i?n[t+1]:n[t])&1<<e)}function Qt(e,t){return!(e&p.Self||e&p.Host&&t)}var Jt=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(e,t){return zt(this._tNode,this._lView,e,void 0,t)}}]),e}();function Kt(e){var t=Object.getPrototypeOf(e.prototype).constructor,n=t[G]||function e(t){var n=t;if(I(t))return function(){var t=e(R(n));return t?t():null};var r=Pe(n);if(null===r){var i=k(n);r=i&&i.factory}return r||null}(t);return null!==n?n:function(e){return new e}}function Xt(e){return e.ngDebugContext}function $t(e){return e.ngOriginalError}function Yt(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var en=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||Yt}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?Xt(e)?Xt(e):this._findContext($t(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=$t(e);t&&$t(t);)t=$t(t);return t}}]),e}(),tn=function(){function e(t){_classCallCheck(this,e),this.changingThisBreaksApplicationSecurity=t}return _createClass(e,[{key:\"toString\",value:function(){return\"SafeValue must use [property]=binding: \".concat(this.changingThisBreaksApplicationSecurity)+\" (see http://g.co/ng/security#xss)\"}}]),e}(),nn=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getTypeName\",value:function(){return\"HTML\"}}]),t}(tn),rn=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getTypeName\",value:function(){return\"Style\"}}]),t}(tn),on=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getTypeName\",value:function(){return\"Script\"}}]),t}(tn),an=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getTypeName\",value:function(){return\"URL\"}}]),t}(tn),sn=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getTypeName\",value:function(){return\"ResourceURL\"}}]),t}(tn);function un(e){return e instanceof tn?e.changingThisBreaksApplicationSecurity:e}function cn(e,t){var n=ln(e);if(null!=n&&n!==t){if(\"ResourceURL\"===n&&\"URL\"===t)return!0;throw new Error(\"Required a safe \".concat(t,\", got a \").concat(n,\" (see http://g.co/ng/security#xss)\"))}return n===t}function ln(e){return e instanceof tn&&e.getTypeName()||null}function hn(e){return new nn(e)}function fn(e){return new rn(e)}function dn(e){return new on(e)}function vn(e){return new an(e)}function pn(e){return new sn(e)}var yn=!0,gn=!1;function mn(){return gn=!0,yn}function bn(){if(gn)throw new Error(\"Cannot enable prod mode after platform setup.\");yn=!1}var _n=function(){function e(t){_classCallCheck(this,e),this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument(\"sanitization-inert\");var n=this.inertDocument.body;if(null==n){var r=this.inertDocument.createElement(\"html\");this.inertDocument.appendChild(r),n=this.inertDocument.createElement(\"body\"),r.appendChild(n)}n.innerHTML='<svg><g onload=\"this.parentNode.remove()\"></g></svg>',!n.querySelector||n.querySelector(\"svg\")?(n.innerHTML='<svg><p><style><img src=\"</style><img src=x onerror=alert(1)//\">',this.getInertBodyElement=n.querySelector&&n.querySelector(\"svg img\")&&function(){try{return!!window.DOMParser}catch(e){return!1}}()?this.getInertBodyElement_DOMParser:this.getInertBodyElement_InertDocument):this.getInertBodyElement=this.getInertBodyElement_XHR}return _createClass(e,[{key:\"getInertBodyElement_XHR\",value:function(e){e=\"<body><remove></remove>\"+e+\"</body>\";try{e=encodeURI(e)}catch(r){return null}var t=new XMLHttpRequest;t.responseType=\"document\",t.open(\"GET\",\"data:text/html;charset=utf-8,\"+e,!1),t.send(void 0);var n=t.response.body;return n.removeChild(n.firstChild),n}},{key:\"getInertBodyElement_DOMParser\",value:function(e){e=\"<body><remove></remove>\"+e+\"</body>\";try{var t=(new window.DOMParser).parseFromString(e,\"text/html\").body;return t.removeChild(t.firstChild),t}catch(n){return null}}},{key:\"getInertBodyElement_InertDocument\",value:function(e){var t=this.inertDocument.createElement(\"template\");if(\"content\"in t)return t.innerHTML=e,t;var n=this.inertDocument.createElement(\"body\");return n.innerHTML=e,this.defaultDoc.documentMode&&this.stripCustomNsAttrs(n),n}},{key:\"stripCustomNsAttrs\",value:function(e){for(var t=e.attributes,n=t.length-1;0<n;n--){var r=t.item(n).name;\"xmlns:ns1\"!==r&&0!==r.indexOf(\"ns1:\")||e.removeAttribute(r)}for(var i=e.firstChild;i;)i.nodeType===Node.ELEMENT_NODE&&this.stripCustomNsAttrs(i),i=i.nextSibling}}]),e}(),Cn=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,kn=/^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\\/]+=*$/i;function wn(e){return(e=String(e)).match(Cn)||e.match(kn)?e:(mn()&&console.warn(\"WARNING: sanitizing unsafe URL value \".concat(e,\" (see http://g.co/ng/security#xss)\")),\"unsafe:\"+e)}function On(e){var t={},n=!0,r=!1,i=void 0;try{for(var o,a=e.split(\",\")[Symbol.iterator]();!(n=(o=a.next()).done);n=!0){t[o.value]=!0}}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return t}function Sn(){for(var e={},t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];for(var i=0,o=n;i<o.length;i++){var a=o[i];for(var s in a)a.hasOwnProperty(s)&&(e[s]=!0)}return e}var En,xn=On(\"area,br,col,hr,img,wbr\"),Tn=On(\"colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr\"),Pn=On(\"rp,rt\"),An=Sn(Pn,Tn),jn=Sn(xn,Sn(Tn,On(\"address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul\")),Sn(Pn,On(\"a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video\")),An),Rn=On(\"background,cite,href,itemtype,longdesc,poster,src,xlink:href\"),In=On(\"srcset\"),Nn=Sn(Rn,In,On(\"abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width\"),On(\"aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext\")),Mn=On(\"script,style,template\"),Dn=function(){function e(){_classCallCheck(this,e),this.sanitizedSomething=!1,this.buf=[]}return _createClass(e,[{key:\"sanitizeChildren\",value:function(e){for(var t=e.firstChild,n=!0;t;)if(t.nodeType===Node.ELEMENT_NODE?n=this.startElement(t):t.nodeType===Node.TEXT_NODE?this.chars(t.nodeValue):this.sanitizedSomething=!0,n&&t.firstChild)t=t.firstChild;else for(;t;){t.nodeType===Node.ELEMENT_NODE&&this.endElement(t);var r=this.checkClobberedElement(t,t.nextSibling);if(r){t=r;break}t=this.checkClobberedElement(t,t.parentNode)}return this.buf.join(\"\")}},{key:\"startElement\",value:function(e){var t=e.nodeName.toLowerCase();if(!jn.hasOwnProperty(t))return this.sanitizedSomething=!0,!Mn.hasOwnProperty(t);this.buf.push(\"<\"),this.buf.push(t);for(var n,r=e.attributes,i=0;i<r.length;i++){var o=r.item(i),a=o.name,s=a.toLowerCase();if(Nn.hasOwnProperty(s)){var u=o.value;Rn[s]&&(u=wn(u)),In[s]&&(n=u,u=(n=String(n)).split(\",\").map((function(e){return wn(e.trim())})).join(\", \")),this.buf.push(\" \",a,'=\"',Un(u),'\"')}else this.sanitizedSomething=!0}return this.buf.push(\">\"),!0}},{key:\"endElement\",value:function(e){var t=e.nodeName.toLowerCase();jn.hasOwnProperty(t)&&!xn.hasOwnProperty(t)&&(this.buf.push(\"</\"),this.buf.push(t),this.buf.push(\">\"))}},{key:\"chars\",value:function(e){this.buf.push(Un(e))}},{key:\"checkClobberedElement\",value:function(e,t){if(t&&(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(\"Failed to sanitize html because the element is clobbered: \".concat(e.outerHTML));return t}}]),e}(),Ln=/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g,Vn=/([^\\#-~ |!])/g;function Un(e){return e.replace(/&/g,\"&amp;\").replace(Ln,(function(e){return\"&#\"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+\";\"})).replace(Vn,(function(e){return\"&#\"+e.charCodeAt(0)+\";\"})).replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")}function Fn(e,t){var n=null;try{En=En||new _n(e);var r=t?String(t):\"\";n=En.getInertBodyElement(r);var i=5,o=r;do{if(0===i)throw new Error(\"Failed to sanitize html because the input is unstable\");i--,r=o,o=n.innerHTML,n=En.getInertBodyElement(r)}while(r!==o);var a=new Dn,s=a.sanitizeChildren(Hn(n)||n);return mn()&&a.sanitizedSomething&&console.warn(\"WARNING: sanitizing HTML stripped some content, see http://g.co/ng/security#xss\"),s}finally{if(n)for(var u=Hn(n)||n;u.firstChild;)u.removeChild(u.firstChild)}}function Hn(e){return\"content\"in e&&function(e){return e.nodeType===Node.ELEMENT_NODE&&\"TEMPLATE\"===e.nodeName}(e)?e.content:null}var zn=function(){var e={NONE:0,HTML:1,STYLE:2,SCRIPT:3,URL:4,RESOURCE_URL:5};return e[e.NONE]=\"NONE\",e[e.HTML]=\"HTML\",e[e.STYLE]=\"STYLE\",e[e.SCRIPT]=\"SCRIPT\",e[e.URL]=\"URL\",e[e.RESOURCE_URL]=\"RESOURCE_URL\",e}(),qn=new RegExp(\"^([-,.\\\"'%_!# a-zA-Z0-9]+|(?:(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|Z|3d)?|(?:rgb|hsl)a?|(?:repeating-)?(?:linear|radial)-gradient|(?:attr|calc|var))\\\\([-0-9.%, #a-zA-Z]+\\\\))$\",\"g\"),Bn=/^url\\(([^)]+)\\)$/;function Gn(e){if(!(e=String(e).trim()))return\"\";var t=e.match(Bn);return t&&wn(t[1])===t[1]||e.match(qn)&&function(e){for(var t=!0,n=!0,r=0;r<e.length;r++){var i=e.charAt(r);\"'\"===i&&n?t=!t:'\"'===i&&t&&(n=!n)}return t&&n}(e)?e:(mn()&&console.warn(\"WARNING: sanitizing unsafe style value \".concat(e,\" (see http://g.co/ng/security#xss).\")),\"unsafe\")}function Wn(e){var t,n=(t=Fe())&&t[12];return n?n.sanitize(zn.URL,e)||\"\":cn(e,\"URL\")?un(e):wn(At(e))}function Zn(e){for(;Array.isArray(e);)e=e[0];return e}function Qn(e,t){return Zn(t[e+19])}function Jn(e,t){return Zn(t[e.index])}function Kn(e,t){return e.data[t+19]}function Xn(e,t){return e[t+19]}function $n(e,t){var n=t[e];return je(n)?n:n[0]}function Yn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function er(e){return 4==(4&e[2])}function tr(e){return 128==(128&e[2])}function nr(e,t){return null===e||null==t?null:e[t]}function rr(e){e[18]=0}function ir(e,t){e.__ngContext__=t}function or(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function ar(){throw new Error(\"Cannot mix multi providers and regular providers\")}function sr(e,t,n){for(var r=e.length;;){var i=e.indexOf(t,n);if(-1===i)return i;if(0===i||e.charCodeAt(i-1)<=32){var o=t.length;if(i+o===r||e.charCodeAt(i+o)<=32)return i}n=i+1}}function ur(e,t,n){for(var r=0;r<e.length;){var i=e[r++];if(n&&\"class\"===i){if(-1!==sr((i=e[r]).toLowerCase(),t,0))return!0}else if(1===i){for(;r<e.length&&\"string\"==typeof(i=e[r++]);)if(i.toLowerCase()===t)return!0;return!1}}return!1}function cr(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function lr(e,t,n){for(var r=4,i=e.attrs||[],o=function(e){for(var t=0;t<e.length;t++)if(kt(e[t]))return t;return e.length}(i),a=!1,s=0;s<t.length;s++){var u=t[s];if(\"number\"!=typeof u){if(!a)if(4&r){if(r=2|1&r,\"\"!==u&&!cr(e,u,n)||\"\"===u&&1===t.length){if(hr(r))return!1;a=!0}}else{var c=8&r?u:t[++s];if(8&r&&null!==e.attrs){if(!ur(e.attrs,c,n)){if(hr(r))return!1;a=!0}continue}var l=fr(8&r?\"class\":u,i,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===l){if(hr(r))return!1;a=!0;continue}if(\"\"!==c){var h;h=l>o?\"\":i[l+1].toLowerCase();var f=8&r?h:null;if(f&&-1!==sr(f,c,0)||2&r&&c!==h){if(hr(r))return!1;a=!0}}}}else{if(!a&&!hr(r)&&!hr(u))return!1;if(a&&hr(u))continue;a=!1,r=u|1&r}}return hr(r)||a}function hr(e){return 0==(1&e)}function fr(e,t,n,r){if(null===t)return-1;var i=0;if(r||!n){for(var o=!1;i<t.length;){var a=t[i];if(a===e)return i;if(3===a||6===a)o=!0;else{if(1===a||2===a){for(var s=t[++i];\"string\"==typeof s;)s=t[++i];continue}if(4===a)break;if(0===a){i+=4;continue}}i+=o?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function dr(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(lr(e,t[r],n))return!0;return!1}function vr(e,t){return e?\":not(\"+t.trim()+\")\":t}function pr(e){for(var t=e[0],n=1,r=2,i=\"\",o=!1;n<e.length;){var a=e[n];if(\"string\"==typeof a)if(2&r){var s=e[++n];i+=\"[\"+a+(s.length>0?'=\"'+s+'\"':\"\")+\"]\"}else 8&r?i+=\".\"+a:4&r&&(i+=\" \"+a);else\"\"===i||hr(a)||(t+=vr(o,i),i=\"\"),r=a,o=o||!hr(r);n++}return\"\"!==i&&(t+=vr(o,i)),t}var yr={};function gr(e){var t=e[3];return Re(t)?t[3]:t}function mr(e){br(He(),Fe(),ut()+e,We())}function br(e,t,n,r){if(!r)if(3==(3&t[2])){var i=e.preOrderCheckHooks;null!==i&&ht(t,i,n)}else{var o=e.preOrderHooks;null!==o&&ft(t,o,0,n)}ct(n)}function _r(e,t){return e<<17|t<<2}function Cr(e){return e>>17&32767}function kr(e){return 2|e}function wr(e){return(131068&e)>>2}function Or(e,t){return-131069&e|t<<2}function Sr(e){return 1|e}function Er(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var i=n[r],o=n[r+1];if(-1!==o){var a=e.data[o];et(i),a.contentQueries(2,t[o],o)}}}function xr(e,t,n){return bt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Tr(e,t,n,r,i,o,a,s,u,c){var l=t.blueprint.slice();return l[0]=i,l[2]=140|r,rr(l),l[3]=l[15]=e,l[8]=n,l[10]=a||e&&e[10],l[11]=s||e&&e[11],l[12]=u||e&&e[12]||null,l[9]=c||e&&e[9]||null,l[6]=o,l[16]=2==t.type?e[16]:l,l}function Pr(e,t,n,r,i,o){var a=n+19,s=e.data[a]||function(e,t,n,r,i,o){var a=qe(),s=Ge(),u=s?a:a&&a.parent,c=e.data[n]=Vr(0,u&&u!==t?u:null,r,n,i,o);return null===e.firstChild&&(e.firstChild=c),a&&(!s||null!=a.child||null===c.parent&&2!==a.type?s||(a.next=c):a.child=c),c}(e,t,a,r,i,o);return Be(s,!0),s}function Ar(e,t,n){nt(t,t[6]);try{var r=e.viewQuery;null!==r&&si(1,r,n);var i=e.template;null!==i&&Ir(e,t,i,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Er(e,t),e.staticViewQueries&&si(2,e.viewQuery,n);var o=e.components;null!==o&&function(e,t){for(var n=0;n<t.length;n++)ni(e,t[n])}(t,o)}finally{t[2]&=-5,st()}}function jr(e,t,n,r){var i=t[2];if(256!=(256&i)){nt(t,t[6]);var o=We();try{rr(t),Ve.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Ir(e,t,n,2,r);var a=3==(3&i);if(!o)if(a){var s=e.preOrderCheckHooks;null!==s&&ht(t,s,null)}else{var u=e.preOrderHooks;null!==u&&ft(t,u,0,null),dt(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(Re(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var i=t[r],o=i[1];tr(i)&&jr(o,i,o.template,i[8])}0!=(1&n)&&ei(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Er(e,t),!o)if(a){var c=e.contentCheckHooks;null!==c&&ht(t,c)}else{var l=e.contentHooks;null!==l&&ft(t,l,1),dt(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,i=-1,o=0;o<n.length;o++){var a=n[o];\"number\"==typeof a?a<=0?(ct(0-a),i=r+=9+n[++o]):r+=a:(null!==a&&($e(r,i),a(2,t[i])),i++)}}finally{ct(-1)}}(e,t);var h=e.components;null!==h&&function(e,t){for(var n=0;n<t.length;n++)ti(e,t[n])}(t,h);var f=e.viewQuery;if(null!==f&&si(2,f,r),!o)if(a){var d=e.viewCheckHooks;null!==d&&ht(t,d)}else{var v=e.viewHooks;null!==v&&ft(t,v,2),dt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),o||(t[2]&=-73)}finally{st()}}}function Rr(e,t,n,r){var i=t[10],o=!We(),a=er(t);try{o&&!a&&i.begin&&i.begin(),a&&Ar(e,t,r),jr(e,t,n,r)}finally{o&&!a&&i.end&&i.end()}}function Ir(e,t,n,r,i){var o=ut();try{ct(-1),2&r&&t.length>19&&br(e,t,0,We()),n(r,i)}finally{ct(o)}}function Nr(e,t,n){Ue()&&(function(e,t,n,r){var i=n.directiveStart,o=n.directiveEnd;e.firstCreatePass||Lt(n,t),ir(r,t);for(var a=n.initialInputs,s=i;s<o;s++){var u=e.data[s],c=De(u);c&&Kr(t,n,u);var l=Wt(t,e,s,n);ir(l,t),null!==a&&Xr(0,s-i,l,u,0,a),c&&($n(n.index,t)[8]=l)}}(e,t,n,Jn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,i=n.directiveEnd,o=e.expandoInstructions,a=e.firstCreatePass,s=n.index-19;try{ct(s);for(var u=r;u<i;u++){var c=e.data[u],l=t[u];null!==c.hostBindings||0!==c.hostVars||null!==c.hostAttrs?Br(c,l):a&&o.push(null)}}finally{ct(-1)}}(e,t,n))}function Mr(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Jn,r=t.localNames;if(null!==r)for(var i=t.index+1,o=0;o<r.length;o+=2){var a=r[o+1],s=-1===a?n(t,e):e[a];e[i++]=s}}function Dr(e){return e.tView||(e.tView=Lr(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Lr(e,t,n,r,i,o,a,s,u,c){var l=19+r,h=l+i,f=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:yr);return n}(l,h);return f[1]={type:e,id:t,blueprint:f,template:n,queries:null,viewQuery:s,node:null,data:f.slice().fill(null,l),bindingStartIndex:l,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof o?o():o,pipeRegistry:\"function\"==typeof a?a():a,firstChild:null,schemas:u,consts:c}}function Vr(e,t,n,r,i,o){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:i,attrs:o,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ur(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var i=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,i):n[r]=[t,i]}return n}function Fr(e,t,n,r,i,o,a,s){var u,c,l=Qn(n,t),h=Kn(e,n),f=h.inputs;if(!a&&null!=f&&(u=f[r]))fi(e,t,u,r,i),Ne(h)&&function(e,t){var n=$n(t,e);16&n[2]||(n[2]|=64)}(t,n+19);else if(3===h.type){r=\"class\"===(c=r)?\"className\":\"for\"===c?\"htmlFor\":\"formaction\"===c?\"formAction\":\"innerHtml\"===c?\"innerHTML\":\"readonly\"===c?\"readOnly\":\"tabindex\"===c?\"tabIndex\":c;var d=s?s(h,t):t[11];i=null!=o?o(i,h.tagName||\"\",r):i,bt(d)?d.setProperty(l,r,i):wt(r)||(l.setProperty?l.setProperty(r,i):l[r]=i)}}function Hr(e,t,n,r){var i=!1;if(Ue()){var o=function(e,t,n){var r=e.directiveRegistry,i=null;if(r)for(var o=0;o<r.length;o++){var a=r[o];dr(n,a.selectors,!1)&&(i||(i=[]),Ht(Lt(n,t),e,a.type),De(a)?(2&n.flags&&or(n),Wr(e,n),i.unshift(a)):i.push(a))}return i}(e,t,n),a=null===r?null:{\"\":-1};if(null!==o){var s=0;i=!0,Qr(n,e.data.length,o.length);for(var u=0;u<o.length;u++){var c=o[u];c.providersResolver&&c.providersResolver(c)}Gr(e,n,o.length);for(var l=!1,h=!1,f=0;f<o.length;f++){var d=o[f];n.mergedAttrs=Ot(n.mergedAttrs,d.hostAttrs),Jr(e,t,d),Zr(e.data.length-1,d,a),null!==d.contentQueries&&(n.flags|=8),null===d.hostBindings&&null===d.hostAttrs&&0===d.hostVars||(n.flags|=128),!l&&(d.onChanges||d.onInit||d.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),h||!d.onChanges&&!d.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),h=!0),zr(e,d),s+=d.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,i=t.attrs,o=[],a=null,s=null,u=t.directiveStart;u<n;u++){var c=r[u],l=c.inputs;o.push(null!==i?$r(l,i):null),a=Ur(l,u,a),s=Ur(c.outputs,u,s)}null!==a&&((a.hasOwnProperty(\"class\")||a.hasOwnProperty(\"className\"))&&(t.flags|=16),a.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=o,t.inputs=a,t.outputs=s}(e,n),qr(e,t,s)}a&&function(e,t,n){if(t)for(var r=e.localNames=[],i=0;i<t.length;i+=2){var o=n[t[i+1]];if(null==o)throw new Error(\"Export of name '\".concat(t[i+1],\"' not found!\"));r.push(t[i],o)}}(n,r,a)}return n.mergedAttrs=Ot(n.mergedAttrs,n.attrs),i}function zr(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function qr(e,t,n){for(var r=0;r<n;r++)t.push(yr),e.blueprint.push(yr),e.data.push(null)}function Br(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function Gr(e,t,n){var r=19-t.index,i=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,i,n)}function Wr(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Zr(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;De(t)&&(n[\"\"]=e)}}function Qr(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Jr(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Pe(n.type)),i=new yt(r,De(n),null);e.blueprint.push(i),t.push(i)}function Kr(e,t,n){var r=Jn(t,e),i=Dr(n),o=e[10],a=ri(e,Tr(e,i,null,n.onPush?64:16,r,t,o,o.createRenderer(r,n)));e[t.index]=a}function Xr(e,t,n,r,i,o){var a=o[t];if(null!==a)for(var s=r.setInput,u=0;u<a.length;){var c=a[u++],l=a[u++],h=a[u++];null!==s?r.setInput(n,h,c,l):n[l]=h}}function $r(e,t){for(var n=null,r=0;r<t.length;){var i=t[r];if(0!==i)if(5!==i){if(\"number\"==typeof i)break;e.hasOwnProperty(i)&&(null===n&&(n=[]),n.push(i,e[i],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yr(e,t,n,r){return new Array(e,!0,-2,t,null,null,r,n,null)}function ei(e,t){for(var n=e[5],r=0;r<n.length;r++){var i=n[r],o=i[3][3][16];if(o!==t&&0==(16&o[2])){var a=i[1];jr(a,i,a.template,i[8])}}}function ti(e,t){var n=$n(t,e);if(tr(n)&&80&n[2]){var r=n[1];jr(r,n,r.template,n[8])}}function ni(e,t){var n=$n(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Ar(r,n,n[8])}function ri(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function ii(e){for(;e;){e[2]|=64;var t=gr(e);if(Le(e)&&!t)return e;e=t}return null}function oi(e,t,n){var r=t[10];r.begin&&r.begin();try{jr(e,t,e.template,n)}catch(i){throw hi(t,i),i}finally{r.end&&r.end()}}function ai(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=Yn(n),i=r[1];Rr(i,r,i.template,n)}}(e[8])}function si(e,t,n){et(0),t(e,n)}var ui=Promise.resolve(null);function ci(e){return e[7]||(e[7]=[])}function li(e){return e.cleanup||(e.cleanup=[])}function hi(e,t){var n=e[9],r=n?n.get(en,null):null;r&&r.handleError(t)}function fi(e,t,n,r,i){for(var o=0;o<n.length;){var a=n[o++],s=n[o++],u=t[a],c=e.data[a];null!==c.setInput?c.setInput(u,i,r,s):u[s]=i}}function di(e,t,n){var r=Qn(t,e),i=e[11];bt(i)?i.setValue(r,n):r.textContent=n}function vi(e,t){var n=t[3];return-1===e.index?Re(n)?n:null:n}function pi(e,t){var n=vi(e,t);return n?Ei(t[11],n[7]):null}function yi(e,t,n,r,i){if(null!=r){var o,a=!1;Re(r)?o=r:je(r)&&(a=!0,r=r[0]);var s=Zn(r);0===e&&null!==n?null==i?Oi(t,n,s):wi(t,n,s,i||null):1===e&&null!==n?wi(t,n,s,i||null):2===e?function(e,t,n){var r=Ei(e,t);r&&function(e,t,n,r){bt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,s,a):3===e&&t.destroyNode(s),null!=o&&function(e,t,n,r,i){var o=n[7];o!==Zn(n)&&yi(t,e,r,o,i);for(var a=9;a<n.length;a++){var s=n[a];Ai(s[1],s,e,t,r,o)}}(t,e,o,n,i)}}function gi(e,t,n,r){var i=pi(e.node,t);i&&Ai(e,t,t[11],n?1:2,i,r)}function mi(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}function bi(e,t){if(!(e.length<=9)){var n=9+t,r=e[n];if(r){var i=r[17];null!==i&&i!==e&&mi(i,r),t>0&&(e[n-1][4]=r[4]);var o=le(e,9+t);gi(r[1],r,!1,null);var a=o[5];null!==a&&a.detachView(o[1]),r[3]=null,r[4]=null,r[2]&=-129}return r}}function _i(e,t){if(!(256&t[2])){var n=t[11];bt(n)&&n.destroyNode&&Ai(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return ki(e[1],e);for(;t;){var n=null;if(je(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)je(t)&&ki(t[1],t),t=Ci(t,e);null===t&&(t=e),je(t)&&ki(t[1],t),n=t&&t[4]}t=n}}(t)}}function Ci(e,t){var n;return je(e)&&(n=e[6])&&2===n.type?vi(n,e):e[3]===t?null:e[3]}function ki(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var i=t[n[r]];i instanceof yt||n[r+1].call(i)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],i=0;i<n.length-1;i+=2)if(\"string\"==typeof n[i]){var o=n[i+1],a=\"function\"==typeof o?o(t):Zn(t[o]),s=r[n[i+2]],u=n[i+3];\"boolean\"==typeof u?a.removeEventListener(n[i],s,u):u>=0?r[u]():r[-u].unsubscribe(),i+=2}else n[i].call(r[n[i+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&bt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&Re(t[3])){r!==t[3]&&mi(r,t);var i=t[5];null!==i&&i.detachView(e)}}}function wi(e,t,n,r){bt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function Oi(e,t,n){bt(e)?e.appendChild(t,n):t.appendChild(n)}function Si(e,t,n,r){null!==r?wi(e,t,n,r):Oi(e,t,n)}function Ei(e,t){return bt(e)?e.parentNode(t):t.parentNode}function xi(e,t,n,r){var i=function(e,t,n){for(var r=t.parent;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){var i=n[6];return 2===i.type?pi(i,n):n[0]}if(t&&5===t.type&&4&t.flags)return Jn(t,n).parentNode;if(2&r.flags){var o=e.data,a=o[o[r.index].directiveStart].encapsulation;if(a!==ve.ShadowDom&&a!==ve.Native)return null}return Jn(r,n)}(e,r,t);if(null!=i){var o=t[11],a=function(e,t){if(2===e.type){var n=vi(e,t);return null===n?null:Ti(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?Jn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var s=0;s<n.length;s++)Si(o,i,n[s],a);else Si(o,i,n,a)}}function Ti(e,t){var n=9+e+1;if(n<t.length){var r=t[n],i=r[1].firstChild;if(null!==i)return function e(t,n){if(null!==n){var r=n.type;if(3===r)return Jn(n,t);if(0===r)return Ti(-1,t[n.index]);if(4===r||5===r){var i=n.child;if(null!==i)return e(t,i);var o=t[n.index];return Re(o)?Ti(-1,o):Zn(o)}var a=t[16],s=a[6],u=gr(a),c=s.projection[n.projection];return null!=c?e(u,c):e(t,n.next)}return null}(r,i)}return t[7]}function Pi(e,t,n,r,i,o,a){for(;null!=n;){var s=r[n.index],u=n.type;a&&0===t&&(s&&ir(Zn(s),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(Pi(e,t,n.child,r,i,o,!1),yi(t,e,i,s,o)):1===u?ji(e,t,r,n,i,o):yi(t,e,i,s,o)),n=a?n.projectionNext:n.next}}function Ai(e,t,n,r,i,o){Pi(n,r,e.node.child,t,i,o,!1)}function ji(e,t,n,r,i,o){var a=n[16],s=a[6].projection[r.projection];if(Array.isArray(s))for(var u=0;u<s.length;u++)yi(t,e,i,s[u],o);else Pi(e,t,s,a[3],i,o,!0)}function Ri(e,t,n){bt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function Ii(e,t,n){bt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var Ni,Mi,Di,Li=function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}_i(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r;t=this._lView[1],r=e,ci(n=this._lView).push(r),t.firstCreatePass&&li(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){ii(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){oi(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){Ze(!0);try{oi(e,t,n)}finally{Ze(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,Ai(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,i){for(var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var a=n[r.index];if(null!==a&&i.push(Zn(a)),Re(a))for(var s=9;s<a.length;s++){var u=a[s],c=u[1].firstChild;null!==c&&e(u[1],u,c,i)}var l=r.type;if(4===l||5===l)e(t,n,r.child,i);else if(1===l){var h=n[16],f=h[6],d=gr(h),v=f.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,i,!0)}r=o?r.projectionNext:r.next}return i}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}(),Vi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ai(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){Ze(!0);try{ai(e)}finally{Ze(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(Li);function Ui(e,t,n){return Ni||(Ni=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new Ni(Jn(t,n))}function Fi(e,t,n,r){return Mi||(Mi=function(e){function t(e,n,r){var i;return _classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._declarationView=e,i._declarationTContainer=n,i.elementRef=r,i}return _inherits(t,e),_createClass(t,[{key:\"createEmbeddedView\",value:function(e){var t=this._declarationTContainer.tViews,n=Tr(this._declarationView,t,e,16,null,t.node);n[17]=this._declarationView[this._declarationTContainer.index];var r=this._declarationView[5];null!==r&&(n[5]=r.createEmbeddedView(t)),Ar(t,n,e);var i=new Li(n);return i._tViewNode=n[6],i}}]),t}(e)),0===n.type?new Mi(r,n,Ui(t,n,r)):null}function Hi(e,t,n,r){var i;Di||(Di=function(e){function n(e,t,r){var i;return _classCallCheck(this,n),(i=_possibleConstructorReturn(this,_getPrototypeOf(n).call(this)))._lContainer=e,i._hostTNode=t,i._hostView=r,i}return _inherits(n,e),_createClass(n,[{key:\"clear\",value:function(){for(;this.length>0;)this.remove(this.length-1)}},{key:\"get\",value:function(e){return null!==this._lContainer[8]&&this._lContainer[8][e]||null}},{key:\"createEmbeddedView\",value:function(e,t,n){var r=e.createEmbeddedView(t||{});return this.insert(r,n),r}},{key:\"createComponent\",value:function(e,t,n,r,i){var o=n||this.parentInjector;if(!i&&null==e.ngModule&&o){var a=o.get(ae,null);a&&(i=a)}var s=e.create(o,r,void 0,i);return this.insert(s.hostView,t),s}},{key:\"insert\",value:function(e,t){var n=e._lView,r=n[1];if(e.destroyed)throw new Error(\"Cannot insert a destroyed View in a ViewContainer!\");if(this.allocateContainerIfNeeded(),Re(n[3])){var i=this.indexOf(e);if(-1!==i)this.detach(i);else{var o=n[3],a=new Di(o,o[6],o[3]);a.detach(a.indexOf(e))}}var s=this._adjustIndex(t);return function(e,t,n,r){var i=9+r,o=n.length;r>0&&(n[i-1][4]=t),r<o-9?(t[4]=n[i],ce(n,9+r,t)):(n.push(t),t[4]=null),t[3]=n;var a=t[17];null!==a&&n!==a&&function(e,t){var n=e[5],r=t[3][3][16];16!=(16&r[2])&&t[16]!==r&&(e[2]|=1),null===n?e[5]=[t]:n.push(t)}(a,t);var s=t[5];null!==s&&s.insertView(e),t[2]|=128}(r,n,this._lContainer,s),gi(r,n,!0,Ti(s,this._lContainer)),e.attachToViewContainerRef(this),ce(this._lContainer[8],s,e),e}},{key:\"move\",value:function(e,t){if(e.destroyed)throw new Error(\"Cannot move a destroyed View in a ViewContainer!\");return this.insert(e,t)}},{key:\"indexOf\",value:function(e){var t=this._lContainer[8];return null!==t?t.indexOf(e):-1}},{key:\"remove\",value:function(e){this.allocateContainerIfNeeded();var t=this._adjustIndex(e,-1);(function(e,t){var n=bi(e,t);n&&_i(n[1],n)})(this._lContainer,t),le(this._lContainer[8],t)}},{key:\"detach\",value:function(e){this.allocateContainerIfNeeded();var t=this._adjustIndex(e,-1),n=bi(this._lContainer,t);return n&&null!=le(this._lContainer[8],t)?new Li(n):null}},{key:\"_adjustIndex\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return null==e?this.length+t:e}},{key:\"allocateContainerIfNeeded\",value:function(){null===this._lContainer[8]&&(this._lContainer[8]=[])}},{key:\"element\",get:function(){return Ui(t,this._hostTNode,this._hostView)}},{key:\"injector\",get:function(){return new Jt(this._hostTNode,this._hostView)}},{key:\"parentInjector\",get:function(){var e=Ft(this._hostTNode,this._hostView),t=Pt(e,this._hostView),n=function(e,t,n){if(n.parent&&-1!==n.parent.injectorIndex){for(var r=n.parent.injectorIndex,i=n.parent;null!=i.parent&&r==i.parent.injectorIndex;)i=i.parent;return i}for(var o=Tt(e),a=t,s=t[6];o>1;)s=(a=a[15])[6],o--;return s}(e,this._hostView,this._hostTNode);return Et(e)&&null!=n?new Jt(n,t):new Jt(null,this._hostView)}},{key:\"length\",get:function(){return this._lContainer.length-9}}]),n}(e));var o=r[n.index];if(Re(o))(function(e,t){e[2]=-2})(i=o);else{var a;if(4===n.type)a=Zn(o);else if(a=r[11].createComment(\"\"),Le(r)){var s=r[11],u=Jn(n,r);wi(s,Ei(s,u),a,function(e,t){return bt(e)?e.nextSibling(t):t.nextSibling}(s,u))}else xi(r[1],r,a,n);r[n.index]=i=Yr(o,r,a,n),ri(r,i)}return new Di(i,n,r)}function zi(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return function(e,t,n){if(!n&&Ne(e)){var r=$n(e.index,t);return new Li(r,r)}return 3===e.type||0===e.type||4===e.type||5===e.type?new Li(t[16],t):null}(qe(),Fe(),e)}var qi=function(){var e=function e(){_classCallCheck(this,e)};return e.__NG_ELEMENT_ID__=function(){return Bi()},e}(),Bi=zi,Gi=new Z(\"Set Injector scope.\"),Wi={},Zi={},Qi=[],Ji=void 0;function Ki(){return void 0===Ji&&(Ji=new oe),Ji}function Xi(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Ki(),new $i(e,n,t,r)}var $i=function(){function e(t,n,r){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var a=[];n&&ue(n,(function(e){return i.processProvider(e,t,n)})),ue([t],(function(e){return i.processInjectorType(e,[],a)})),this.records.set(Q,to(void 0,this));var s=this.records.get(Gi);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach((function(e){return i.get(e)})),this.source=o||(\"object\"==typeof t?null:T(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:J,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:p.Default;this.assertNotDestroyed();var r,i=Y(this);try{if(!(n&p.SkipSelf)){var o=this.records.get(e);if(void 0===o){var a=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Z)&&_(e);o=a&&this.injectableDefInScope(a)?to(Yi(e),Wi):null,this.records.set(e,o)}if(null!=o)return this.hydrate(e,o)}return(n&p.Self?Ki():this.parent).get(e,t=n&p.Optional&&t===J?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(T(e)),i)throw s;return function(e,t,n,r){var i=e.ngTempTokenPath;throw t.__source&&i.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var i=T(t);if(Array.isArray(t))i=t.map(T).join(\" -> \");else if(\"object\"==typeof t){var o=[];for(var a in t)if(t.hasOwnProperty(a)){var s=t[a];o.push(a+\":\"+(\"string\"==typeof s?JSON.stringify(s):T(s)))}i=\"{\".concat(o.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(i,\"]: \").concat(e.replace(K,\"\\n  \"))}(\"\\n\"+e.message,i,\"R3InjectorError\",r),e.ngTokenPath=i,e.ngTempTokenPath=null,e}(s,e,0,this.source)}throw s}finally{Y(i)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(T(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=R(e)))return!1;var i=k(e),o=null==i&&e.ngModule||void 0,a=void 0===o?e:o,s=-1!==n.indexOf(a);if(void 0!==o&&(i=k(o)),null==i)return!1;if(null!=i.imports&&!s){var u;n.push(a);try{ue(i.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var c=function(e){var t=u[e],n=t.ngModule,i=t.providers;ue(i,(function(e){return r.processProvider(e,n,i||Qi)}))},l=0;l<u.length;l++)c(l)}this.injectorDefTypes.add(a),this.records.set(a,to(i.factory,Wi));var h=i.providers;if(null!=h&&!s){var f=e;ue(h,(function(e){return r.processProvider(e,f,h)}))}return void 0!==o&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=ro(e=R(e))?e:R(e&&e.provide),i=function(e,t,n){return no(e)?to(void 0,e.useValue):to(eo(e,t,n),Wi)}(e,t,n);if(ro(e)||!0!==e.multi){var o=this.records.get(r);o&&void 0!==o.multi&&ar()}else{var a=this.records.get(r);a?void 0===a.multi&&ar():((a=to(void 0,Wi,!0)).factory=function(){return ie(a.multi)},this.records.set(r,a)),r=e,a.multi.push(e)}this.records.set(r,i)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Zi?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(T(e)):t.value===Wi&&(t.value=Zi,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Yi(e){var t=_(e),n=null!==t?t.factory:Pe(e);if(null!==n)return n;var r=k(e);if(null!==r)return r.factory;if(e instanceof Z)throw new Error(\"Token \".concat(T(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(T(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[w]||e[E]||e[S]&&e[S]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function eo(e,t,n){var r,i=void 0;if(ro(e))return Yi(R(e));if(no(e))i=function(){return R(e.useValue)};else if((r=e)&&r.useFactory)i=function(){return e.useFactory.apply(e,_toConsumableArray(ie(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))i=function(){return ne(R(e.useExisting))};else{var o=R(e&&(e.useClass||e.provide));if(o||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(T(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Yi(o);i=function(){return _construct(o,_toConsumableArray(ie(e.deps)))}}return i}function to(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function no(e){return null!==e&&\"object\"==typeof e&&X in e}function ro(e){return\"function\"==typeof e}var io=function(e,t,n){return Xi({name:n},t,e,n)},oo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?io(e,t,\"\"):io(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=J,e.NULL=new oe,e.\\u0275prov=m({token:e,providedIn:\"any\",factory:function(){return ne(Q)}}),e.__NG_ELEMENT_ID__=-1,e}(),ao=new Z(\"AnalyzeForEntryComponents\"),so=new Map,uo=new Set;function co(e){return\"string\"==typeof e?e:e.text()}function lo(e,t){for(var n=e.styles,r=e.classes,i=0,o=0;o<t.length;o++){var a=t[o];\"number\"==typeof a?i=a:1==i?r=P(r,a):2==i&&(n=P(n,a+\": \"+t[++o]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var ho=null;function fo(){if(!ho){var e=U.Symbol;if(e&&e.iterator)ho=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(ho=r)}}return ho}function vo(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}var po=function(){function e(t){_classCallCheck(this,e),this.wrapped=t}return _createClass(e,null,[{key:\"wrap\",value:function(t){return new e(t)}},{key:\"unwrap\",value:function(t){return e.isWrapped(t)?t.wrapped:t}},{key:\"isWrapped\",value:function(t){return t instanceof e}}]),e}();function yo(e){return!!go(e)&&(Array.isArray(e)||!(e instanceof Map)&&fo()in e)}function go(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function mo(e,t,n){return e[t]=n}function bo(e,t){return e[t]}function _o(e,t,n){return!Object.is(e[t],n)&&(e[t]=n,!0)}function Co(e,t,n,r){var i=_o(e,t,n);return _o(e,t+1,r)||i}function ko(e,t,n,r){var i=Fe();return _o(i,Ke(),t)&&function(e,t,n,r,i,o,a){var s=Qn(e,i),u=i[11];if(null==n)bt(u)?u.removeAttribute(s,t,a):s.removeAttribute(t);else{var c=Kn(r,e),l=null==o?At(n):o(n,c.tagName||\"\",t);bt(u)?u.setAttribute(s,t,l,a):a?s.setAttributeNS(a,t,l):s.setAttribute(t,l)}}(ut(),e,t,He(),i,n,r),ko}function wo(e,t,n,r,i,o,a,s){var u=Fe(),c=He(),l=e+19,h=c.firstCreatePass?function(e,t,n,r,i,o,a,s,u){var c=t.consts,l=Pr(t,n[6],e,0,a||null,nr(c,s));Hr(t,n,l,nr(c,u)),lt(t,l);var h=l.tViews=Lr(2,-1,r,i,o,t.directiveRegistry,t.pipeRegistry,null,t.schemas,c),f=Vr(0,null,2,-1,null,null);return f.injectorIndex=l.injectorIndex,h.node=f,null!==t.queries&&(t.queries.template(t,l),h.queries=t.queries.embeddedTView(l)),l}(e,c,u,t,n,r,i,o,a):c.data[l];Be(h,!1);var f=u[11].createComment(\"\");xi(c,u,f,h),ir(f,u),ri(u,u[l]=Yr(f,u,f,h)),Me(h)&&Nr(c,u,h),null!=a&&Mr(u,h,s)}function Oo(e){return Xn(Ve.lFrame.contextLView,e)}function So(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p.Default,n=Fe();return null==n?ne(e,t):zt(qe(),n,R(e),t)}function Eo(e){return function(e,t){if(\"class\"===t)return e.classes;if(\"style\"===t)return e.styles;var n=e.attrs;if(n)for(var r=n.length,i=0;i<r;){var o=n[i];if(kt(o))break;if(0===o)i+=2;else if(\"number\"==typeof o)for(i++;i<r&&\"string\"==typeof n[i];)i++;else{if(o===t)return n[i+1];i+=2}}return null}(qe(),e)}function xo(){throw new Error(\"invalid\")}function To(e,t,n){var r=Fe();if(_o(r,Ke(),t)){var i=ut();Fr(He(),r,i,e,t,n)}return To}function Po(e,t,n,r,i){var o=t.inputs,a=i?\"class\":\"style\";fi(e,n,o[a]||i&&o.className,a,r)}function Ao(e,t,n,r){var i=Fe(),o=He(),a=19+e,s=i[11],u=i[a]=xr(t,s,Ve.lFrame.currentNamespace),c=o.firstCreatePass?function(e,t,n,r,i,o,a){var s=t.consts,u=nr(s,o),c=Pr(t,n[6],e,3,i,u);return Hr(t,n,c,nr(s,a)),null!==c.mergedAttrs&&lo(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,o,i,0,t,n,r):o.data[a];Be(c,!0);var l=c.mergedAttrs;null!==l&&Ct(s,u,l);var h=c.classes;null!==h&&Ii(s,u,h);var f=c.styles;null!==f&&Ri(s,u,f),xi(o,i,u,c),0===Ve.lFrame.elementDepthCount&&ir(u,i),Ve.lFrame.elementDepthCount++,Me(c)&&(Nr(o,i,c),function(e,t,n){if(Ie(t))for(var r=t.directiveEnd,i=t.directiveStart;i<r;i++){var o=e.data[i];o.contentQueries&&o.contentQueries(1,n[i],i)}}(o,c,i)),null!==r&&Mr(i,c)}function jo(){var e=qe();Ge()?Ve.lFrame.isParent=!1:Be(e=e.parent,!1);var t=e;Ve.lFrame.elementDepthCount--;var n=He();n.firstCreatePass&&(lt(n,e),Ie(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Po(n,t,Fe(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Po(n,t,Fe(),t.styles,!1)}function Ro(e,t,n,r){Ao(e,t,n,r),jo()}function Io(){return Fe()}function No(e){return!!e&&\"function\"==typeof e.then}function Mo(e){return!!e&&\"function\"==typeof e.subscribe}function Do(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0,i=Fe(),o=He(),a=qe();return function(e,t,n,r,i,o){var a=arguments.length>6&&void 0!==arguments[6]&&arguments[6],s=arguments.length>7?arguments[7]:void 0,u=Me(r),c=e.firstCreatePass&&(e.cleanup||(e.cleanup=[])),l=ci(t),h=!0;if(3===r.type){var f=Jn(r,t),d=s?s(f):ye,v=d.target||f,p=l.length,y=s?function(e){return s(Zn(e[r.index])).target}:r.index;if(bt(n)){var g=null;if(!s&&u&&(g=function(e,t,n,r){var i=e.cleanup;if(null!=i)for(var o=0;o<i.length-1;o+=2){var a=i[o];if(a===n&&i[o+1]===r){var s=t[7],u=i[o+2];return s.length>u?s[u]:null}\"string\"==typeof a&&(o+=2)}return null}(e,t,i,r.index)),null!==g)(g.__ngLastListenerFn__||g).__ngNextListenerFn__=o,g.__ngLastListenerFn__=o,h=!1;else{o=Vo(r,t,o,!1);var m=n.listen(d.name||v,i,o);l.push(o,m),c&&c.push(i,y,p,p+1)}}else o=Vo(r,t,o,!0),v.addEventListener(i,o,a),l.push(o),c&&c.push(i,y,p,a)}var b,_=r.outputs;if(h&&null!==_&&(b=_[i])){var C=b.length;if(C)for(var k=0;k<C;k+=2){var w=t[b[k]][b[k+1]].subscribe(o),O=l.length;l.push(o,w),c&&c.push(i,r.index,O,-(O+1))}}}(o,i,i[11],a,e,t,n,r),Do}function Lo(e,t,n){try{return!1!==t(n)}catch(r){return hi(e,r),!1}}function Vo(e,t,n,r){return function i(o){if(o===Function)return n;var a=2&e.flags?$n(e.index,t):t;0==(32&t[2])&&ii(a);for(var s=Lo(t,n,o),u=i.__ngNextListenerFn__;u;)s=Lo(t,u,o)&&s,u=u.__ngNextListenerFn__;return r&&!1===s&&(o.preventDefault(),o.returnValue=!1),s}}function Uo(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return function(e){return(Ve.lFrame.contextLView=function(e,t){for(;e>0;)t=t[15],e--;return t}(e,Ve.lFrame.contextLView))[8]}(e)}var Fo=[];function Ho(e,t,n,r,i){for(var o=e[n+1],a=null===t,s=r?Cr(o):wr(o),u=!1;0!==s&&(!1===u||a);){var c=e[s+1];zo(e[s],t)&&(u=!0,e[s+1]=r?Sr(c):kr(c)),s=r?Cr(c):wr(c)}u&&(e[n+1]=r?kr(o):Sr(o))}function zo(e,t){return null===e||null==t||(Array.isArray(e)?e[1]:e)===t||!(!Array.isArray(e)||\"string\"!=typeof t)&&fe(e,t)>=0}function qo(e,t){return function(e,t,n,r){var i,o,a=Fe(),s=He(),u=Xe(2);(s.firstUpdatePass&&function(e,t,n,r){var i=e.data;if(null===i[n+1]){var o=i[ut()+19],a=function(e,t){return t>=e.expandoStartIndex}(e,n);(function(e,t){return 0!=(16&e.flags)})(o)&&null===t&&!a&&(t=!1),t=function(e,t,n,r){var i=function(e){var t=Ve.lFrame.currentDirectiveIndex;return-1===t?null:e[t]}(e),o=t.residualClasses;if(null===i)0===t.classBindings&&(n=Go(n=Bo(null,e,t,n,!0),t.attrs,!0),o=null);else{var a=t.directiveStylingLast;if(-1===a||e[a]!==i)if(n=Bo(i,e,t,n,!0),null===o){var s=function(e,t,n){var r=t.classBindings;if(0!==wr(r))return e[Cr(r)]}(e,t);void 0!==s&&Array.isArray(s)&&function(e,t,n,r){e[Cr(t.classBindings)]=r}(e,t,0,s=Go(s=Bo(null,e,t,s[1],!0),t.attrs,!0))}else o=function(e,t,n){for(var r=void 0,i=t.directiveEnd,o=1+t.directiveStylingLast;o<i;o++)r=Go(r,e[o].hostAttrs,!0);return Go(r,t.attrs,!0)}(e,t)}return void 0!==o&&(t.residualClasses=o),n}(i,o,t),function(e,t,n,r,i,o){var a=t.classBindings,s=Cr(a),u=wr(a);e[r]=n;var c,l=!1;if(Array.isArray(n)){var h=n;(null===(c=h[1])||fe(h,c)>0)&&(l=!0)}else c=n;if(i)if(0!==u){var f=Cr(e[s+1]);e[r+1]=_r(f,s),0!==f&&(e[f+1]=Or(e[f+1],r)),e[s+1]=131071&e[s+1]|r<<17}else e[r+1]=_r(s,0),0!==s&&(e[s+1]=Or(e[s+1],r)),s=r;else e[r+1]=_r(u,0),0===s?s=r:e[u+1]=Or(e[u+1],r),u=r;l&&(e[r+1]=kr(e[r+1])),Ho(e,c,r,!0),Ho(e,c,r,!1),function(e,t,n,r,i){var o=e.residualClasses;null!=o&&\"string\"==typeof t&&fe(o,t)>=0&&(n[r+1]=Sr(n[r+1]))}(t,c,e,r),a=_r(s,u),t.classBindings=a}(i,o,t,n,a)}}(s,e,u),t!==yr&&_o(a,u,t))&&(null==n&&(i=null===(o=Ve.lFrame)?null:o.currentSanitizer)&&(n=i),function(e,t,n,r,i,o,a,s){if(3===t.type){var u=e.data,c=u[s+1];Zo(1==(1&c)?Wo(u,t,n,i,wr(c),!0):void 0)||(Zo(o)||2==(2&c)&&(o=Wo(u,null,n,i,s,!0)),function(e,t,n,r,i){var o=bt(e);i?o?e.addClass(n,r):n.classList.add(r):o?e.removeClass(n,r):n.classList.remove(r)}(r,0,Qn(ut(),n),i,o))}}(s,s.data[ut()+19],a,a[11],e,a[u+1]=function(e,t){return null==e||(\"function\"==typeof t?e=t(e):\"string\"==typeof t?e+=t:\"object\"==typeof e&&(e=T(un(e)))),e}(t,n),0,u))}(e,t,null),qo}function Bo(e,t,n,r,i){var o=null,a=n.directiveEnd,s=n.directiveStylingLast;for(-1===s?s=n.directiveStart:s++;s<a&&(r=Go(r,(o=t[s]).hostAttrs,i),o!==e);)s++;return null!==e&&(n.directiveStylingLast=s),r}function Go(e,t,n){var r,i,o,a,s=n?1:2,u=-1;if(null!==t)for(var c=0;c<t.length;c++){var l=t[c];\"number\"==typeof l?u=l:u===s&&(Array.isArray(e)||(e=void 0===e?[]:[\"\",e]),r=e,i=l,o=!!n||t[++c],a=void 0,(a=fe(r,i))>=0?r[1|a]=o:function(e,t,n,r){var i=e.length;if(i==t)e.push(n,r);else if(1===i)e.push(r,e[0]),e[0]=n;else{for(i--,e.push(e[i-1],e[i]);i>t;)e[i]=e[i-2],i--;e[t]=n,e[t+1]=r}}(r,a=~a,i,o))}return void 0===e?null:e}function Wo(e,t,n,r,i,o){for(var a=null===t,s=void 0;i>0;){var u=e[i],c=Array.isArray(u),l=c?u[1]:u,h=null===l,f=n[i+1];f===yr&&(f=h?Fo:void 0);var d=h?he(f,r):l===r?f:void 0;if(c&&!Zo(d)&&(d=he(u,r)),Zo(d)&&(s=d,a))return s;var v=e[i+1];i=a?Cr(v):wr(v)}if(null!==t){var p=o?t.residualClasses:t.residualStyles;null!=p&&(s=he(p,r))}return s}function Zo(e){return void 0!==e}function Qo(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=Fe(),r=He(),i=e+19,o=r.firstCreatePass?Pr(r,n[6],e,3,null,null):r.data[i],a=n[i]=function(e,t){return bt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);xi(r,n,a,o),Be(o,!1)}function Jo(e){return Ko(\"\",e,\"\"),Jo}function Ko(e,t,n){var r=Fe(),i=function(e,t,n,r){return _o(e,Ke(),n)?t+At(n)+r:yr}(r,e,t,n);return i!==yr&&di(r,ut(),i),Ko}function Xo(e,t,n,r,i){var o=Fe(),a=function(e,t,n,r,i,o){var a=Co(e,Je(),n,i);return Xe(2),a?t+At(n)+r+At(i)+o:yr}(o,e,t,n,r,i);return a!==yr&&di(o,ut(),a),Xo}function $o(e,t,n){var r=Fe();if(_o(r,Ke(),t)){var i=ut();Fr(He(),r,i,e,t,n,!0)}return $o}function Yo(e,t){var n=Yn(e)[1],r=n.data.length-1;lt(n,{directiveStart:r,directiveEnd:r+1})}function ea(e){for(var t=Object.getPrototypeOf(e.type.prototype).constructor,n=!0,r=[e];t;){var i=void 0;if(De(e))i=t.\\u0275cmp||t.\\u0275dir;else{if(t.\\u0275cmp)throw new Error(\"Directives cannot inherit Components\");i=t.\\u0275dir}if(i){if(n){r.push(i);var o=e;o.inputs=ta(e.inputs),o.declaredInputs=ta(e.declaredInputs),o.outputs=ta(e.outputs);var a=i.hostBindings;a&&ia(e,a);var s=i.viewQuery,u=i.contentQueries;s&&na(e,s),u&&ra(e,u),g(e.inputs,i.inputs),g(e.declaredInputs,i.declaredInputs),g(e.outputs,i.outputs),o.afterContentChecked=o.afterContentChecked||i.afterContentChecked,o.afterContentInit=e.afterContentInit||i.afterContentInit,o.afterViewChecked=e.afterViewChecked||i.afterViewChecked,o.afterViewInit=e.afterViewInit||i.afterViewInit,o.doCheck=e.doCheck||i.doCheck,o.onDestroy=e.onDestroy||i.onDestroy,o.onInit=e.onInit||i.onInit}var c=i.features;if(c)for(var l=0;l<c.length;l++){var h=c[l];h&&h.ngInherit&&h(e),h===ea&&(n=!1)}}t=Object.getPrototypeOf(t)}!function(e){for(var t=0,n=null,r=e.length-1;r>=0;r--){var i=e[r];i.hostVars=t+=i.hostVars,i.hostAttrs=Ot(i.hostAttrs,n=Ot(n,i.hostAttrs))}}(r)}function ta(e){return e===ye?{}:e===ge?[]:e}function na(e,t){var n=e.viewQuery;e.viewQuery=n?function(e,r){t(e,r),n(e,r)}:t}function ra(e,t){var n=e.contentQueries;e.contentQueries=n?function(e,r,i){t(e,r,i),n(e,r,i)}:t}function ia(e,t){var n=e.hostBindings;e.hostBindings=n?function(e,r){t(e,r),n(e,r)}:t}var oa=function(){function e(t,n,r){_classCallCheck(this,e),this.previousValue=t,this.currentValue=n,this.firstChange=r}return _createClass(e,[{key:\"isFirstChange\",value:function(){return this.firstChange}}]),e}();function aa(){return sa.ngInherit=!0,sa}function sa(e){e.type.prototype.ngOnChanges&&(e.setInput=ua,e.onChanges=function(){var e=ca(this),t=e&&e.current;if(t){var n=e.previous;if(n===ye)e.previous=t;else for(var r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}})}function ua(e,t,n,r){var i=ca(e)||function(e,t){return e.__ngSimpleChanges__=t}(e,{previous:ye,current:null}),o=i.current||(i.current={}),a=i.previous,s=this.declaredInputs[n],u=a[s];o[s]=new oa(u&&u.currentValue,t,a===ye),e[r]=t}function ca(e){return e.__ngSimpleChanges__||null}function la(e,t,n,r,i){if(e=R(e),Array.isArray(e))for(var o=0;o<e.length;o++)la(e[o],t,n,r,i);else{var a=He(),s=Fe(),u=ro(e)?e:R(e.provide),c=eo(e),l=qe(),h=65535&l.providerIndexes,f=l.directiveStart,d=l.providerIndexes>>16;if(ro(e)||!e.multi){var v=new yt(c,i,So),p=da(u,t,i?h:h+d,f);-1===p?(Ht(Lt(l,s),a,u),ha(a,e,t.length),t.push(u),l.directiveStart++,l.directiveEnd++,i&&(l.providerIndexes+=65536),n.push(v),s.push(v)):(n[p]=v,s[p]=v)}else{var y=da(u,t,h+d,f),g=da(u,t,h,h+d),m=y>=0&&n[y],b=g>=0&&n[g];if(i&&!b||!i&&!m){Ht(Lt(l,s),a,u);var _=function(e,t,n,r,i){var o=new yt(e,n,So);return o.multi=[],o.index=t,o.componentProviders=0,fa(o,i,r&&!n),o}(i?pa:va,n.length,i,r,c);!i&&b&&(n[g].providerFactory=_),ha(a,e,t.length),t.push(u),l.directiveStart++,l.directiveEnd++,i&&(l.providerIndexes+=65536),n.push(_),s.push(_)}else ha(a,e,y>-1?y:g),fa(n[i?g:y],c,!i&&r);!i&&r&&b&&n[g].componentProviders++}}}function ha(e,t,n){if(ro(t)||t.useClass){var r=(t.useClass||t).prototype.ngOnDestroy;r&&(e.destroyHooks||(e.destroyHooks=[])).push(n,r)}}function fa(e,t,n){e.multi.push(t),n&&e.componentProviders++}function da(e,t,n,r){for(var i=n;i<r;i++)if(t[i]===e)return i;return-1}function va(e,t,n,r){return ya(this.multi,[])}function pa(e,t,n,r){var i,o=this.multi;if(this.providerFactory){var a=this.providerFactory.componentProviders,s=Wt(n,n[1],this.providerFactory.index,r);ya(o,i=s.slice(0,a));for(var u=a;u<s.length;u++)i.push(s[u])}else ya(o,i=[]);return i}function ya(e,t){for(var n=0;n<e.length;n++)t.push((0,e[n])());return t}function ga(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return function(n){n.providersResolver=function(n,r){return function(e,t,n){var r=He();if(r.firstCreatePass){var i=De(e);la(n,r.data,r.blueprint,i,!0),la(t,r.data,r.blueprint,i,!1)}}(n,r?r(e):e,t)}}}var ma=function e(){_classCallCheck(this,e)},ba=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(T(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),_a=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new ba,e}(),Ca=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return ka(e)},e}(),ka=function(e){return Ui(e,qe(),Fe())},wa=function e(){_classCallCheck(this,e)},Oa=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),Sa=function(){var e=function e(){_classCallCheck(this,e)};return e.__NG_ELEMENT_ID__=function(){return Ea()},e}(),Ea=function(){var e=Fe(),t=$n(qe().index,e);return function(e){var t=e[11];if(bt(t))return t;throw new Error(\"Cannot inject Renderer2 when the application uses Renderer3!\")}(je(t)?t:e)},xa=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=m({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),Ta=function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")},Pa=new Ta(\"9.0.2\"),Aa=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return yo(e)}},{key:\"create\",value:function(e){return new Ra(e)}}]),e}(),ja=function(e,t){return t},Ra=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ja}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,i=null;t||n;){var o=!n||t&&t.currentIndex<Da(n,r,i)?t:n,a=Da(o,r,i),s=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(t=t._next,null==o.previousIndex)r++;else{i||(i=[]);var u=a-r,c=s-r;if(u!=c){for(var l=0;l<u;l++){var h=l<i.length?i[l]:i[l]=0,f=h+l;c<=f&&f<u&&(i[l]=h+1)}i[o.previousIndex]=c-u}}a!==s&&e(o,a,s)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!yo(e))throw new Error(\"Error trying to diff '\".concat(T(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,i,o=this._itHead,a=!1;if(Array.isArray(e)){this.length=e.length;for(var s=0;s<this.length;s++)r=e[s],i=this._trackByFn(s,r),null!==o&&vo(o.trackById,i)?(a&&(o=this._verifyReinsertion(o,r,i,s)),vo(o.item,r)||this._addIdentityChange(o,r)):(o=this._mismatch(o,r,i,s),a=!0),o=o._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,i=e[fo()]();!(r=i.next()).done;)t(r.value)}(e,(function(e){i=t._trackByFn(n,e),null!==o&&vo(o.trackById,i)?(a&&(o=t._verifyReinsertion(o,e,i,n)),vo(o.item,e)||t._addIdentityChange(o,e)):(o=t._mismatch(o,e,i,n),a=!0),o=o._next,n++})),this.length=n;return this._truncate(o),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var i;return null===e?i=this._itTail:(i=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(vo(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,i,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(vo(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,i,r)):e=this._addAfter(new Ia(t,n),i,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==i?e=this._reinsertAfter(i,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,i=e._nextRemoved;return null===r?this._removalsHead=i:r._nextRemoved=i,null===i?this._removalsTail=r:i._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new Ma),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Ma),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),Ia=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},Na=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&vo(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),Ma=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new Na,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function Da(e,t,n){var r=e.previousIndex;if(null===r)return r;var i=0;return n&&r<n.length&&(i=n[r]),r+t+i}var La=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||go(e)}},{key:\"create\",value:function(){return new Va}}]),e}(),Va=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||go(e)))throw new Error(\"Error trying to diff '\".concat(T(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var i=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,i)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,i=n._next;return r&&(r._next=i),i&&(i._prev=r),n._next=null,n._prev=null,n}var o=new Ua(e);return this._records.set(e,o),o.currentValue=t,this._addToAdditions(o),o}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){vo(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),Ua=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},Fa=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new v,new f]]}}}]),e}();return e.\\u0275prov=m({token:e,providedIn:\"root\",factory:function(){return new e([new Aa])}}),e}(),Ha=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new v,new f]]}}}]),e}();return e.\\u0275prov=m({token:e,providedIn:\"root\",factory:function(){return new e([new La])}}),e}(),za=[new La],qa=new Fa([new Aa]),Ba=new Ha(za),Ga=function(){var e=function e(){_classCallCheck(this,e)};return e.__NG_ELEMENT_ID__=function(){return Wa(e,Ca)},e}(),Wa=function(e,t){return Fi(e,t,qe(),Fe())},Za=function(){var e=function e(){_classCallCheck(this,e)};return e.__NG_ELEMENT_ID__=function(){return Qa(e,Ca)},e}(),Qa=function(e,t){return Hi(e,t,qe(),Fe())},Ja={};function Ka(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Xa=new Z(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Rt}}),$a=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(pr).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var i,o,a=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,i){var o=e.get(n,Ja,i);return o!==Ja||r===Ja?o:t.get(n,r,i)}}}(e,r.injector):e,s=a.get(wa,_t),u=a.get(xa,null),c=s.createRenderer(null,this.componentDef),l=this.componentDef.selectors[0][0]||\"div\",h=n?function(e,t,n){if(bt(e))return e.selectRootElement(t,n===ve.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(c,n,this.componentDef.encapsulation):xr(l,s.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(l)),f=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Rt,clean:ui,playerHandler:null,flags:0},p=Lr(0,-1,null,1,0,null,null,null,null,null),y=Tr(null,p,v,f,null,null,s,c,u,a);nt(y,null);try{var g=function(e,t,n,r,i,o){var a=n[1];n[19]=e;var s=Pr(a,null,0,3,null,null),u=s.mergedAttrs=t.hostAttrs;null!==u&&(lo(s,u),null!==e&&(Ct(i,e,u),null!==s.classes&&Ii(i,e,s.classes),null!==s.styles&&Ri(i,e,s.styles)));var c=r.createRenderer(e,t),l=Tr(n,Dr(t),null,t.onPush?64:16,n[19],s,r,c,void 0);return a.firstCreatePass&&(Ht(Lt(s,n),a,t.type),Wr(a,s),Qr(s,n.length,1)),ri(n,l),n[19]=l}(h,this.componentDef,y,s,c);if(h)if(n)Ct(c,h,[\"ng-version\",Pa.full]);else{var m=function(e){for(var t=[],n=[],r=1,i=2;r<e.length;){var o=e[r];if(\"string\"==typeof o)2===i?\"\"!==o&&t.push(o,e[++r]):8===i&&n.push(o);else{if(!hr(i))break;i=o}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),b=m.attrs,_=m.classes;b&&Ct(c,h,b),_&&_.length>0&&Ii(c,h,_.join(\" \"))}o=Kn(y[1],0),t&&(o.projection=t.map((function(e){return Array.from(e)}))),i=function(e,t,n,r,i){var o=n[1],a=function(e,t,n){var r=qe();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),Gr(e,r,1),Jr(e,t,n));var i=Wt(t,e,t.length-1,r);ir(i,t);var o=Jn(r,t);return o&&ir(o,t),i}(o,n,t);r.components.push(a),e[8]=a,i&&i.forEach((function(e){return e(a,t)})),t.contentQueries&&t.contentQueries(1,a,n.length-1);var s=qe();if(o.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){ct(s.index-19);var u=n[1];zr(u,t),qr(u,n,t.hostVars),Br(t,a)}return a}(g,this.componentDef,y,v,[Yo]),Ar(p,y,null)}finally{st()}var C=new Ya(this.componentType,i,Ui(Ca,o,y),y,o);return n&&!d||(C.hostView._tViewNode.child=o),C}},{key:\"inputs\",get:function(){return Ka(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Ka(this.componentDef.outputs)}}]),t}(ma),Ya=function(e){function t(e,n,r,i,o){var a,s,u,c;return _classCallCheck(this,t),(a=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,a._rootLView=i,a._tNode=o,a.destroyCbs=[],a.instance=n,a.hostView=a.changeDetectorRef=new Vi(i),a.hostView._tViewNode=(s=i[1],u=i,null==(c=s.node)&&(s.node=c=Vr(0,null,2,-1,null,null)),u[6]=c),a.componentType=e,a}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new Jt(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),es=void 0,ts=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],es],[[\"AM\",\"PM\"],es,es],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],es,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],es,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",es,\"{1} 'at' {0}\",es],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],ns={};function rs(e,t,n){\"string\"!=typeof t&&(n=t,t=e[us.LocaleId]),t=t.toLowerCase().replace(/_/g,\"-\"),ns[t]=e,n&&(ns[t][us.ExtraData]=n)}function is(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=ss(t);if(n)return n;var r=t.split(\"-\")[0];if(n=ss(r))return n;if(\"en\"===r)return ts;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}function os(e){return is(e)[us.CurrencyCode]||null}function as(e){return is(e)[us.PluralCase]}function ss(e){return e in ns||(ns[e]=U.ng&&U.ng.common&&U.ng.common.locales&&U.ng.common.locales[e]),ns[e]}var us=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function cs(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var ls=new Map,hs={provide:_a,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=Te(e);return new $a(t,this.ngModule)}}]),t}(_a),deps:[ae]},fs=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var i=Ae(e),o=e[B]||null;return o&&cs(o),r._bootstrapComponents=It(i.bootstrap),r._r3Injector=Xi(e,n,[{provide:ae,useValue:_assertThisInitialized(r)},hs],T(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:oo.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:p.Default;return e===oo||e===ae||e===Q?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(_a)}}]),t}(ae),ds=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==Ae(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(T(t),\" vs \").concat(T(t.name)))})(n,ls.get(n),t),ls.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new fs(this.moduleType,e)}}]),t}(se);function vs(e,t,n,r){return function(e,t,n,r,i,o){var a=t+n;return _o(e,a,i)?mo(e,a+1,o?r.call(o,i):r(i)):bo(e,a+1)}(Fe(),Qe(),e,t,n,r)}function ps(e,t){var n,r=He(),i=e+19;r.firstCreatePass?(n=function(e,t){if(t)for(var n=t.length-1;n>=0;n--){var r=t[n];if(e===r.name)return r}throw new Error(\"The pipe '\".concat(e,\"' could not be found!\"))}(t,r.pipeRegistry),r.data[i]=n,n.onDestroy&&(r.destroyHooks||(r.destroyHooks=[])).push(i,n.onDestroy)):n=r.data[i];var o=(n.factory||(n.factory=Pe(n.type)))();return function(e,t,n,r){var i=n+19;i>=e.data.length&&(e.data[i]=null,e.blueprint[i]=null),t[i]=r}(r,Fe(),e,o),o}function ys(e,t,n,r,i,o){var a=Fe(),s=Xn(a,e);return function(e,t){return po.isWrapped(t)&&(t=po.unwrap(t),e[Je()]=yr),t}(a,function(e,t){return e[1].data[t+19].pure}(a,e)?function(e,t,n,r,i,o,a,s,u){var c=t+n;return function(e,t,n,r,i,o){var a=Co(e,t,n,r);return Co(e,t+2,i,o)||a}(e,c,i,o,a,s)?mo(e,c+4,u?r.call(u,i,o,a,s):r(i,o,a,s)):bo(e,c+4)}(a,Qe(),t,s.transform,n,r,i,o,s):s.transform(n,r,i,o))}var gs=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,a=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(a=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(a=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var u=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,a,s);return e instanceof i.a&&e.add(u),u}}]),t}(r.a);function ms(){return this._results[fo()]()}var bs=function(){function e(){_classCallCheck(this,e),this.dirty=!0,this._results=[],this.changes=new gs,this.length=0;var t=fo(),n=e.prototype;n[t]||(n[t]=ms)}return _createClass(e,[{key:\"map\",value:function(e){return this._results.map(e)}},{key:\"filter\",value:function(e){return this._results.filter(e)}},{key:\"find\",value:function(e){return this._results.find(e)}},{key:\"reduce\",value:function(e,t){return this._results.reduce(e,t)}},{key:\"forEach\",value:function(e){this._results.forEach(e)}},{key:\"some\",value:function(e){return this._results.some(e)}},{key:\"toArray\",value:function(){return this._results.slice()}},{key:\"toString\",value:function(){return this._results.toString()}},{key:\"reset\",value:function(e){this._results=function e(t,n){void 0===n&&(n=t);for(var r=0;r<t.length;r++){var i=t[r];Array.isArray(i)?(n===t&&(n=t.slice(0,r)),e(i,n)):n!==t&&n.push(i)}return n}(e),this.dirty=!1,this.length=this._results.length,this.last=this._results[this.length-1],this.first=this._results[0]}},{key:\"notifyOnChanges\",value:function(){this.changes.emit(this)}},{key:\"setDirty\",value:function(){this.dirty=!0}},{key:\"destroy\",value:function(){this.changes.complete(),this.changes.unsubscribe()}}]),e}(),_s=function(){function e(t){_classCallCheck(this,e),this.queryList=t,this.matches=null}return _createClass(e,[{key:\"clone\",value:function(){return new e(this.queryList)}},{key:\"setDirty\",value:function(){this.queryList.setDirty()}}]),e}(),Cs=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];_classCallCheck(this,e),this.queries=t}return _createClass(e,[{key:\"createEmbeddedView\",value:function(t){var n=t.queries;if(null!==n){for(var r=null!==t.contentQueries?t.contentQueries[0]:n.length,i=[],o=0;o<r;o++){var a=n.getByIndex(o);i.push(this.queries[a.indexInDeclarationView].clone())}return new e(i)}return null}},{key:\"insertView\",value:function(e){this.dirtyQueriesWithMatches(e)}},{key:\"detachView\",value:function(e){this.dirtyQueriesWithMatches(e)}},{key:\"dirtyQueriesWithMatches\",value:function(e){for(var t=0;t<this.queries.length;t++)null!==js(e,t).matches&&this.queries[t].setDirty()}}]),e}(),ks=function e(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.predicate=t,this.descendants=n,this.isStatic=r,this.read=i},ws=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];_classCallCheck(this,e),this.queries=t}return _createClass(e,[{key:\"elementStart\",value:function(e,t){for(var n=0;n<this.queries.length;n++)this.queries[n].elementStart(e,t)}},{key:\"elementEnd\",value:function(e){for(var t=0;t<this.queries.length;t++)this.queries[t].elementEnd(e)}},{key:\"embeddedTView\",value:function(t){for(var n=null,r=0;r<this.length;r++){var i=null!==n?n.length:0,o=this.getByIndex(r).embeddedTView(t,i);o&&(o.indexInDeclarationView=r,null!==n?n.push(o):n=[o])}return null!==n?new e(n):null}},{key:\"template\",value:function(e,t){for(var n=0;n<this.queries.length;n++)this.queries[n].template(e,t)}},{key:\"getByIndex\",value:function(e){return this.queries[e]}},{key:\"track\",value:function(e){this.queries.push(e)}},{key:\"length\",get:function(){return this.queries.length}}]),e}(),Os=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;_classCallCheck(this,e),this.metadata=t,this.matches=null,this.indexInDeclarationView=-1,this.crossesNgTemplate=!1,this._appliesToNextNode=!0,this._declarationNodeIndex=n}return _createClass(e,[{key:\"elementStart\",value:function(e,t){this.isApplyingToNode(t)&&this.matchTNode(e,t)}},{key:\"elementEnd\",value:function(e){this._declarationNodeIndex===e.index&&(this._appliesToNextNode=!1)}},{key:\"template\",value:function(e,t){this.elementStart(e,t)}},{key:\"embeddedTView\",value:function(t,n){return this.isApplyingToNode(t)?(this.crossesNgTemplate=!0,this.addMatch(-t.index,n),new e(this.metadata)):null}},{key:\"isApplyingToNode\",value:function(e){if(this._appliesToNextNode&&!1===this.metadata.descendants){for(var t=this._declarationNodeIndex,n=e.parent;null!==n&&4===n.type&&n.index!==t;)n=n.parent;return t===(null!==n?n.index:-1)}return this._appliesToNextNode}},{key:\"matchTNode\",value:function(e,t){if(Array.isArray(this.metadata.predicate))for(var n=this.metadata.predicate,r=0;r<n.length;r++)this.matchTNodeWithReadOption(e,t,Ss(t,n[r]));else{var i=this.metadata.predicate;i===Ga?0===t.type&&this.matchTNodeWithReadOption(e,t,-1):this.matchTNodeWithReadOption(e,t,Gt(t,e,i,!1,!1))}}},{key:\"matchTNodeWithReadOption\",value:function(e,t,n){if(null!==n){var r=this.metadata.read;if(null!==r)if(r===Ca||r===Za||r===Ga&&0===t.type)this.addMatch(t.index,-2);else{var i=Gt(t,e,r,!1,!1);null!==i&&this.addMatch(t.index,i)}else this.addMatch(t.index,n)}}},{key:\"addMatch\",value:function(e,t){null===this.matches?this.matches=[e,t]:this.matches.push(e,t)}}]),e}();function Ss(e,t){var n=e.localNames;if(null!==n)for(var r=0;r<n.length;r+=2)if(n[r]===t)return n[r+1];return null}function Es(e,t,n,r){return-1===n?function(e,t){return 3===e.type||4===e.type?Ui(Ca,e,t):0===e.type?Fi(Ga,Ca,e,t):null}(t,e):-2===n?function(e,t,n){return n===Ca?Ui(Ca,t,e):n===Ga?Fi(Ga,Ca,t,e):n===Za?Hi(Za,Ca,t,e):void 0}(e,t,r):Wt(e,e[1],n,t)}function xs(e,t,n,r){var i=t[5].queries[r];if(null===i.matches){for(var o=e.data,a=n.matches,s=[],u=0;u<a.length;u+=2){var c=a[u];s.push(c<0?null:Es(t,o[c],a[u+1],n.metadata.read))}i.matches=s}return i.matches}function Ts(e){var t=Fe(),n=He(),r=Ye();et(r+1);var i=js(n,r);if(e.dirty&&er(t)===i.metadata.isStatic){if(null===i.matches)e.reset([]);else{var o=i.crossesNgTemplate?function e(t,n,r,i){var o=t.queries.getByIndex(r),a=o.matches;if(null!==a)for(var s=xs(t,n,o,r),u=0;u<a.length;u+=2){var c=a[u];if(c>0)i.push(s[u/2]);else{for(var l=a[u+1],h=n[-c],f=9;f<h.length;f++){var d=h[f];d[17]===d[3]&&e(d[1],d,l,i)}if(null!==h[5])for(var v=h[5],p=0;p<v.length;p++){var y=v[p];e(y[1],y,l,i)}}}return i}(n,t,r,[]):xs(n,t,i,r);e.reset(o),e.notifyOnChanges()}return!0}return!1}function Ps(e,t,n,r){!function(e,t,n,r,i,o,a,s){e.firstCreatePass&&(function(e,t,n){null===e.queries&&(e.queries=new ws),e.queries.track(new Os(t,n))}(e,new ks(n,r,!1,i),a.index),function(e,t){var n=e.contentQueries||(e.contentQueries=[]);t!==(e.contentQueries.length?n[n.length-1]:-1)&&n.push(e.queries.length-1,t)}(e,s)),function(e,t){var n=new bs;!function(e,t,n,r){var i=ci(t);i.push(n),e.firstCreatePass&&li(e).push(r,i.length-1)}(e,t,n,n.destroy),null===t[5]&&(t[5]=new Cs),t[5].queries.push(new _s(n))}(e,t)}(He(),Fe(),t,n,r,0,qe(),e)}function As(){return e=Fe(),t=Ye(),e[5].queries[t].queryList;var e,t}function js(e,t){return e.queries.getByIndex(t)}function Rs(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p.Default,t=zi(!0);if(null!=t||e&p.Optional)return t;throw new Error(\"No provider for ChangeDetectorRef!\")}var Is=new Z(\"Application Initializer\"),Ns=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var i=this.appInits[r]();No(i)&&t.push(i)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(ne(Is,8))},e.\\u0275prov=m({token:e,factory:e.\\u0275fac}),e}(),Ms=new Z(\"AppId\"),Ds={provide:Ms,useFactory:function(){return\"\".concat(Ls()).concat(Ls()).concat(Ls())},deps:[]};function Ls(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Vs=new Z(\"Platform Initializer\"),Us=new Z(\"Platform ID\"),Fs=new Z(\"appBootstrapListener\"),Hs=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=m({token:e,factory:e.\\u0275fac}),e}(),zs=new Z(\"LocaleId\"),qs=new Z(\"DefaultCurrencyCode\"),Bs=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Gs=function(e){return new ds(e)},Ws=Gs,Zs=function(e){return Promise.resolve(Gs(e))},Qs=function(e){var t=Gs(e),n=It(Ae(e).declarations).reduce((function(e,t){var n=Te(t);return n&&e.push(new $a(n)),e}),[]);return new Bs(t,n)},Js=Qs,Ks=function(e){return Promise.resolve(Qs(e))},Xs=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Ws,this.compileModuleAsync=Zs,this.compileModuleAndAllComponentsSync=Js,this.compileModuleAndAllComponentsAsync=Ks}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=m({token:e,factory:e.\\u0275fac}),e}(),$s=new Z(\"compilerOptions\"),Ys=Promise.resolve(0);function eu(e){\"undefined\"==typeof Zone?Ys.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var tu=function(){function e(t){var n,r,i=t.enableLongStackTrace,o=void 0!==i&&i,a=t.shouldCoalesceEventChangeDetection,s=void 0!==a&&a;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new gs(!1),this.onMicrotaskEmpty=new gs(!1),this.onStable=new gs(!1),this.onError=new gs(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),o&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=s,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=U.requestAnimationFrame,t=U.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(U,(function(){e.lastRequestAnimationFrameId=-1,ou(e),iu(e)})),ou(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,i,o,a,s){try{return au(n),e.invokeTask(i,o,a,s)}finally{r&&\"eventTask\"===o.type&&r(),su(n)}},onInvoke:function(e,t,r,i,o,a,s){try{return au(n),e.invoke(r,i,o,a,s)}finally{su(n)}},onHasTask:function(e,t,r,i){e.hasTask(r,i),t===r&&(\"microTask\"==i.change?(n._hasPendingMicrotasks=i.microTask,ou(n),iu(n)):\"macroTask\"==i.change&&(n.hasPendingMacrotasks=i.macroTask))},onHandleError:function(e,t,r,i){return e.handleError(r,i),n.runOutsideAngular((function(){return n.onError.emit(i)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var i=this._inner,o=i.scheduleEventTask(\"NgZoneEvent: \"+r,e,ru,nu,nu);try{return i.runTask(o,t,n)}finally{i.cancelTask(o)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function nu(){}var ru={};function iu(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ou(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function au(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function su(e){e._nesting--,iu(e)}var uu=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new gs,this.onMicrotaskEmpty=new gs,this.onStable=new gs,this.onError=new gs}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),cu=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){tu.assertNotInAngularZone(),eu((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())eu((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,i=-1;t&&t>0&&(i=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==i})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:i,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(ne(tu))},e.\\u0275prov=m({token:e,factory:e.\\u0275fac}),e}(),lu=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,du.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return du.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=m({token:e,factory:e.\\u0275fac}),e}();function hu(e){du=e}var fu,du=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),vu=function(e,t,n){var r=new ds(n);if(0===so.size)return Promise.resolve(r);var i,o,a=(i=e.get($s,[]).concat(t).map((function(e){return e.providers})),o=[],i.forEach((function(e){return e&&o.push.apply(o,_toConsumableArray(e))})),o);if(0===a.length)return Promise.resolve(r);var s=function(){var e=U.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=oo.create({providers:a}).get(s.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(co))}return t}return so.forEach((function(e,n){var i=[];e.templateUrl&&i.push(r(e.templateUrl).then((function(t){e.template=t})));var o=e.styleUrls,a=e.styles||(e.styles=[]),s=e.styles.length;o&&o.forEach((function(t,n){a.push(\"\"),i.push(r(t).then((function(r){a[s+n]=r,o.splice(o.indexOf(t),1),0==o.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(i).then((function(){return function(e){uo.delete(e)}(n)}));t.push(u)})),so=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},pu=new Z(\"AllowMultipleToken\"),yu=function e(t,n){_classCallCheck(this,e),this.name=t,this.token=n};function gu(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),i=new Z(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],o=mu();if(!o||o.injector.get(pu,!1))if(e)e(n.concat(t).concat({provide:i,useValue:!0}));else{var a=n.concat(t).concat({provide:i,useValue:!0},{provide:Gi,useValue:\"platform\"});!function(e){if(fu&&!fu.destroyed&&!fu.injector.get(pu,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");fu=e.get(bu);var t=e.get(Vs,null);t&&t.forEach((function(e){return e()}))}(oo.create({providers:a,name:r}))}return function(e){var t=mu();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(i)}}function mu(){return fu&&!fu.destroyed?fu:null}var bu=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,i=this,o=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new uu:(\"zone.js\"===n?void 0:n)||new tu({enableLongStackTrace:mn(),shouldCoalesceEventChangeDetection:r})),a=[{provide:tu,useValue:o}];return o.run((function(){var t=oo.create({providers:a,parent:i.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(en,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return wu(i._modules,n)})),o.runOutsideAngular((function(){return o.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var o=((a=n.injector.get(Ns)).runInitializers(),a.donePromise.then((function(){return cs(n.injector.get(zs,\"en-US\")||\"en-US\"),i._moduleDoBootstrap(n),n})));return No(o)?o.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):o}catch(s){throw t.runOutsideAngular((function(){return e.handleError(s)})),s}var a}(r,o)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=_u({},n);return vu(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(ku);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(T(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(ne(oo))},e.\\u0275prov=m({token:e,factory:e.\\u0275fac}),e}();function _u(e,t){return Array.isArray(t)?t.reduce(_u,e):Object.assign(Object.assign({},e),t)}var Cu,ku=((Cu=function(){function e(t,n,r,i,l,h){var f=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=i,this._componentFactoryResolver=l,this._initStatus=h,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=mn(),this._zone.onMicrotaskEmpty.subscribe({next:function(){f._zone.run((function(){f.tick()}))}});var d=new o.a((function(e){f._stable=f._zone.isStable&&!f._zone.hasPendingMacrotasks&&!f._zone.hasPendingMicrotasks,f._zone.runOutsideAngular((function(){e.next(f._stable),e.complete()}))})),v=new o.a((function(e){var t;f._zone.runOutsideAngular((function(){t=f._zone.onStable.subscribe((function(){tu.assertNotInAngularZone(),eu((function(){f._stable||f._zone.hasPendingMacrotasks||f._zone.hasPendingMicrotasks||(f._stable=!0,e.next(!0))}))}))}));var n=f._zone.onUnstable.subscribe((function(){tu.assertInAngularZone(),f._stable&&(f._stable=!1,f._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=Object(a.a)(d,v.pipe((function(e){return Object(u.a)()(Object(s.a)(c)(e))})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof ma?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var i=n.isBoundToModule?void 0:this._injector.get(ae),o=n.create(oo.NULL,[],t||n.selector,i);o.onDestroy((function(){r._unloadComponent(o)}));var a=o.injector.get(cu,null);return a&&o.injector.get(lu).registerApplication(o.location.nativeElement,a),this._loadComponent(o),mn()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var i,o=this._views[Symbol.iterator]();!(t=(i=o.next()).done);t=!0)i.value.detectChanges()}catch(h){n=!0,r=h}finally{try{t||null==o.return||o.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var a=!0,s=!1,u=void 0;try{for(var c,l=this._views[Symbol.iterator]();!(a=(c=l.next()).done);a=!0)c.value.checkNoChanges()}catch(h){s=!0,u=h}finally{try{a||null==l.return||l.return()}finally{if(s)throw u}}}}catch(f){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(f)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;wu(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Fs,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),wu(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Cu)(ne(tu),ne(Hs),ne(oo),ne(en),ne(_a),ne(Ns))},Cu.\\u0275prov=m({token:Cu,factory:Cu.\\u0275fac}),Cu);function wu(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Ou=function e(){_classCallCheck(this,e)},Su=function e(){_classCallCheck(this,e)},Eu={factoryPathPrefix:\"\",factoryPathSuffix:\".ngfactory\"},xu=function(){var e=function(){function e(t,n){_classCallCheck(this,e),this._compiler=t,this._config=n||Eu}return _createClass(e,[{key:\"load\",value:function(e){return this.loadAndCompile(e)}},{key:\"loadAndCompile\",value:function(e){var t=this,r=_slicedToArray(e.split(\"#\"),2),i=r[0],o=r[1];return void 0===o&&(o=\"default\"),n(\"zn8P\")(i).then((function(e){return e[o]})).then((function(e){return Tu(e,i,o)})).then((function(e){return t._compiler.compileModuleAsync(e)}))}},{key:\"loadFactory\",value:function(e){var t=_slicedToArray(e.split(\"#\"),2),r=t[0],i=t[1],o=\"NgFactory\";return void 0===i&&(i=\"default\",o=\"\"),n(\"zn8P\")(this._config.factoryPathPrefix+r+this._config.factoryPathSuffix).then((function(e){return e[i+o]})).then((function(e){return Tu(e,r,i)}))}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(ne(Xs),ne(Su,8))},e.\\u0275prov=m({token:e,factory:e.\\u0275fac}),e}();function Tu(e,t,n){if(!e)throw new Error(\"Cannot find '\".concat(n,\"' in '\").concat(t,\"'\"));return e}var Pu=function(e){return null},Au=gu(null,\"core\",[{provide:Us,useValue:\"unknown\"},{provide:bu,deps:[oo]},{provide:lu,deps:[]},{provide:Hs,deps:[]}]),ju=[{provide:ku,useClass:ku,deps:[tu,Hs,oo,en,_a,Ns]},{provide:Xa,deps:[tu],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Ns,useClass:Ns,deps:[[new f,Is]]},{provide:Xs,useClass:Xs,deps:[]},Ds,{provide:Fa,useFactory:function(){return qa},deps:[]},{provide:Ha,useFactory:function(){return Ba},deps:[]},{provide:zs,useFactory:function(e){return cs(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new h(zs),new f,new v]]},{provide:qs,useValue:\"USD\"}],Ru=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=we({type:e}),e.\\u0275inj=b({factory:function(t){return new(t||e)(ne(ku))},providers:ju}),e}()},gRHU:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return o}));var r=n(\"2fFW\"),i=n(\"NJ4a\"),o={closed:!0,next:function(e){},error:function(e){if(r.a.useDeprecatedSynchronousErrorHandling)throw e;Object(i.a)(e)},complete:function(){}}},hO0c:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return o}));var r=n(\"fXoL\"),i=n(\"DZdm\"),o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.datasource=t}return _createClass(e,[{key:\"authenticate\",value:function(e,t){return this.datasource.authenticate(e,t)}},{key:\"clear\",value:function(){this.datasource.auth_token=null}},{key:\"authenticated\",get:function(){return null!=this.datasource.auth_token}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(r.Qb(i.a))},e.\\u0275prov=r.Fb({token:e,factory:e.\\u0275fac}),e}()},\"hf/X\":function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return o}));var r=n(\"fXoL\"),i=n(\"DZdm\"),o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.dataSource=t,this.orders=[],this.loaded=!1}return _createClass(e,[{key:\"loadOrders\",value:function(){var e=this;this.loaded=!0,this.dataSource.getOrders().subscribe((function(t){return e.orders=t}))}},{key:\"getOrders\",value:function(){return this.loaded||this.loadOrders(),this.orders}},{key:\"saveOrder\",value:function(e){return this.dataSource.saveOrder(e)}},{key:\"updateOrder\",value:function(e){var t=this;this.dataSource.updateOrder(e).subscribe((function(e){t.orders.splice(t.orders.findIndex((function(t){return t.id==e.id})),1,e)}))}},{key:\"deleteOrder\",value:function(e){var t=this;this.dataSource.deleteOrder(e).subscribe((function(n){t.orders.splice(t.orders.findIndex((function(t){return e==t.id})),1)}))}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(r.Qb(i.a))},e.\\u0275prov=r.Fb({token:e,factory:e.\\u0275fac}),e}()},jU2X:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return o}));var r=n(\"fXoL\"),i=n(\"DZdm\"),o=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.dataSource=t,this.products=[],this.categories=[],t.getProducts().subscribe((function(e){n.products=e,n.categories=e.map((function(e){return e.category})).filter((function(e,t,n){return n.indexOf(e)==t})).sort()}))}return _createClass(e,[{key:\"getProducts\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return this.products.filter((function(t){return null==e||e==t.category}))}},{key:\"getProduct\",value:function(e){return this.products.find((function(t){return t.id==e}))}},{key:\"getCategories\",value:function(){return this.categories}},{key:\"saveProduct\",value:function(e){var t=this;null==e.id||0==e.id?this.dataSource.saveProduct(e).subscribe((function(e){return t.products.push(e)})):this.dataSource.updateProduct(e).subscribe((function(n){t.products.splice(t.products.findIndex((function(t){return t.id==e.id})),1,e)}))}},{key:\"deleteProduct\",value:function(e){var t=this;this.dataSource.deleteProduct(e).subscribe((function(n){t.products.splice(t.products.findIndex((function(t){return t.id==e})),1)}))}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(r.Qb(i.a))},e.\\u0275prov=r.Fb({token:e,factory:e.\\u0275fac}),e}()},jZKg:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return o}));var r=n(\"HDdC\"),i=n(\"quSY\");function o(e,t){return new r.a((function(n){var r=new i.a,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}},kJWO:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return r}));var r=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\"},l7GE:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return r}));var r=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,i){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(n(\"7o/Q\").a)},lJxs:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return i}));var r=n(\"7o/Q\");function i(e,t){return function(n){if(\"function\"!=typeof e)throw new TypeError(\"argument is not a function. Are you looking for `mapTo()`?\");return n.lift(new o(e,t))}}var o=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new a(e,this.project,this.thisArg))}}]),e}(),a=function(e){function t(e,n,r){var i;return _classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,i.count=0,i.thisArg=r||_assertThisInitialized(i),i}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(r.a)},mCNh:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return i})),n.d(t,\"b\",(function(){return o}));var r=n(\"KqfI\");function i(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return o(t)}function o(e){return e?1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)}:r.a}},n6bG:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.d(t,\"a\",(function(){return r}))},ngJS:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return r}));var r=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}}},oB13:function(e,t,n){\"use strict\";var r,i=n(\"XNiG\"),o=n(\"HDdC\"),a=(n(\"7o/Q\"),n(\"quSY\")),s=n(\"x+ZX\"),u=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new a.a).add(this.source.subscribe(new l(this.getSubject(),this))),e.closed&&(this._connection=null,e=a.a.EMPTY)),e}},{key:\"refCount\",value:function(){return Object(s.a)()(this)}}]),t}(o.a),c={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(r=u.prototype)._subscribe},_isComplete:{value:r._isComplete,writable:!0},getSubject:{value:r.getSubject},connect:{value:r.connect},refCount:{value:r.refCount}},l=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(i.b);function h(e,t){return function(n){var r;if(r=\"function\"==typeof e?e:function(){return e},\"function\"==typeof t)return n.lift(new f(r,t));var i=Object.create(n,c);return i.source=n,i.subjectFactory=r,i}}n.d(t,\"a\",(function(){return h}));var f=function(){function e(t,n){_classCallCheck(this,e),this.subjectFactory=t,this.selector=n}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.selector,r=this.subjectFactory(),i=n(r).subscribe(e);return i.add(t.subscribe(r)),i}}]),e}()},ofXK:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return _})),n.d(t,\"b\",(function(){return B})),n.d(t,\"c\",(function(){return q})),n.d(t,\"d\",(function(){return u})),n.d(t,\"e\",(function(){return k})),n.d(t,\"f\",(function(){return h})),n.d(t,\"g\",(function(){return w})),n.d(t,\"h\",(function(){return m})),n.d(t,\"i\",(function(){return V})),n.d(t,\"j\",(function(){return F})),n.d(t,\"k\",(function(){return C})),n.d(t,\"l\",(function(){return c})),n.d(t,\"m\",(function(){return Z})),n.d(t,\"n\",(function(){return W})),n.d(t,\"o\",(function(){return s})),n.d(t,\"p\",(function(){return G})),n.d(t,\"q\",(function(){return o})),n.d(t,\"r\",(function(){return D})),n.d(t,\"s\",(function(){return a}));var r=n(\"fXoL\"),i=null;function o(){return i}function a(e){i||(i=e)}var s=function e(){_classCallCheck(this,e)},u=new r.q(\"DocumentToken\"),c=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=Object(r.Fb)({factory:l,token:e,providedIn:\"platform\"}),e}();function l(){return Object(r.Qb)(f)}var h=new r.q(\"Location Initialized\"),f=function(){var e=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._init(),n}return _inherits(t,e),_createClass(t,[{key:\"_init\",value:function(){this.location=o().getLocation(),this._history=o().getHistory()}},{key:\"getBaseHrefFromDOM\",value:function(){return o().getBaseHref(this._doc)}},{key:\"onPopState\",value:function(e){o().getGlobalEventTarget(this._doc,\"window\").addEventListener(\"popstate\",e,!1)}},{key:\"onHashChange\",value:function(e){o().getGlobalEventTarget(this._doc,\"window\").addEventListener(\"hashchange\",e,!1)}},{key:\"pushState\",value:function(e,t,n){d()?this._history.pushState(e,t,n):this.location.hash=n}},{key:\"replaceState\",value:function(e,t,n){d()?this._history.replaceState(e,t,n):this.location.hash=n}},{key:\"forward\",value:function(){this._history.forward()}},{key:\"back\",value:function(){this._history.back()}},{key:\"getState\",value:function(){return this._history.state}},{key:\"href\",get:function(){return this.location.href}},{key:\"protocol\",get:function(){return this.location.protocol}},{key:\"hostname\",get:function(){return this.location.hostname}},{key:\"port\",get:function(){return this.location.port}},{key:\"pathname\",get:function(){return this.location.pathname},set:function(e){this.location.pathname=e}},{key:\"search\",get:function(){return this.location.search}},{key:\"hash\",get:function(){return this.location.hash}}]),t}(c);return e.\\u0275fac=function(t){return new(t||e)(r.Qb(u))},e.\\u0275prov=Object(r.Fb)({factory:v,token:e,providedIn:\"platform\"}),e}();function d(){return!!window.history.pushState}function v(){return new f(Object(r.Qb)(u))}function p(e,t){if(0==e.length)return t;if(0==t.length)return e;var n=0;return e.endsWith(\"/\")&&n++,t.startsWith(\"/\")&&n++,2==n?e+t.substring(1):1==n?e+t:e+\"/\"+t}function y(e){var t=e.match(/#|\\?|$/),n=t&&t.index||e.length;return e.slice(0,n-(\"/\"===e[n-1]?1:0))+e.slice(n)}function g(e){return e&&\"?\"!==e[0]?\"?\"+e:e}var m=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=Object(r.Fb)({factory:b,token:e,providedIn:\"root\"}),e}();function b(e){var t=Object(r.Qb)(u).location;return new C(Object(r.Qb)(c),t&&t.origin||\"\")}var _=new r.q(\"appBaseHref\"),C=function(){var e=function(e){function t(e,n){var r;if(_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._platformLocation=e,null==n&&(n=r._platformLocation.getBaseHrefFromDOM()),null==n)throw new Error(\"No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.\");return r._baseHref=n,_possibleConstructorReturn(r)}return _inherits(t,e),_createClass(t,[{key:\"onPopState\",value:function(e){this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e)}},{key:\"getBaseHref\",value:function(){return this._baseHref}},{key:\"prepareExternalUrl\",value:function(e){return p(this._baseHref,e)}},{key:\"path\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this._platformLocation.pathname+g(this._platformLocation.search),n=this._platformLocation.hash;return n&&e?\"\".concat(t).concat(n):t}},{key:\"pushState\",value:function(e,t,n,r){var i=this.prepareExternalUrl(n+g(r));this._platformLocation.pushState(e,t,i)}},{key:\"replaceState\",value:function(e,t,n,r){var i=this.prepareExternalUrl(n+g(r));this._platformLocation.replaceState(e,t,i)}},{key:\"forward\",value:function(){this._platformLocation.forward()}},{key:\"back\",value:function(){this._platformLocation.back()}}]),t}(m);return e.\\u0275fac=function(t){return new(t||e)(r.Qb(c),r.Qb(_,8))},e.\\u0275prov=r.Fb({token:e,factory:e.\\u0275fac}),e}(),k=function(){var e=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._platformLocation=e,r._baseHref=\"\",null!=n&&(r._baseHref=n),r}return _inherits(t,e),_createClass(t,[{key:\"onPopState\",value:function(e){this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e)}},{key:\"getBaseHref\",value:function(){return this._baseHref}},{key:\"path\",value:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];var e=this._platformLocation.hash;return null==e&&(e=\"#\"),e.length>0?e.substring(1):e}},{key:\"prepareExternalUrl\",value:function(e){var t=p(this._baseHref,e);return t.length>0?\"#\"+t:t}},{key:\"pushState\",value:function(e,t,n,r){var i=this.prepareExternalUrl(n+g(r));0==i.length&&(i=this._platformLocation.pathname),this._platformLocation.pushState(e,t,i)}},{key:\"replaceState\",value:function(e,t,n,r){var i=this.prepareExternalUrl(n+g(r));0==i.length&&(i=this._platformLocation.pathname),this._platformLocation.replaceState(e,t,i)}},{key:\"forward\",value:function(){this._platformLocation.forward()}},{key:\"back\",value:function(){this._platformLocation.back()}}]),t}(m);return e.\\u0275fac=function(t){return new(t||e)(r.Qb(c),r.Qb(_,8))},e.\\u0275prov=r.Fb({token:e,factory:e.\\u0275fac}),e}(),w=function(){var e=function(){function e(t,n){var i=this;_classCallCheck(this,e),this._subject=new r.n,this._urlChangeListeners=[],this._platformStrategy=t;var o=this._platformStrategy.getBaseHref();this._platformLocation=n,this._baseHref=y(S(o)),this._platformStrategy.onPopState((function(e){i._subject.emit({url:i.path(!0),pop:!0,state:e.state,type:e.type})}))}return _createClass(e,[{key:\"path\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this.normalize(this._platformStrategy.path(e))}},{key:\"getState\",value:function(){return this._platformLocation.getState()}},{key:\"isCurrentPathEqualTo\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\";return this.path()==this.normalize(e+g(t))}},{key:\"normalize\",value:function(t){return e.stripTrailingSlash(function(e,t){return e&&t.startsWith(e)?t.substring(e.length):t}(this._baseHref,S(t)))}},{key:\"prepareExternalUrl\",value:function(e){return e&&\"/\"!==e[0]&&(e=\"/\"+e),this._platformStrategy.prepareExternalUrl(e)}},{key:\"go\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this._platformStrategy.pushState(n,\"\",e,t),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+g(t)),n)}},{key:\"replaceState\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this._platformStrategy.replaceState(n,\"\",e,t),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+g(t)),n)}},{key:\"forward\",value:function(){this._platformStrategy.forward()}},{key:\"back\",value:function(){this._platformStrategy.back()}},{key:\"onUrlChange\",value:function(e){var t=this;this._urlChangeListeners.push(e),this.subscribe((function(e){t._notifyUrlChangeListeners(e.url,e.state)}))}},{key:\"_notifyUrlChangeListeners\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",t=arguments.length>1?arguments[1]:void 0;this._urlChangeListeners.forEach((function(n){return n(e,t)}))}},{key:\"subscribe\",value:function(e,t,n){return this._subject.subscribe({next:e,error:t,complete:n})}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(r.Qb(m),r.Qb(c))},e.normalizeQueryParams=g,e.joinWithSlash=p,e.stripTrailingSlash=y,e.\\u0275prov=Object(r.Fb)({factory:O,token:e,providedIn:\"root\"}),e}();function O(){return new w(Object(r.Qb)(m),Object(r.Qb)(c))}function S(e){return e.replace(/\\/index.html$/,\"\")}var E={ADP:[void 0,void 0,0],AFN:[void 0,void 0,0],ALL:[void 0,void 0,0],AMD:[void 0,void 0,2],AOA:[void 0,\"Kz\"],ARS:[void 0,\"$\"],AUD:[\"A$\",\"$\"],BAM:[void 0,\"KM\"],BBD:[void 0,\"$\"],BDT:[void 0,\"\\u09f3\"],BHD:[void 0,void 0,3],BIF:[void 0,void 0,0],BMD:[void 0,\"$\"],BND:[void 0,\"$\"],BOB:[void 0,\"Bs\"],BRL:[\"R$\"],BSD:[void 0,\"$\"],BWP:[void 0,\"P\"],BYN:[void 0,\"\\u0440.\",2],BYR:[void 0,void 0,0],BZD:[void 0,\"$\"],CAD:[\"CA$\",\"$\",2],CHF:[void 0,void 0,2],CLF:[void 0,void 0,4],CLP:[void 0,\"$\",0],CNY:[\"CN\\xa5\",\"\\xa5\"],COP:[void 0,\"$\",2],CRC:[void 0,\"\\u20a1\",2],CUC:[void 0,\"$\"],CUP:[void 0,\"$\"],CZK:[void 0,\"K\\u010d\",2],DJF:[void 0,void 0,0],DKK:[void 0,\"kr\",2],DOP:[void 0,\"$\"],EGP:[void 0,\"E\\xa3\"],ESP:[void 0,\"\\u20a7\",0],EUR:[\"\\u20ac\"],FJD:[void 0,\"$\"],FKP:[void 0,\"\\xa3\"],GBP:[\"\\xa3\"],GEL:[void 0,\"\\u20be\"],GIP:[void 0,\"\\xa3\"],GNF:[void 0,\"FG\",0],GTQ:[void 0,\"Q\"],GYD:[void 0,\"$\",2],HKD:[\"HK$\",\"$\"],HNL:[void 0,\"L\"],HRK:[void 0,\"kn\"],HUF:[void 0,\"Ft\",2],IDR:[void 0,\"Rp\",2],ILS:[\"\\u20aa\"],INR:[\"\\u20b9\"],IQD:[void 0,void 0,0],IRR:[void 0,void 0,0],ISK:[void 0,\"kr\",0],ITL:[void 0,void 0,0],JMD:[void 0,\"$\"],JOD:[void 0,void 0,3],JPY:[\"\\xa5\",void 0,0],KHR:[void 0,\"\\u17db\"],KMF:[void 0,\"CF\",0],KPW:[void 0,\"\\u20a9\",0],KRW:[\"\\u20a9\",void 0,0],KWD:[void 0,void 0,3],KYD:[void 0,\"$\"],KZT:[void 0,\"\\u20b8\"],LAK:[void 0,\"\\u20ad\",0],LBP:[void 0,\"L\\xa3\",0],LKR:[void 0,\"Rs\"],LRD:[void 0,\"$\"],LTL:[void 0,\"Lt\"],LUF:[void 0,void 0,0],LVL:[void 0,\"Ls\"],LYD:[void 0,void 0,3],MGA:[void 0,\"Ar\",0],MGF:[void 0,void 0,0],MMK:[void 0,\"K\",0],MNT:[void 0,\"\\u20ae\",2],MRO:[void 0,void 0,0],MUR:[void 0,\"Rs\",2],MXN:[\"MX$\",\"$\"],MYR:[void 0,\"RM\"],NAD:[void 0,\"$\"],NGN:[void 0,\"\\u20a6\"],NIO:[void 0,\"C$\"],NOK:[void 0,\"kr\",2],NPR:[void 0,\"Rs\"],NZD:[\"NZ$\",\"$\"],OMR:[void 0,void 0,3],PHP:[void 0,\"\\u20b1\"],PKR:[void 0,\"Rs\",2],PLN:[void 0,\"z\\u0142\"],PYG:[void 0,\"\\u20b2\",0],RON:[void 0,\"lei\"],RSD:[void 0,void 0,0],RUB:[void 0,\"\\u20bd\"],RUR:[void 0,\"\\u0440.\"],RWF:[void 0,\"RF\",0],SBD:[void 0,\"$\"],SEK:[void 0,\"kr\",2],SGD:[void 0,\"$\"],SHP:[void 0,\"\\xa3\"],SLL:[void 0,void 0,0],SOS:[void 0,void 0,0],SRD:[void 0,\"$\"],SSP:[void 0,\"\\xa3\"],STD:[void 0,void 0,0],STN:[void 0,\"Db\"],SYP:[void 0,\"\\xa3\",0],THB:[void 0,\"\\u0e3f\"],TMM:[void 0,void 0,0],TND:[void 0,void 0,3],TOP:[void 0,\"T$\"],TRL:[void 0,void 0,0],TRY:[void 0,\"\\u20ba\"],TTD:[void 0,\"$\"],TWD:[\"NT$\",\"$\",2],TZS:[void 0,void 0,2],UAH:[void 0,\"\\u20b4\"],UGX:[void 0,void 0,0],USD:[\"$\"],UYI:[void 0,void 0,0],UYU:[void 0,\"$\"],UYW:[void 0,void 0,4],UZS:[void 0,void 0,2],VEF:[void 0,\"Bs\",2],VND:[\"\\u20ab\",void 0,0],VUV:[void 0,void 0,0],XAF:[\"FCFA\",void 0,0],XCD:[\"EC$\",\"$\"],XOF:[\"CFA\",void 0,0],XPF:[\"CFPF\",void 0,0],XXX:[\"\\xa4\"],YER:[void 0,void 0,0],ZAR:[void 0,\"R\"],ZMK:[void 0,void 0,0],ZMW:[void 0,\"ZK\"],ZWD:[void 0,void 0,0]},x=function(){var e={Decimal:0,Percent:1,Currency:2,Scientific:3};return e[e.Decimal]=\"Decimal\",e[e.Percent]=\"Percent\",e[e.Currency]=\"Currency\",e[e.Scientific]=\"Scientific\",e}(),T=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),P=function(){var e={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};return e[e.Decimal]=\"Decimal\",e[e.Group]=\"Group\",e[e.List]=\"List\",e[e.PercentSign]=\"PercentSign\",e[e.PlusSign]=\"PlusSign\",e[e.MinusSign]=\"MinusSign\",e[e.Exponential]=\"Exponential\",e[e.SuperscriptingExponent]=\"SuperscriptingExponent\",e[e.PerMille]=\"PerMille\",e[e.Infinity]=\"Infinity\",e[e.NaN]=\"NaN\",e[e.TimeSeparator]=\"TimeSeparator\",e[e.CurrencyDecimal]=\"CurrencyDecimal\",e[e.CurrencyGroup]=\"CurrencyGroup\",e}();function A(e,t){var n=Object(r.ib)(e),i=n[r.Y.NumberSymbols][t];if(void 0===i){if(t===P.CurrencyDecimal)return n[r.Y.NumberSymbols][P.Decimal];if(t===P.CurrencyGroup)return n[r.Y.NumberSymbols][P.Group]}return i}var j=r.lb,R=/^(\\d+)?\\.((\\d+)(-(\\d+))?)?$/;function I(e){var t=parseInt(e);if(isNaN(t))throw new Error(\"Invalid integer literal when parsing \"+e);return t}var N=function e(){_classCallCheck(this,e)},M=function(){var e=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(j(t||this.locale)(e)){case T.Zero:return\"zero\";case T.One:return\"one\";case T.Two:return\"two\";case T.Few:return\"few\";case T.Many:return\"many\";default:return\"other\"}}}]),t}(N);return e.\\u0275fac=function(t){return new(t||e)(r.Qb(r.u))},e.\\u0275prov=r.Fb({token:e,factory:e.\\u0275fac}),e}();function D(e,t){t=encodeURIComponent(t);var n=!0,r=!1,i=void 0;try{for(var o,a=e.split(\";\")[Symbol.iterator]();!(n=(o=a.next()).done);n=!0){var s=o.value,u=s.indexOf(\"=\"),c=_slicedToArray(-1==u?[s,\"\"]:[s.slice(0,u),s.slice(u+1)],2),l=c[0],h=c[1];if(l.trim()===t)return decodeURIComponent(h)}}catch(f){r=!0,i=f}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return null}var L=function(){function e(t,n,r,i){_classCallCheck(this,e),this.$implicit=t,this.ngForOf=n,this.index=r,this.count=i}return _createClass(e,[{key:\"first\",get:function(){return 0===this.index}},{key:\"last\",get:function(){return this.index===this.count-1}},{key:\"even\",get:function(){return this.index%2==0}},{key:\"odd\",get:function(){return!this.even}}]),e}(),V=function(){var e=function(){function e(t,n,r){_classCallCheck(this,e),this._viewContainer=t,this._template=n,this._differs=r,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}return _createClass(e,[{key:\"ngDoCheck\",value:function(){if(this._ngForOfDirty){this._ngForOfDirty=!1;var e=this._ngForOf;if(!this._differ&&e)try{this._differ=this._differs.find(e).create(this.ngForTrackBy)}catch(r){throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'. NgFor only supports binding to Iterables such as Arrays.\"))}}var t;if(this._differ){var n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}}},{key:\"_applyChanges\",value:function(e){var t=this,n=[];e.forEachOperation((function(e,r,i){if(null==e.previousIndex){var o=t._viewContainer.createEmbeddedView(t._template,new L(null,t._ngForOf,-1,-1),null===i?void 0:i),a=new U(e,o);n.push(a)}else if(null==i)t._viewContainer.remove(null===r?void 0:r);else if(null!==r){var s=t._viewContainer.get(r);t._viewContainer.move(s,i);var u=new U(e,s);n.push(u)}}));for(var r=0;r<n.length;r++)this._perViewChange(n[r].view,n[r].record);for(var i=0,o=this._viewContainer.length;i<o;i++){var a=this._viewContainer.get(i);a.context.index=i,a.context.count=o,a.context.ngForOf=this._ngForOf}e.forEachIdentityChange((function(e){t._viewContainer.get(e.currentIndex).context.$implicit=e.item}))}},{key:\"_perViewChange\",value:function(e,t){e.context.$implicit=t.item}},{key:\"ngForOf\",set:function(e){this._ngForOf=e,this._ngForOfDirty=!0}},{key:\"ngForTrackBy\",set:function(e){Object(r.T)()&&null!=e&&\"function\"!=typeof e&&console&&console.warn&&console.warn(\"trackBy must be a function, but received \".concat(JSON.stringify(e),\". \")+\"See https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html#!#change-propagation for more information.\"),this._trackByFn=e},get:function(){return this._trackByFn}},{key:\"ngForTemplate\",set:function(e){e&&(this._template=e)}}],[{key:\"ngTemplateContextGuard\",value:function(e,t){return!0}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(r.Jb(r.N),r.Jb(r.K),r.Jb(r.s))},e.\\u0275dir=r.Eb({type:e,selectors:[[\"\",\"ngFor\",\"\",\"ngForOf\",\"\"]],inputs:{ngForOf:\"ngForOf\",ngForTrackBy:\"ngForTrackBy\",ngForTemplate:\"ngForTemplate\"}}),e}(),U=function e(t,n){_classCallCheck(this,e),this.record=t,this.view=n},F=function(){var e=function(){function e(t,n){_classCallCheck(this,e),this._viewContainer=t,this._context=new H,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=n}return _createClass(e,[{key:\"_updateView\",value:function(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}},{key:\"ngIf\",set:function(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}},{key:\"ngIfThen\",set:function(e){z(\"ngIfThen\",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}},{key:\"ngIfElse\",set:function(e){z(\"ngIfElse\",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}}],[{key:\"ngTemplateContextGuard\",value:function(e,t){return!0}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(r.Jb(r.N),r.Jb(r.K))},e.\\u0275dir=r.Eb({type:e,selectors:[[\"\",\"ngIf\",\"\"]],inputs:{ngIf:\"ngIf\",ngIfThen:\"ngIfThen\",ngIfElse:\"ngIfElse\"}}),e}(),H=function e(){_classCallCheck(this,e),this.$implicit=null,this.ngIf=null};function z(e,t){if(t&&!t.createEmbeddedView)throw new Error(\"\".concat(e,\" must be a TemplateRef, but received '\").concat(Object(r.ub)(t),\"'.\"))}var q=function(){var e=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"USD\";_classCallCheck(this,e),this._locale=t,this._defaultCurrencyCode=n}return _createClass(e,[{key:\"transform\",value:function(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"symbol\",o=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0;if(function(e){return null==e||\"\"===e||e!=e}(t))return null;a=a||this._locale,\"boolean\"==typeof i&&(console&&console.warn&&console.warn('Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are \"code\", \"symbol\" or \"symbol-narrow\".'),i=i?\"symbol\":\"code\");var s=n||this._defaultCurrencyCode;\"code\"!==i&&(s=\"symbol\"===i||\"symbol-narrow\"===i?function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"en\",i=function(e){return Object(r.ib)(e)[r.Y.Currencies]}(n)[e]||E[e]||[],o=i[1];return\"narrow\"===t&&\"string\"==typeof o?o:i[0]||e}(s,\"symbol\"===i?\"wide\":\"narrow\",a):i);try{return function(e,t,n,i,o){var a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"-\",n={minInt:1,minFrac:0,maxFrac:0,posPre:\"\",posSuf:\"\",negPre:\"\",negSuf:\"\",gSize:0,lgSize:0},r=e.split(\";\"),i=r[0],o=r[1],a=-1!==i.indexOf(\".\")?i.split(\".\"):[i.substring(0,i.lastIndexOf(\"0\")+1),i.substring(i.lastIndexOf(\"0\")+1)],s=a[0],u=a[1]||\"\";n.posPre=s.substr(0,s.indexOf(\"#\"));for(var c=0;c<u.length;c++){var l=u.charAt(c);\"0\"===l?n.minFrac=n.maxFrac=c+1:\"#\"===l?n.maxFrac=c+1:n.posSuf+=l}var h=s.split(\",\");if(n.gSize=h[1]?h[1].length:0,n.lgSize=h[2]||h[1]?(h[2]||h[1]).length:0,o){var f=i.length-n.posPre.length-n.posSuf.length,d=o.indexOf(\"#\");n.negPre=o.substr(0,d).replace(/'/g,\"\"),n.negSuf=o.substr(d+f).replace(/'/g,\"\")}else n.negPre=t+n.posPre,n.negSuf=n.posSuf;return n}(function(e,t){return Object(r.ib)(e)[r.Y.NumberFormats][t]}(t,x.Currency),A(t,P.MinusSign));return a.minFrac=function(e){var t,n=E[e];return n&&(t=n[2]),\"number\"==typeof t?t:2}(i),a.maxFrac=a.minFrac,function(e,t,n,r,i,o){var a=arguments.length>6&&void 0!==arguments[6]&&arguments[6],s=\"\",u=!1;if(isFinite(e)){var c=function(e){var t,n,r,i,o,a=Math.abs(e)+\"\",s=0;for((n=a.indexOf(\".\"))>-1&&(a=a.replace(\".\",\"\")),(r=a.search(/e/i))>0?(n<0&&(n=r),n+=+a.slice(r+1),a=a.substring(0,r)):n<0&&(n=a.length),r=0;\"0\"===a.charAt(r);r++);if(r===(o=a.length))t=[0],n=1;else{for(o--;\"0\"===a.charAt(o);)o--;for(n-=r,t=[],i=0;r<=o;r++,i++)t[i]=Number(a.charAt(r))}return n>22&&(t=t.splice(0,21),s=n-1,n=1),{digits:t,exponent:s,integerLen:n}}(e);a&&(c=function(e){if(0===e.digits[0])return e;var t=e.digits.length-e.integerLen;return e.exponent?e.exponent+=2:(0===t?e.digits.push(0,0):1===t&&e.digits.push(0),e.integerLen+=2),e}(c));var l=t.minInt,h=t.minFrac,f=t.maxFrac;if(o){var d=o.match(R);if(null===d)throw new Error(\"\".concat(o,\" is not a valid digit info\"));var v=d[1],p=d[3],y=d[5];null!=v&&(l=I(v)),null!=p&&(h=I(p)),null!=y?f=I(y):null!=p&&h>f&&(f=h)}!function(e,t,n){if(t>n)throw new Error(\"The minimum number of digits after fraction (\".concat(t,\") is higher than the maximum (\").concat(n,\").\"));var r=e.digits,i=r.length-e.integerLen,o=Math.min(Math.max(t,i),n),a=o+e.integerLen,s=r[a];if(a>0){r.splice(Math.max(e.integerLen,a));for(var u=a;u<r.length;u++)r[u]=0}else{i=Math.max(0,i),e.integerLen=1,r.length=Math.max(1,a=o+1),r[0]=0;for(var c=1;c<a;c++)r[c]=0}if(s>=5)if(a-1<0){for(var l=0;l>a;l--)r.unshift(0),e.integerLen++;r.unshift(1),e.integerLen++}else r[a-1]++;for(;i<Math.max(0,o);i++)r.push(0);var h=0!==o,f=t+e.integerLen,d=r.reduceRight((function(e,t,n,r){return r[n]=(t+=e)<10?t:t-10,h&&(0===r[n]&&n>=f?r.pop():h=!1),t>=10?1:0}),0);d&&(r.unshift(d),e.integerLen++)}(c,h,f);var g=c.digits,m=c.integerLen,b=c.exponent,_=[];for(u=g.every((function(e){return!e}));m<l;m++)g.unshift(0);for(;m<0;m++)g.unshift(0);m>0?_=g.splice(m,g.length):(_=g,g=[0]);var C=[];for(g.length>=t.lgSize&&C.unshift(g.splice(-t.lgSize,g.length).join(\"\"));g.length>t.gSize;)C.unshift(g.splice(-t.gSize,g.length).join(\"\"));g.length&&C.unshift(g.join(\"\")),s=C.join(A(n,r)),_.length&&(s+=A(n,i)+_.join(\"\")),b&&(s+=A(n,P.Exponential)+\"+\"+b)}else s=A(n,P.Infinity);return s=e<0&&!u?t.negPre+s+t.negSuf:t.posPre+s+t.posSuf}(e,a,t,P.CurrencyGroup,P.CurrencyDecimal,o).replace(\"\\xa4\",n).replace(\"\\xa4\",\"\").trim()}(function(e){if(\"string\"==typeof e&&!isNaN(Number(e)-parseFloat(e)))return Number(e);if(\"number\"!=typeof e)throw new Error(\"\".concat(e,\" is not a number\"));return e}(t),a,s,n,o)}catch(u){throw function(e,t){return Error(\"InvalidPipeArgument: '\".concat(t,\"' for pipe '\").concat(Object(r.ub)(e),\"'\"))}(e,u.message)}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(r.Jb(r.u),r.Jb(r.k))},e.\\u0275pipe=r.Ib({name:\"currency\",type:e,pure:!0}),e}(),B=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275mod=r.Hb({type:e}),e.\\u0275inj=r.Gb({factory:function(t){return new(t||e)},providers:[{provide:N,useClass:M}]}),e}(),G=\"browser\";function W(e){return e===G}var Z=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=Object(r.Fb)({token:e,providedIn:\"root\",factory:function(){return new Q(Object(r.Qb)(u),window,Object(r.Qb)(r.m))}}),e}(),Q=function(){function e(t,n,r){_classCallCheck(this,e),this.document=t,this.window=n,this.errorHandler=r,this.offset=function(){return[0,0]}}return _createClass(e,[{key:\"setOffset\",value:function(e){this.offset=Array.isArray(e)?function(){return e}:e}},{key:\"getScrollPosition\",value:function(){return this.supportScrollRestoration()?[this.window.scrollX,this.window.scrollY]:[0,0]}},{key:\"scrollToPosition\",value:function(e){this.supportScrollRestoration()&&this.window.scrollTo(e[0],e[1])}},{key:\"scrollToAnchor\",value:function(e){if(this.supportScrollRestoration()){e=this.window.CSS&&this.window.CSS.escape?this.window.CSS.escape(e):e.replace(/(\\\"|\\'\\ |:|\\.|\\[|\\]|,|=)/g,\"\\\\$1\");try{var t=this.document.querySelector(\"#\".concat(e));if(t)return void this.scrollToElement(t);var n=this.document.querySelector(\"[name='\".concat(e,\"']\"));if(n)return void this.scrollToElement(n)}catch(r){this.errorHandler.handleError(r)}}}},{key:\"setHistoryScrollRestoration\",value:function(e){if(this.supportScrollRestoration()){var t=this.window.history;t&&t.scrollRestoration&&(t.scrollRestoration=e)}}},{key:\"scrollToElement\",value:function(e){var t=e.getBoundingClientRect(),n=t.left+this.window.pageXOffset,r=t.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(n-i[0],r-i[1])}},{key:\"supportScrollRestoration\",value:function(){try{return!!this.window&&!!this.window.scrollTo}catch(e){return!1}}}]),e}()},pLZG:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return i}));var r=n(\"7o/Q\");function i(e,t){return function(n){return n.lift(new o(e,t))}}var o=function(){function e(t,n){_classCallCheck(this,e),this.predicate=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new a(e,this.predicate,this.thisArg))}}]),e}(),a=function(e){function t(e,n,r){var i;return _classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).predicate=n,i.thisArg=r,i.count=0,i}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}t&&this.destination.next(e)}}]),t}(r.a)},quSY:function(e,t,n){\"use strict\";var r=n(\"DH7j\"),i=n(\"XoHu\"),o=n(\"n6bG\"),a=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}();n.d(t,\"a\",(function(){return c}));var s,u,c=((u=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,s=this._unsubscribe,u=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var c=0;c<n.length;++c)n[c].remove(this);if(Object(o.a)(s))try{s.call(this)}catch(v){t=v instanceof a?l(v.errors):[v]}if(Object(r.a)(u))for(var h=-1,f=u.length;++h<f;){var d=u[h];if(Object(i.a)(d))try{d.unsubscribe()}catch(v){t=t||[],v instanceof a?t=t.concat(l(v.errors)):t.push(v)}}if(t)throw new a(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var i=n._parentOrParents;if(null===i)n._parentOrParents=this;else if(i instanceof e){if(i===this)return n;n._parentOrParents=[i,this]}else{if(-1!==i.indexOf(this))return n;i.push(this)}var o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=((s=new u).closed=!0,s),u);function l(e){return e.reduce((function(e,t){return e.concat(t instanceof a?t.errors:t)}),[])}},\"tk/3\":function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return E})),n.d(t,\"b\",(function(){return H})),n.d(t,\"c\",(function(){return f}));var r=n(\"fXoL\"),i=n(\"LRne\"),o=n(\"HDdC\"),a=n(\"bOdf\"),s=n(\"pLZG\"),u=n(\"lJxs\"),c=n(\"ofXK\"),l=function e(){_classCallCheck(this,e)},h=function e(){_classCallCheck(this,e)},f=function(){function e(t){var n=this;_classCallCheck(this,e),this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit=\"string\"==typeof t?function(){n.headers=new Map,t.split(\"\\n\").forEach((function(e){var t=e.indexOf(\":\");if(t>0){var r=e.slice(0,t),i=r.toLowerCase(),o=e.slice(t+1).trim();n.maybeSetNormalizedName(r,i),n.headers.has(i)?n.headers.get(i).push(o):n.headers.set(i,[o])}}))}:function(){n.headers=new Map,Object.keys(t).forEach((function(e){var r=t[e],i=e.toLowerCase();\"string\"==typeof r&&(r=[r]),r.length>0&&(n.headers.set(i,r),n.maybeSetNormalizedName(e,i))}))}:this.headers=new Map}return _createClass(e,[{key:\"has\",value:function(e){return this.init(),this.headers.has(e.toLowerCase())}},{key:\"get\",value:function(e){this.init();var t=this.headers.get(e.toLowerCase());return t&&t.length>0?t[0]:null}},{key:\"keys\",value:function(){return this.init(),Array.from(this.normalizedNames.values())}},{key:\"getAll\",value:function(e){return this.init(),this.headers.get(e.toLowerCase())||null}},{key:\"append\",value:function(e,t){return this.clone({name:e,value:t,op:\"a\"})}},{key:\"set\",value:function(e,t){return this.clone({name:e,value:t,op:\"s\"})}},{key:\"delete\",value:function(e,t){return this.clone({name:e,value:t,op:\"d\"})}},{key:\"maybeSetNormalizedName\",value:function(e,t){this.normalizedNames.has(t)||this.normalizedNames.set(t,e)}},{key:\"init\",value:function(){var t=this;this.lazyInit&&(this.lazyInit instanceof e?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach((function(e){return t.applyUpdate(e)})),this.lazyUpdate=null))}},{key:\"copyFrom\",value:function(e){var t=this;e.init(),Array.from(e.headers.keys()).forEach((function(n){t.headers.set(n,e.headers.get(n)),t.normalizedNames.set(n,e.normalizedNames.get(n))}))}},{key:\"clone\",value:function(t){var n=new e;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof e?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([t]),n}},{key:\"applyUpdate\",value:function(e){var t=e.name.toLowerCase();switch(e.op){case\"a\":case\"s\":var n=e.value;if(\"string\"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(e.name,t);var r=(\"a\"===e.op?this.headers.get(t):void 0)||[];r.push.apply(r,_toConsumableArray(n)),this.headers.set(t,r);break;case\"d\":var i=e.value;if(i){var o=this.headers.get(t);if(!o)return;0===(o=o.filter((function(e){return-1===i.indexOf(e)}))).length?(this.headers.delete(t),this.normalizedNames.delete(t)):this.headers.set(t,o)}else this.headers.delete(t),this.normalizedNames.delete(t)}}},{key:\"forEach\",value:function(e){var t=this;this.init(),Array.from(this.normalizedNames.keys()).forEach((function(n){return e(t.normalizedNames.get(n),t.headers.get(n))}))}}]),e}(),d=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"encodeKey\",value:function(e){return v(e)}},{key:\"encodeValue\",value:function(e){return v(e)}},{key:\"decodeKey\",value:function(e){return decodeURIComponent(e)}},{key:\"decodeValue\",value:function(e){return decodeURIComponent(e)}}]),e}();function v(e){return encodeURIComponent(e).replace(/%40/gi,\"@\").replace(/%3A/gi,\":\").replace(/%24/gi,\"$\").replace(/%2C/gi,\",\").replace(/%3B/gi,\";\").replace(/%2B/gi,\"+\").replace(/%3D/gi,\"=\").replace(/%3F/gi,\"?\").replace(/%2F/gi,\"/\")}var p=function(){function e(){var t,n,r,i=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(_classCallCheck(this,e),this.updates=null,this.cloneFrom=null,this.encoder=o.encoder||new d,o.fromString){if(o.fromObject)throw new Error(\"Cannot specify both fromString and fromObject.\");this.map=(t=o.fromString,n=this.encoder,r=new Map,t.length>0&&t.split(\"&\").forEach((function(e){var t=e.indexOf(\"=\"),i=_slicedToArray(-1==t?[n.decodeKey(e),\"\"]:[n.decodeKey(e.slice(0,t)),n.decodeValue(e.slice(t+1))],2),o=i[0],a=i[1],s=r.get(o)||[];s.push(a),r.set(o,s)})),r)}else o.fromObject?(this.map=new Map,Object.keys(o.fromObject).forEach((function(e){var t=o.fromObject[e];i.map.set(e,Array.isArray(t)?t:[t])}))):this.map=null}return _createClass(e,[{key:\"has\",value:function(e){return this.init(),this.map.has(e)}},{key:\"get\",value:function(e){this.init();var t=this.map.get(e);return t?t[0]:null}},{key:\"getAll\",value:function(e){return this.init(),this.map.get(e)||null}},{key:\"keys\",value:function(){return this.init(),Array.from(this.map.keys())}},{key:\"append\",value:function(e,t){return this.clone({param:e,value:t,op:\"a\"})}},{key:\"set\",value:function(e,t){return this.clone({param:e,value:t,op:\"s\"})}},{key:\"delete\",value:function(e,t){return this.clone({param:e,value:t,op:\"d\"})}},{key:\"toString\",value:function(){var e=this;return this.init(),this.keys().map((function(t){var n=e.encoder.encodeKey(t);return e.map.get(t).map((function(t){return n+\"=\"+e.encoder.encodeValue(t)})).join(\"&\")})).filter((function(e){return\"\"!==e})).join(\"&\")}},{key:\"clone\",value:function(t){var n=new e({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat([t]),n}},{key:\"init\",value:function(){var e=this;null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach((function(t){return e.map.set(t,e.cloneFrom.map.get(t))})),this.updates.forEach((function(t){switch(t.op){case\"a\":case\"s\":var n=(\"a\"===t.op?e.map.get(t.param):void 0)||[];n.push(t.value),e.map.set(t.param,n);break;case\"d\":if(void 0===t.value){e.map.delete(t.param);break}var r=e.map.get(t.param)||[],i=r.indexOf(t.value);-1!==i&&r.splice(i,1),r.length>0?e.map.set(t.param,r):e.map.delete(t.param)}})),this.cloneFrom=this.updates=null)}}]),e}();function y(e){return\"undefined\"!=typeof ArrayBuffer&&e instanceof ArrayBuffer}function g(e){return\"undefined\"!=typeof Blob&&e instanceof Blob}function m(e){return\"undefined\"!=typeof FormData&&e instanceof FormData}var b=function(){function e(t,n,r,i){var o;if(_classCallCheck(this,e),this.url=n,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType=\"json\",this.method=t.toUpperCase(),function(e){switch(e){case\"DELETE\":case\"GET\":case\"HEAD\":case\"OPTIONS\":case\"JSONP\":return!1;default:return!0}}(this.method)||i?(this.body=void 0!==r?r:null,o=i):o=r,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.params&&(this.params=o.params)),this.headers||(this.headers=new f),this.params){var a=this.params.toString();if(0===a.length)this.urlWithParams=n;else{var s=n.indexOf(\"?\");this.urlWithParams=n+(-1===s?\"?\":s<n.length-1?\"&\":\"\")+a}}else this.params=new p,this.urlWithParams=n}return _createClass(e,[{key:\"serializeBody\",value:function(){return null===this.body?null:y(this.body)||g(this.body)||m(this.body)||\"string\"==typeof this.body?this.body:this.body instanceof p?this.body.toString():\"object\"==typeof this.body||\"boolean\"==typeof this.body||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}},{key:\"detectContentTypeHeader\",value:function(){return null===this.body?null:m(this.body)?null:g(this.body)?this.body.type||null:y(this.body)?null:\"string\"==typeof this.body?\"text/plain\":this.body instanceof p?\"application/x-www-form-urlencoded;charset=UTF-8\":\"object\"==typeof this.body||\"number\"==typeof this.body||Array.isArray(this.body)?\"application/json\":null}},{key:\"clone\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.method||this.method,r=t.url||this.url,i=t.responseType||this.responseType,o=void 0!==t.body?t.body:this.body,a=void 0!==t.withCredentials?t.withCredentials:this.withCredentials,s=void 0!==t.reportProgress?t.reportProgress:this.reportProgress,u=t.headers||this.headers,c=t.params||this.params;return void 0!==t.setHeaders&&(u=Object.keys(t.setHeaders).reduce((function(e,n){return e.set(n,t.setHeaders[n])}),u)),t.setParams&&(c=Object.keys(t.setParams).reduce((function(e,n){return e.set(n,t.setParams[n])}),c)),new e(n,r,o,{params:c,headers:u,reportProgress:s,responseType:i,withCredentials:a})}}]),e}(),_=function(){var e={Sent:0,UploadProgress:1,ResponseHeader:2,DownloadProgress:3,Response:4,User:5};return e[e.Sent]=\"Sent\",e[e.UploadProgress]=\"UploadProgress\",e[e.ResponseHeader]=\"ResponseHeader\",e[e.DownloadProgress]=\"DownloadProgress\",e[e.Response]=\"Response\",e[e.User]=\"User\",e}(),C=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"OK\";_classCallCheck(this,e),this.headers=t.headers||new f,this.status=void 0!==t.status?t.status:n,this.statusText=t.statusText||r,this.url=t.url||null,this.ok=this.status>=200&&this.status<300},k=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,n))).type=_.ResponseHeader,e}return _inherits(t,e),_createClass(t,[{key:\"clone\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new t({headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}}]),t}(C),w=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,n))).type=_.Response,e.body=void 0!==n.body?n.body:null,e}return _inherits(t,e),_createClass(t,[{key:\"clone\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new t({body:void 0!==e.body?e.body:this.body,headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}}]),t}(C),O=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e,0,\"Unknown Error\"))).name=\"HttpErrorResponse\",n.ok=!1,n.message=n.status>=200&&n.status<300?\"Http failure during parsing for \".concat(e.url||\"(unknown url)\"):\"Http failure response for \".concat(e.url||\"(unknown url)\",\": \").concat(e.status,\" \").concat(e.statusText),n.error=e.error||null,n}return _inherits(t,e),t}(C);function S(e,t){return{body:t,headers:e.headers,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials}}var E=function(){var e=function(){function e(t){_classCallCheck(this,e),this.handler=t}return _createClass(e,[{key:\"request\",value:function(e,t){var n,r=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e instanceof b)n=e;else{var c=void 0;c=o.headers instanceof f?o.headers:new f(o.headers);var l=void 0;o.params&&(l=o.params instanceof p?o.params:new p({fromObject:o.params})),n=new b(e,t,void 0!==o.body?o.body:null,{headers:c,params:l,reportProgress:o.reportProgress,responseType:o.responseType||\"json\",withCredentials:o.withCredentials})}var h=Object(i.a)(n).pipe(Object(a.a)((function(e){return r.handler.handle(e)})));if(e instanceof b||\"events\"===o.observe)return h;var d=h.pipe(Object(s.a)((function(e){return e instanceof w})));switch(o.observe||\"body\"){case\"body\":switch(n.responseType){case\"arraybuffer\":return d.pipe(Object(u.a)((function(e){if(null!==e.body&&!(e.body instanceof ArrayBuffer))throw new Error(\"Response is not an ArrayBuffer.\");return e.body})));case\"blob\":return d.pipe(Object(u.a)((function(e){if(null!==e.body&&!(e.body instanceof Blob))throw new Error(\"Response is not a Blob.\");return e.body})));case\"text\":return d.pipe(Object(u.a)((function(e){if(null!==e.body&&\"string\"!=typeof e.body)throw new Error(\"Response is not a string.\");return e.body})));case\"json\":default:return d.pipe(Object(u.a)((function(e){return e.body})))}case\"response\":return d;default:throw new Error(\"Unreachable: unhandled observe type \".concat(o.observe,\"}\"))}}},{key:\"delete\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(\"DELETE\",e,t)}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(\"GET\",e,t)}},{key:\"head\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(\"HEAD\",e,t)}},{key:\"jsonp\",value:function(e,t){return this.request(\"JSONP\",e,{params:(new p).append(t,\"JSONP_CALLBACK\"),observe:\"body\",responseType:\"json\"})}},{key:\"options\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(\"OPTIONS\",e,t)}},{key:\"patch\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PATCH\",e,S(n,t))}},{key:\"post\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"POST\",e,S(n,t))}},{key:\"put\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PUT\",e,S(n,t))}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(r.Qb(l))},e.\\u0275prov=r.Fb({token:e,factory:e.\\u0275fac}),e}(),x=function(){function e(t,n){_classCallCheck(this,e),this.next=t,this.interceptor=n}return _createClass(e,[{key:\"handle\",value:function(e){return this.interceptor.intercept(e,this.next)}}]),e}(),T=new r.q(\"HTTP_INTERCEPTORS\"),P=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"intercept\",value:function(e,t){return t.handle(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=r.Fb({token:e,factory:e.\\u0275fac}),e}(),A=/^\\)\\]\\}',?\\n/,j=function e(){_classCallCheck(this,e)},R=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"build\",value:function(){return new XMLHttpRequest}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=r.Fb({token:e,factory:e.\\u0275fac}),e}(),I=function(){var e=function(){function e(t){_classCallCheck(this,e),this.xhrFactory=t}return _createClass(e,[{key:\"handle\",value:function(e){var t=this;if(\"JSONP\"===e.method)throw new Error(\"Attempted to construct Jsonp request without JsonpClientModule installed.\");return new o.a((function(n){var r=t.xhrFactory.build();if(r.open(e.method,e.urlWithParams),e.withCredentials&&(r.withCredentials=!0),e.headers.forEach((function(e,t){return r.setRequestHeader(e,t.join(\",\"))})),e.headers.has(\"Accept\")||r.setRequestHeader(\"Accept\",\"application/json, text/plain, */*\"),!e.headers.has(\"Content-Type\")){var i=e.detectContentTypeHeader();null!==i&&r.setRequestHeader(\"Content-Type\",i)}if(e.responseType){var o=e.responseType.toLowerCase();r.responseType=\"json\"!==o?o:\"text\"}var a=e.serializeBody(),s=null,u=function(){if(null!==s)return s;var t=1223===r.status?204:r.status,n=r.statusText||\"OK\",i=new f(r.getAllResponseHeaders()),o=function(e){return\"responseURL\"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader(\"X-Request-URL\"):null}(r)||e.url;return s=new k({headers:i,status:t,statusText:n,url:o})},c=function(){var t=u(),i=t.headers,o=t.status,a=t.statusText,s=t.url,c=null;204!==o&&(c=void 0===r.response?r.responseText:r.response),0===o&&(o=c?200:0);var l=o>=200&&o<300;if(\"json\"===e.responseType&&\"string\"==typeof c){var h=c;c=c.replace(A,\"\");try{c=\"\"!==c?JSON.parse(c):null}catch(f){c=h,l&&(l=!1,c={error:f,text:c})}}l?(n.next(new w({body:c,headers:i,status:o,statusText:a,url:s||void 0})),n.complete()):n.error(new O({error:c,headers:i,status:o,statusText:a,url:s||void 0}))},l=function(e){var t=u().url,i=new O({error:e,status:r.status||0,statusText:r.statusText||\"Unknown Error\",url:t||void 0});n.error(i)},h=!1,d=function(t){h||(n.next(u()),h=!0);var i={type:_.DownloadProgress,loaded:t.loaded};t.lengthComputable&&(i.total=t.total),\"text\"===e.responseType&&r.responseText&&(i.partialText=r.responseText),n.next(i)},v=function(e){var t={type:_.UploadProgress,loaded:e.loaded};e.lengthComputable&&(t.total=e.total),n.next(t)};return r.addEventListener(\"load\",c),r.addEventListener(\"error\",l),e.reportProgress&&(r.addEventListener(\"progress\",d),null!==a&&r.upload&&r.upload.addEventListener(\"progress\",v)),r.send(a),n.next({type:_.Sent}),function(){r.removeEventListener(\"error\",l),r.removeEventListener(\"load\",c),e.reportProgress&&(r.removeEventListener(\"progress\",d),null!==a&&r.upload&&r.upload.removeEventListener(\"progress\",v)),r.abort()}}))}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(r.Qb(j))},e.\\u0275prov=r.Fb({token:e,factory:e.\\u0275fac}),e}(),N=new r.q(\"XSRF_COOKIE_NAME\"),M=new r.q(\"XSRF_HEADER_NAME\"),D=function e(){_classCallCheck(this,e)},L=function(){var e=function(){function e(t,n,r){_classCallCheck(this,e),this.doc=t,this.platform=n,this.cookieName=r,this.lastCookieString=\"\",this.lastToken=null,this.parseCount=0}return _createClass(e,[{key:\"getToken\",value:function(){if(\"server\"===this.platform)return null;var e=this.doc.cookie||\"\";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=Object(c.r)(e,this.cookieName),this.lastCookieString=e),this.lastToken}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(r.Qb(c.d),r.Qb(r.B),r.Qb(N))},e.\\u0275prov=r.Fb({token:e,factory:e.\\u0275fac}),e}(),V=function(){var e=function(){function e(t,n){_classCallCheck(this,e),this.tokenService=t,this.headerName=n}return _createClass(e,[{key:\"intercept\",value:function(e,t){var n=e.url.toLowerCase();if(\"GET\"===e.method||\"HEAD\"===e.method||n.startsWith(\"http://\")||n.startsWith(\"https://\"))return t.handle(e);var r=this.tokenService.getToken();return null===r||e.headers.has(this.headerName)||(e=e.clone({headers:e.headers.set(this.headerName,r)})),t.handle(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(r.Qb(D),r.Qb(M))},e.\\u0275prov=r.Fb({token:e,factory:e.\\u0275fac}),e}(),U=function(){var e=function(){function e(t,n){_classCallCheck(this,e),this.backend=t,this.injector=n,this.chain=null}return _createClass(e,[{key:\"handle\",value:function(e){if(null===this.chain){var t=this.injector.get(T,[]);this.chain=t.reduceRight((function(e,t){return new x(e,t)}),this.backend)}return this.chain.handle(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(r.Qb(h),r.Qb(r.r))},e.\\u0275prov=r.Fb({token:e,factory:e.\\u0275fac}),e}(),F=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"disable\",value:function(){return{ngModule:e,providers:[{provide:V,useClass:P}]}}},{key:\"withOptions\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{ngModule:e,providers:[t.cookieName?{provide:N,useValue:t.cookieName}:[],t.headerName?{provide:M,useValue:t.headerName}:[]]}}}]),e}();return e.\\u0275mod=r.Hb({type:e}),e.\\u0275inj=r.Gb({factory:function(t){return new(t||e)},providers:[V,{provide:T,useExisting:V,multi:!0},{provide:D,useClass:L},{provide:N,useValue:\"XSRF-TOKEN\"},{provide:M,useValue:\"X-XSRF-TOKEN\"}]}),e}(),H=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275mod=r.Hb({type:e}),e.\\u0275inj=r.Gb({factory:function(t){return new(t||e)},providers:[E,{provide:l,useClass:U},I,{provide:h,useExisting:I},R,{provide:j,useExisting:R}],imports:[[F.withOptions({cookieName:\"XSRF-TOKEN\",headerName:\"X-XSRF-TOKEN\"})]]}),e}()},tyNb:function(e,t,n){\"use strict\";var r=n(\"ofXK\"),i=n(\"fXoL\"),o=n(\"LRne\"),a=n(\"Cfvw\"),s=n(\"XNiG\"),u=n(\"9ppp\"),c=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._value=e,n}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){var n=_get(_getPrototypeOf(t.prototype),\"_subscribe\",this).call(this,e);return n&&!n.closed&&e.next(this._value),n}},{key:\"getValue\",value:function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new u.a;return this._value}},{key:\"next\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,this._value=e)}},{key:\"value\",get:function(){return this.getValue()}}]),t}(s.a),l=n(\"HDdC\"),h=function(){function e(){return Error.call(this),this.message=\"no elements in sequence\",this.name=\"EmptyError\",this}return e.prototype=Object.create(Error.prototype),e}(),f=n(\"z+Ro\"),d=n(\"DH7j\"),v=n(\"l7GE\"),p=n(\"ZUHj\"),y=n(\"yCtX\"),g={},m=function(){function e(t){_classCallCheck(this,e),this.resultSelector=t}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new b(e,this.resultSelector))}}]),e}(),b=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).resultSelector=n,r.active=0,r.values=[],r.observables=[],r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.values.push(g),this.observables.push(e)}},{key:\"_complete\",value:function(){var e=this.observables,t=e.length;if(0===t)this.destination.complete();else{this.active=t,this.toRespond=t;for(var n=0;n<t;n++){var r=e[n];this.add(Object(p.a)(this,r,r,n))}}}},{key:\"notifyComplete\",value:function(e){0==(this.active-=1)&&this.destination.complete()}},{key:\"notifyNext\",value:function(e,t,n,r,i){var o=this.values,a=this.toRespond?o[n]===g?--this.toRespond:this.toRespond:0;o[n]=t,0===a&&(this.resultSelector?this._tryResultSelector(o):this.destination.next(o.slice()))}},{key:\"_tryResultSelector\",value:function(e){var t;try{t=this.resultSelector.apply(this,e)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(v.a),_=n(\"NXyV\"),C=n(\"EY2u\"),k=n(\"lJxs\"),w=n(\"0EUg\"),O=n(\"pLZG\"),S=n(\"7o/Q\"),E=n(\"4I5i\");function x(e){return function(t){return 0===e?Object(C.b)():t.lift(new T(e))}}var T=function(){function e(t){if(_classCallCheck(this,e),this.total=t,this.total<0)throw new E.a}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new P(e,this.total))}}]),e}(),P=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).total=n,r.ring=new Array,r.count=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t=this.ring,n=this.total,r=this.count++;t.length<n?t.push(e):t[r%n]=e}},{key:\"_complete\",value:function(){var e=this.destination,t=this.count;if(t>0)for(var n=this.count>=this.total?this.total:this.count,r=this.ring,i=0;i<n;i++){var o=t++%n;e.next(r[o])}e.complete()}}]),t}(S.a);function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:I;return function(t){return t.lift(new j(e))}}var j=function(){function e(t){_classCallCheck(this,e),this.errorFactory=t}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new R(e,this.errorFactory))}}]),e}(),R=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).errorFactory=n,r.hasValue=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.hasValue=!0,this.destination.next(e)}},{key:\"_complete\",value:function(){if(this.hasValue)return this.destination.complete();var e;try{e=this.errorFactory()}catch(t){e=t}this.destination.error(e)}}]),t}(S.a);function I(){return new h}function N(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return function(t){return t.lift(new M(e))}}var M=function(){function e(t){_classCallCheck(this,e),this.defaultValue=t}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new D(e,this.defaultValue))}}]),e}(),D=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).defaultValue=n,r.isEmpty=!0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.isEmpty=!1,this.destination.next(e)}},{key:\"_complete\",value:function(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}]),t}(S.a),L=n(\"SpAZ\");function V(e,t){var n=arguments.length>=2;return function(r){return r.pipe(e?Object(O.a)((function(t,n){return e(t,n,r)})):L.a,x(1),n?N(t):A((function(){return new h})))}}var U=n(\"51Dv\");function F(e){return function(t){var n=new H(e),r=t.lift(n);return n.caught=r}}var H=function(){function e(t){_classCallCheck(this,e),this.selector=t}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new z(e,this.selector,this.caught))}}]),e}(),z=function(e){function t(e,n,r){var i;return _classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).selector=n,i.caught=r,i}return _inherits(t,e),_createClass(t,[{key:\"error\",value:function(e){if(!this.isStopped){var n;try{n=this.selector(e,this.caught)}catch(o){return void _get(_getPrototypeOf(t.prototype),\"error\",this).call(this,o)}this._unsubscribeAndRecycle();var r=new U.a(this,void 0,void 0);this.add(r);var i=Object(p.a)(this,n,void 0,void 0,r);i!==r&&this.add(i)}}}]),t}(v.a),q=n(\"IzEk\");function B(e,t){var n=arguments.length>=2;return function(r){return r.pipe(e?Object(O.a)((function(t,n){return e(t,n,r)})):L.a,Object(q.a)(1),n?N(t):A((function(){return new h})))}}var G=n(\"5+tZ\"),W=function(){function e(t,n,r){_classCallCheck(this,e),this.predicate=t,this.thisArg=n,this.source=r}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new Z(e,this.predicate,this.thisArg,this.source))}}]),e}(),Z=function(e){function t(e,n,r,i){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).predicate=n,o.thisArg=r,o.source=i,o.index=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"notifyComplete\",value:function(e){this.destination.next(e),this.destination.complete()}},{key:\"_next\",value:function(e){var t=!1;try{t=this.predicate.call(this.thisArg,e,this.index++,this.source)}catch(n){return void this.destination.error(n)}t||this.notifyComplete(!1)}},{key:\"_complete\",value:function(){this.notifyComplete(!0)}}]),t}(S.a),Q=n(\"eIep\"),J=n(\"GyhO\");function K(e,t){var n=!1;return arguments.length>=2&&(n=!0),function(r){return r.lift(new X(e,t,n))}}var X=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];_classCallCheck(this,e),this.accumulator=t,this.seed=n,this.hasSeed=r}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new $(e,this.accumulator,this.seed,this.hasSeed))}}]),e}(),$=function(e){function t(e,n,r,i){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).accumulator=n,o._seed=r,o.hasSeed=i,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.accumulator(this.seed,e,n)}catch(r){this.destination.error(r)}this.seed=t,this.destination.next(t)}},{key:\"seed\",get:function(){return this._seed},set:function(e){this.hasSeed=!0,this._seed=e}}]),t}(S.a),Y=n(\"bOdf\"),ee=n(\"mCNh\"),te=n(\"vkgz\"),ne=n(\"quSY\"),re=function(){function e(t){_classCallCheck(this,e),this.callback=t}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new ie(e,this.callback))}}]),e}(),ie=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).add(new ne.a(n)),r}return _inherits(t,e),t}(S.a),oe=n(\"bHdf\");n.d(t,\"a\",(function(){return vt})),n.d(t,\"b\",(function(){return Sn})),n.d(t,\"c\",(function(){return En})),n.d(t,\"d\",(function(){return In})),n.d(t,\"e\",(function(){return Zn})),n.d(t,\"f\",(function(){return Dn}));var ae,se=function e(t,n){_classCallCheck(this,e),this.id=t,this.url=n},ue=function(e){function t(e,n){var r,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"imperative\",o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e,n))).navigationTrigger=i,r.restoredState=o,r}return _inherits(t,e),_createClass(t,[{key:\"toString\",value:function(){return\"NavigationStart(id: \".concat(this.id,\", url: '\").concat(this.url,\"')\")}}]),t}(se),ce=function(e){function t(e,n,r){var i;return _classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e,n))).urlAfterRedirects=r,i}return _inherits(t,e),_createClass(t,[{key:\"toString\",value:function(){return\"NavigationEnd(id: \".concat(this.id,\", url: '\").concat(this.url,\"', urlAfterRedirects: '\").concat(this.urlAfterRedirects,\"')\")}}]),t}(se),le=function(e){function t(e,n,r){var i;return _classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e,n))).reason=r,i}return _inherits(t,e),_createClass(t,[{key:\"toString\",value:function(){return\"NavigationCancel(id: \".concat(this.id,\", url: '\").concat(this.url,\"')\")}}]),t}(se),he=function(e){function t(e,n,r){var i;return _classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e,n))).error=r,i}return _inherits(t,e),_createClass(t,[{key:\"toString\",value:function(){return\"NavigationError(id: \".concat(this.id,\", url: '\").concat(this.url,\"', error: \").concat(this.error,\")\")}}]),t}(se),fe=function(e){function t(e,n,r,i){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e,n))).urlAfterRedirects=r,o.state=i,o}return _inherits(t,e),_createClass(t,[{key:\"toString\",value:function(){return\"RoutesRecognized(id: \".concat(this.id,\", url: '\").concat(this.url,\"', urlAfterRedirects: '\").concat(this.urlAfterRedirects,\"', state: \").concat(this.state,\")\")}}]),t}(se),de=function(e){function t(e,n,r,i){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e,n))).urlAfterRedirects=r,o.state=i,o}return _inherits(t,e),_createClass(t,[{key:\"toString\",value:function(){return\"GuardsCheckStart(id: \".concat(this.id,\", url: '\").concat(this.url,\"', urlAfterRedirects: '\").concat(this.urlAfterRedirects,\"', state: \").concat(this.state,\")\")}}]),t}(se),ve=function(e){function t(e,n,r,i,o){var a;return _classCallCheck(this,t),(a=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e,n))).urlAfterRedirects=r,a.state=i,a.shouldActivate=o,a}return _inherits(t,e),_createClass(t,[{key:\"toString\",value:function(){return\"GuardsCheckEnd(id: \".concat(this.id,\", url: '\").concat(this.url,\"', urlAfterRedirects: '\").concat(this.urlAfterRedirects,\"', state: \").concat(this.state,\", shouldActivate: \").concat(this.shouldActivate,\")\")}}]),t}(se),pe=function(e){function t(e,n,r,i){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e,n))).urlAfterRedirects=r,o.state=i,o}return _inherits(t,e),_createClass(t,[{key:\"toString\",value:function(){return\"ResolveStart(id: \".concat(this.id,\", url: '\").concat(this.url,\"', urlAfterRedirects: '\").concat(this.urlAfterRedirects,\"', state: \").concat(this.state,\")\")}}]),t}(se),ye=function(e){function t(e,n,r,i){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e,n))).urlAfterRedirects=r,o.state=i,o}return _inherits(t,e),_createClass(t,[{key:\"toString\",value:function(){return\"ResolveEnd(id: \".concat(this.id,\", url: '\").concat(this.url,\"', urlAfterRedirects: '\").concat(this.urlAfterRedirects,\"', state: \").concat(this.state,\")\")}}]),t}(se),ge=function(){function e(t){_classCallCheck(this,e),this.route=t}return _createClass(e,[{key:\"toString\",value:function(){return\"RouteConfigLoadStart(path: \".concat(this.route.path,\")\")}}]),e}(),me=function(){function e(t){_classCallCheck(this,e),this.route=t}return _createClass(e,[{key:\"toString\",value:function(){return\"RouteConfigLoadEnd(path: \".concat(this.route.path,\")\")}}]),e}(),be=function(){function e(t){_classCallCheck(this,e),this.snapshot=t}return _createClass(e,[{key:\"toString\",value:function(){return\"ChildActivationStart(path: '\".concat(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||\"\",\"')\")}}]),e}(),_e=function(){function e(t){_classCallCheck(this,e),this.snapshot=t}return _createClass(e,[{key:\"toString\",value:function(){return\"ChildActivationEnd(path: '\".concat(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||\"\",\"')\")}}]),e}(),Ce=function(){function e(t){_classCallCheck(this,e),this.snapshot=t}return _createClass(e,[{key:\"toString\",value:function(){return\"ActivationStart(path: '\".concat(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||\"\",\"')\")}}]),e}(),ke=function(){function e(t){_classCallCheck(this,e),this.snapshot=t}return _createClass(e,[{key:\"toString\",value:function(){return\"ActivationEnd(path: '\".concat(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||\"\",\"')\")}}]),e}(),we=function(){function e(t,n,r){_classCallCheck(this,e),this.routerEvent=t,this.position=n,this.anchor=r}return _createClass(e,[{key:\"toString\",value:function(){return\"Scroll(anchor: '\".concat(this.anchor,\"', position: '\").concat(this.position?\"\".concat(this.position[0],\", \").concat(this.position[1]):null,\"')\")}}]),e}(),Oe=((ae=function e(){_classCallCheck(this,e)}).\\u0275fac=function(e){return new(e||ae)},ae.\\u0275cmp=i.Db({type:ae,selectors:[[\"ng-component\"]],decls:1,vars:0,template:function(e,t){1&e&&i.Kb(0,\"router-outlet\")},directives:function(){return[Dn]},encapsulation:2}),ae),Se=function(){function e(t){_classCallCheck(this,e),this.params=t||{}}return _createClass(e,[{key:\"has\",value:function(e){return this.params.hasOwnProperty(e)}},{key:\"get\",value:function(e){if(this.has(e)){var t=this.params[e];return Array.isArray(t)?t[0]:t}return null}},{key:\"getAll\",value:function(e){if(this.has(e)){var t=this.params[e];return Array.isArray(t)?t:[t]}return[]}},{key:\"keys\",get:function(){return Object.keys(this.params)}}]),e}();function Ee(e){return new Se(e)}function xe(e){var t=Error(\"NavigationCancelingError: \"+e);return t.ngNavigationCancelingError=!0,t}function Te(e,t,n){var r=n.path.split(\"/\");if(r.length>e.length)return null;if(\"full\"===n.pathMatch&&(t.hasChildren()||r.length<e.length))return null;for(var i={},o=0;o<r.length;o++){var a=r[o],s=e[o];if(a.startsWith(\":\"))i[a.substring(1)]=s;else if(a!==s.path)return null}return{consumed:e.slice(0,r.length),posParams:i}}var Pe=function e(t,n){_classCallCheck(this,e),this.routes=t,this.module=n};function Ae(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=0;n<e.length;n++){var r=e[n];je(r,Re(t,r))}}function je(e,t){if(!e)throw new Error(\"\\n      Invalid configuration of route '\".concat(t,\"': Encountered undefined route.\\n      The reason might be an extra comma.\\n\\n      Example:\\n      const routes: Routes = [\\n        { path: '', redirectTo: '/dashboard', pathMatch: 'full' },\\n        { path: 'dashboard',  component: DashboardComponent },, << two commas\\n        { path: 'detail/:id', component: HeroDetailComponent }\\n      ];\\n    \"));if(Array.isArray(e))throw new Error(\"Invalid configuration of route '\".concat(t,\"': Array cannot be specified\"));if(!e.component&&!e.children&&!e.loadChildren&&e.outlet&&\"primary\"!==e.outlet)throw new Error(\"Invalid configuration of route '\".concat(t,\"': a componentless route without children or loadChildren cannot have a named outlet set\"));if(e.redirectTo&&e.children)throw new Error(\"Invalid configuration of route '\".concat(t,\"': redirectTo and children cannot be used together\"));if(e.redirectTo&&e.loadChildren)throw new Error(\"Invalid configuration of route '\".concat(t,\"': redirectTo and loadChildren cannot be used together\"));if(e.children&&e.loadChildren)throw new Error(\"Invalid configuration of route '\".concat(t,\"': children and loadChildren cannot be used together\"));if(e.redirectTo&&e.component)throw new Error(\"Invalid configuration of route '\".concat(t,\"': redirectTo and component cannot be used together\"));if(e.path&&e.matcher)throw new Error(\"Invalid configuration of route '\".concat(t,\"': path and matcher cannot be used together\"));if(void 0===e.redirectTo&&!e.component&&!e.children&&!e.loadChildren)throw new Error(\"Invalid configuration of route '\".concat(t,\"'. One of the following must be provided: component, redirectTo, children or loadChildren\"));if(void 0===e.path&&void 0===e.matcher)throw new Error(\"Invalid configuration of route '\".concat(t,\"': routes must have either a path or a matcher specified\"));if(\"string\"==typeof e.path&&\"/\"===e.path.charAt(0))throw new Error(\"Invalid configuration of route '\".concat(t,\"': path cannot start with a slash\"));if(\"\"===e.path&&void 0!==e.redirectTo&&void 0===e.pathMatch)throw new Error(\"Invalid configuration of route '{path: \\\"\".concat(t,'\", redirectTo: \"').concat(e.redirectTo,\"\\\"}': please provide 'pathMatch'. The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.\"));if(void 0!==e.pathMatch&&\"full\"!==e.pathMatch&&\"prefix\"!==e.pathMatch)throw new Error(\"Invalid configuration of route '\".concat(t,\"': pathMatch can only be set to 'prefix' or 'full'\"));e.children&&Ae(e.children,t)}function Re(e,t){return t?e||t.path?e&&!t.path?\"\".concat(e,\"/\"):!e&&t.path?t.path:\"\".concat(e,\"/\").concat(t.path):\"\":e}function Ie(e){var t=e.children&&e.children.map(Ie),n=t?Object.assign(Object.assign({},e),{children:t}):Object.assign({},e);return!n.component&&(t||n.loadChildren)&&n.outlet&&\"primary\"!==n.outlet&&(n.component=Oe),n}function Ne(e,t){var n,r=Object.keys(e),i=Object.keys(t);if(!r||!i||r.length!=i.length)return!1;for(var o=0;o<r.length;o++)if(!Me(e[n=r[o]],t[n]))return!1;return!0}function Me(e,t){return Array.isArray(e)&&Array.isArray(t)?e.length==t.length&&e.every((function(e){return t.indexOf(e)>-1})):e===t}function De(e){return Array.prototype.concat.apply([],e)}function Le(e){return e.length>0?e[e.length-1]:null}function Ve(e,t){for(var n in e)e.hasOwnProperty(n)&&t(e[n],n)}function Ue(e){return Object(i.pb)(e)?e:Object(i.qb)(e)?Object(a.a)(Promise.resolve(e)):Object(o.a)(e)}function Fe(e,t,n){return n?function(e,t){return Ne(e,t)}(e.queryParams,t.queryParams)&&function e(t,n){if(!Be(t.segments,n.segments))return!1;if(t.numberOfChildren!==n.numberOfChildren)return!1;for(var r in n.children){if(!t.children[r])return!1;if(!e(t.children[r],n.children[r]))return!1}return!0}(e.root,t.root):function(e,t){return Object.keys(t).length<=Object.keys(e).length&&Object.keys(t).every((function(n){return Me(e[n],t[n])}))}(e.queryParams,t.queryParams)&&function e(t,n){return function t(n,r,i){if(n.segments.length>i.length)return!!Be(n.segments.slice(0,i.length),i)&&!r.hasChildren();if(n.segments.length===i.length){if(!Be(n.segments,i))return!1;for(var o in r.children){if(!n.children[o])return!1;if(!e(n.children[o],r.children[o]))return!1}return!0}var a=i.slice(0,n.segments.length),s=i.slice(n.segments.length);return!!Be(n.segments,a)&&!!n.children.primary&&t(n.children.primary,r,s)}(t,n,n.segments)}(e.root,t.root)}var He=function(){function e(t,n,r){_classCallCheck(this,e),this.root=t,this.queryParams=n,this.fragment=r}return _createClass(e,[{key:\"toString\",value:function(){return Qe.serialize(this)}},{key:\"queryParamMap\",get:function(){return this._queryParamMap||(this._queryParamMap=Ee(this.queryParams)),this._queryParamMap}}]),e}(),ze=function(){function e(t,n){var r=this;_classCallCheck(this,e),this.segments=t,this.children=n,this.parent=null,Ve(n,(function(e,t){return e.parent=r}))}return _createClass(e,[{key:\"hasChildren\",value:function(){return this.numberOfChildren>0}},{key:\"toString\",value:function(){return Je(this)}},{key:\"numberOfChildren\",get:function(){return Object.keys(this.children).length}}]),e}(),qe=function(){function e(t,n){_classCallCheck(this,e),this.path=t,this.parameters=n}return _createClass(e,[{key:\"toString\",value:function(){return tt(this)}},{key:\"parameterMap\",get:function(){return this._parameterMap||(this._parameterMap=Ee(this.parameters)),this._parameterMap}}]),e}();function Be(e,t){return e.length===t.length&&e.every((function(e,n){return e.path===t[n].path}))}function Ge(e,t){var n=[];return Ve(e.children,(function(e,r){\"primary\"===r&&(n=n.concat(t(e,r)))})),Ve(e.children,(function(e,r){\"primary\"!==r&&(n=n.concat(t(e,r)))})),n}var We=function e(){_classCallCheck(this,e)},Ze=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"parse\",value:function(e){var t=new at(e);return new He(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}},{key:\"serialize\",value:function(e){var t,n,r;return\"\".concat(\"/\".concat(function e(t,n){if(!t.hasChildren())return Je(t);if(n){var r=t.children.primary?e(t.children.primary,!1):\"\",i=[];return Ve(t.children,(function(t,n){\"primary\"!==n&&i.push(\"\".concat(n,\":\").concat(e(t,!1)))})),i.length>0?\"\".concat(r,\"(\").concat(i.join(\"//\"),\")\"):r}var o=Ge(t,(function(n,r){return\"primary\"===r?[e(t.children.primary,!1)]:[\"\".concat(r,\":\").concat(e(n,!1))]}));return\"\".concat(Je(t),\"/(\").concat(o.join(\"//\"),\")\")}(e.root,!0)),(n=e.queryParams,r=Object.keys(n).map((function(e){var t=n[e];return Array.isArray(t)?t.map((function(t){return\"\".concat(Xe(e),\"=\").concat(Xe(t))})).join(\"&\"):\"\".concat(Xe(e),\"=\").concat(Xe(t))})),r.length?\"?\".concat(r.join(\"&\")):\"\")).concat(\"string\"==typeof e.fragment?\"#\".concat((t=e.fragment,encodeURI(t))):\"\")}}]),e}(),Qe=new Ze;function Je(e){return e.segments.map((function(e){return tt(e)})).join(\"/\")}function Ke(e){return encodeURIComponent(e).replace(/%40/g,\"@\").replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\")}function Xe(e){return Ke(e).replace(/%3B/gi,\";\")}function $e(e){return Ke(e).replace(/\\(/g,\"%28\").replace(/\\)/g,\"%29\").replace(/%26/gi,\"&\")}function Ye(e){return decodeURIComponent(e)}function et(e){return Ye(e.replace(/\\+/g,\"%20\"))}function tt(e){return\"\".concat($e(e.path)).concat((t=e.parameters,Object.keys(t).map((function(e){return\";\".concat($e(e),\"=\").concat($e(t[e]))})).join(\"\")));var t}var nt=/^[^\\/()?;=#]+/;function rt(e){var t=e.match(nt);return t?t[0]:\"\"}var it=/^[^=?&#]+/,ot=/^[^?&#]+/,at=function(){function e(t){_classCallCheck(this,e),this.url=t,this.remaining=t}return _createClass(e,[{key:\"parseRootSegment\",value:function(){return this.consumeOptional(\"/\"),\"\"===this.remaining||this.peekStartsWith(\"?\")||this.peekStartsWith(\"#\")?new ze([],{}):new ze([],this.parseChildren())}},{key:\"parseQueryParams\",value:function(){var e={};if(this.consumeOptional(\"?\"))do{this.parseQueryParam(e)}while(this.consumeOptional(\"&\"));return e}},{key:\"parseFragment\",value:function(){return this.consumeOptional(\"#\")?decodeURIComponent(this.remaining):null}},{key:\"parseChildren\",value:function(){if(\"\"===this.remaining)return{};this.consumeOptional(\"/\");var e=[];for(this.peekStartsWith(\"(\")||e.push(this.parseSegment());this.peekStartsWith(\"/\")&&!this.peekStartsWith(\"//\")&&!this.peekStartsWith(\"/(\");)this.capture(\"/\"),e.push(this.parseSegment());var t={};this.peekStartsWith(\"/(\")&&(this.capture(\"/\"),t=this.parseParens(!0));var n={};return this.peekStartsWith(\"(\")&&(n=this.parseParens(!1)),(e.length>0||Object.keys(t).length>0)&&(n.primary=new ze(e,t)),n}},{key:\"parseSegment\",value:function(){var e=rt(this.remaining);if(\"\"===e&&this.peekStartsWith(\";\"))throw new Error(\"Empty path url segment cannot have parameters: '\".concat(this.remaining,\"'.\"));return this.capture(e),new qe(Ye(e),this.parseMatrixParams())}},{key:\"parseMatrixParams\",value:function(){for(var e={};this.consumeOptional(\";\");)this.parseParam(e);return e}},{key:\"parseParam\",value:function(e){var t=rt(this.remaining);if(t){this.capture(t);var n=\"\";if(this.consumeOptional(\"=\")){var r=rt(this.remaining);r&&(n=r,this.capture(n))}e[Ye(t)]=Ye(n)}}},{key:\"parseQueryParam\",value:function(e){var t=function(e){var t=e.match(it);return t?t[0]:\"\"}(this.remaining);if(t){this.capture(t);var n=\"\";if(this.consumeOptional(\"=\")){var r=function(e){var t=e.match(ot);return t?t[0]:\"\"}(this.remaining);r&&(n=r,this.capture(n))}var i=et(t),o=et(n);if(e.hasOwnProperty(i)){var a=e[i];Array.isArray(a)||(a=[a],e[i]=a),a.push(o)}else e[i]=o}}},{key:\"parseParens\",value:function(e){var t={};for(this.capture(\"(\");!this.consumeOptional(\")\")&&this.remaining.length>0;){var n=rt(this.remaining),r=this.remaining[n.length];if(\"/\"!==r&&\")\"!==r&&\";\"!==r)throw new Error(\"Cannot parse url '\".concat(this.url,\"'\"));var i=void 0;n.indexOf(\":\")>-1?(i=n.substr(0,n.indexOf(\":\")),this.capture(i),this.capture(\":\")):e&&(i=\"primary\");var o=this.parseChildren();t[i]=1===Object.keys(o).length?o.primary:new ze([],o),this.consumeOptional(\"//\")}return t}},{key:\"peekStartsWith\",value:function(e){return this.remaining.startsWith(e)}},{key:\"consumeOptional\",value:function(e){return!!this.peekStartsWith(e)&&(this.remaining=this.remaining.substring(e.length),!0)}},{key:\"capture\",value:function(e){if(!this.consumeOptional(e))throw new Error('Expected \"'.concat(e,'\".'))}}]),e}(),st=function(){function e(t){_classCallCheck(this,e),this._root=t}return _createClass(e,[{key:\"parent\",value:function(e){var t=this.pathFromRoot(e);return t.length>1?t[t.length-2]:null}},{key:\"children\",value:function(e){var t=ut(e,this._root);return t?t.children.map((function(e){return e.value})):[]}},{key:\"firstChild\",value:function(e){var t=ut(e,this._root);return t&&t.children.length>0?t.children[0].value:null}},{key:\"siblings\",value:function(e){var t=ct(e,this._root);return t.length<2?[]:t[t.length-2].children.map((function(e){return e.value})).filter((function(t){return t!==e}))}},{key:\"pathFromRoot\",value:function(e){return ct(e,this._root).map((function(e){return e.value}))}},{key:\"root\",get:function(){return this._root.value}}]),e}();function ut(e,t){if(e===t.value)return t;var n=!0,r=!1,i=void 0;try{for(var o,a=t.children[Symbol.iterator]();!(n=(o=a.next()).done);n=!0){var s=ut(e,o.value);if(s)return s}}catch(u){r=!0,i=u}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return null}function ct(e,t){if(e===t.value)return[t];var n=!0,r=!1,i=void 0;try{for(var o,a=t.children[Symbol.iterator]();!(n=(o=a.next()).done);n=!0){var s=ct(e,o.value);if(s.length)return s.unshift(t),s}}catch(u){r=!0,i=u}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return[]}var lt=function(){function e(t,n){_classCallCheck(this,e),this.value=t,this.children=n}return _createClass(e,[{key:\"toString\",value:function(){return\"TreeNode(\".concat(this.value,\")\")}}]),e}();function ht(e){var t={};return e&&e.children.forEach((function(e){return t[e.value.outlet]=e})),t}var ft=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).snapshot=n,mt(_assertThisInitialized(r),e),r}return _inherits(t,e),_createClass(t,[{key:\"toString\",value:function(){return this.snapshot.toString()}}]),t}(st);function dt(e,t){var n=function(e,t){var n=new yt([],{},{},\"\",{},\"primary\",t,null,e.root,-1,{});return new gt(\"\",new lt(n,[]))}(e,t),r=new c([new qe(\"\",{})]),i=new c({}),o=new c({}),a=new c({}),s=new c(\"\"),u=new vt(r,i,a,s,o,\"primary\",t,n.root);return u.snapshot=n.root,new ft(new lt(u,[]),n)}var vt=function(){function e(t,n,r,i,o,a,s,u){_classCallCheck(this,e),this.url=t,this.params=n,this.queryParams=r,this.fragment=i,this.data=o,this.outlet=a,this.component=s,this._futureSnapshot=u}return _createClass(e,[{key:\"toString\",value:function(){return this.snapshot?this.snapshot.toString():\"Future(\".concat(this._futureSnapshot,\")\")}},{key:\"routeConfig\",get:function(){return this._futureSnapshot.routeConfig}},{key:\"root\",get:function(){return this._routerState.root}},{key:\"parent\",get:function(){return this._routerState.parent(this)}},{key:\"firstChild\",get:function(){return this._routerState.firstChild(this)}},{key:\"children\",get:function(){return this._routerState.children(this)}},{key:\"pathFromRoot\",get:function(){return this._routerState.pathFromRoot(this)}},{key:\"paramMap\",get:function(){return this._paramMap||(this._paramMap=this.params.pipe(Object(k.a)((function(e){return Ee(e)})))),this._paramMap}},{key:\"queryParamMap\",get:function(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(Object(k.a)((function(e){return Ee(e)})))),this._queryParamMap}}]),e}();function pt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"emptyOnly\",n=e.pathFromRoot,r=0;if(\"always\"!==t)for(r=n.length-1;r>=1;){var i=n[r],o=n[r-1];if(i.routeConfig&&\"\"===i.routeConfig.path)r--;else{if(o.component)break;r--}}return function(e){return e.reduce((function(e,t){return{params:Object.assign(Object.assign({},e.params),t.params),data:Object.assign(Object.assign({},e.data),t.data),resolve:Object.assign(Object.assign({},e.resolve),t._resolvedData)}}),{params:{},data:{},resolve:{}})}(n.slice(r))}var yt=function(){function e(t,n,r,i,o,a,s,u,c,l,h){_classCallCheck(this,e),this.url=t,this.params=n,this.queryParams=r,this.fragment=i,this.data=o,this.outlet=a,this.component=s,this.routeConfig=u,this._urlSegment=c,this._lastPathIndex=l,this._resolve=h}return _createClass(e,[{key:\"toString\",value:function(){return\"Route(url:'\".concat(this.url.map((function(e){return e.toString()})).join(\"/\"),\"', path:'\").concat(this.routeConfig?this.routeConfig.path:\"\",\"')\")}},{key:\"root\",get:function(){return this._routerState.root}},{key:\"parent\",get:function(){return this._routerState.parent(this)}},{key:\"firstChild\",get:function(){return this._routerState.firstChild(this)}},{key:\"children\",get:function(){return this._routerState.children(this)}},{key:\"pathFromRoot\",get:function(){return this._routerState.pathFromRoot(this)}},{key:\"paramMap\",get:function(){return this._paramMap||(this._paramMap=Ee(this.params)),this._paramMap}},{key:\"queryParamMap\",get:function(){return this._queryParamMap||(this._queryParamMap=Ee(this.queryParams)),this._queryParamMap}}]),e}(),gt=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,n))).url=e,mt(_assertThisInitialized(r),n),r}return _inherits(t,e),_createClass(t,[{key:\"toString\",value:function(){return bt(this._root)}}]),t}(st);function mt(e,t){t.value._routerState=e,t.children.forEach((function(t){return mt(e,t)}))}function bt(e){var t=e.children.length>0?\" { \".concat(e.children.map(bt).join(\", \"),\" } \"):\"\";return\"\".concat(e.value).concat(t)}function _t(e){if(e.snapshot){var t=e.snapshot,n=e._futureSnapshot;e.snapshot=n,Ne(t.queryParams,n.queryParams)||e.queryParams.next(n.queryParams),t.fragment!==n.fragment&&e.fragment.next(n.fragment),Ne(t.params,n.params)||e.params.next(n.params),function(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!Ne(e[n],t[n]))return!1;return!0}(t.url,n.url)||e.url.next(n.url),Ne(t.data,n.data)||e.data.next(n.data)}else e.snapshot=e._futureSnapshot,e.data.next(e._futureSnapshot.data)}function Ct(e,t){var n,r;return Ne(e.params,t.params)&&Be(n=e.url,r=t.url)&&n.every((function(e,t){return Ne(e.parameters,r[t].parameters)}))&&!(!e.parent!=!t.parent)&&(!e.parent||Ct(e.parent,t.parent))}function kt(e){return\"object\"==typeof e&&null!=e&&!e.outlets&&!e.segmentPath}function wt(e,t,n,r,i){var o={};return r&&Ve(r,(function(e,t){o[t]=Array.isArray(e)?e.map((function(e){return\"\".concat(e)})):\"\".concat(e)})),new He(n.root===e?t:function e(t,n,r){var i={};return Ve(t.children,(function(t,o){i[o]=t===n?r:e(t,n,r)})),new ze(t.segments,i)}(n.root,e,t),o,i)}var Ot=function(){function e(t,n,r){if(_classCallCheck(this,e),this.isAbsolute=t,this.numberOfDoubleDots=n,this.commands=r,t&&r.length>0&&kt(r[0]))throw new Error(\"Root segment cannot have matrix parameters\");var i=r.find((function(e){return\"object\"==typeof e&&null!=e&&e.outlets}));if(i&&i!==Le(r))throw new Error(\"{outlets:{}} has to be the last command\")}return _createClass(e,[{key:\"toRoot\",value:function(){return this.isAbsolute&&1===this.commands.length&&\"/\"==this.commands[0]}}]),e}(),St=function e(t,n,r){_classCallCheck(this,e),this.segmentGroup=t,this.processChildren=n,this.index=r};function Et(e){return\"object\"==typeof e&&null!=e&&e.outlets?e.outlets.primary:\"\".concat(e)}function xt(e,t,n){if(e||(e=new ze([],{})),0===e.segments.length&&e.hasChildren())return Tt(e,t,n);var r=function(e,t,n){for(var r=0,i=t,o={match:!1,pathIndex:0,commandIndex:0};i<e.segments.length;){if(r>=n.length)return o;var a=e.segments[i],s=Et(n[r]),u=r<n.length-1?n[r+1]:null;if(i>0&&void 0===s)break;if(s&&u&&\"object\"==typeof u&&void 0===u.outlets){if(!Rt(s,u,a))return o;r+=2}else{if(!Rt(s,{},a))return o;r++}i++}return{match:!0,pathIndex:i,commandIndex:r}}(e,t,n),i=n.slice(r.commandIndex);if(r.match&&r.pathIndex<e.segments.length){var o=new ze(e.segments.slice(0,r.pathIndex),{});return o.children.primary=new ze(e.segments.slice(r.pathIndex),e.children),Tt(o,0,i)}return r.match&&0===i.length?new ze(e.segments,{}):r.match&&!e.hasChildren()?Pt(e,t,n):r.match?Tt(e,0,i):Pt(e,t,n)}function Tt(e,t,n){if(0===n.length)return new ze(e.segments,{});var r=function(e){return\"object\"!=typeof e[0]?{primary:e}:void 0===e[0].outlets?{primary:e}:e[0].outlets}(n),i={};return Ve(r,(function(n,r){null!==n&&(i[r]=xt(e.children[r],t,n))})),Ve(e.children,(function(e,t){void 0===r[t]&&(i[t]=e)})),new ze(e.segments,i)}function Pt(e,t,n){for(var r=e.segments.slice(0,t),i=0;i<n.length;){if(\"object\"==typeof n[i]&&void 0!==n[i].outlets){var o=At(n[i].outlets);return new ze(r,o)}if(0===i&&kt(n[0]))r.push(new qe(e.segments[t].path,n[0])),i++;else{var a=Et(n[i]),s=i<n.length-1?n[i+1]:null;a&&s&&kt(s)?(r.push(new qe(a,jt(s))),i+=2):(r.push(new qe(a,{})),i++)}}return new ze(r,{})}function At(e){var t={};return Ve(e,(function(e,n){null!==e&&(t[n]=Pt(new ze([],{}),0,e))})),t}function jt(e){var t={};return Ve(e,(function(e,n){return t[n]=\"\".concat(e)})),t}function Rt(e,t,n){return e==n.path&&Ne(t,n.parameters)}var It=function(){function e(t,n,r,i){_classCallCheck(this,e),this.routeReuseStrategy=t,this.futureState=n,this.currState=r,this.forwardEvent=i}return _createClass(e,[{key:\"activate\",value:function(e){var t=this.futureState._root,n=this.currState?this.currState._root:null;this.deactivateChildRoutes(t,n,e),_t(this.futureState.root),this.activateChildRoutes(t,n,e)}},{key:\"deactivateChildRoutes\",value:function(e,t,n){var r=this,i=ht(t);e.children.forEach((function(e){var t=e.value.outlet;r.deactivateRoutes(e,i[t],n),delete i[t]})),Ve(i,(function(e,t){r.deactivateRouteAndItsChildren(e,n)}))}},{key:\"deactivateRoutes\",value:function(e,t,n){var r=e.value,i=t?t.value:null;if(r===i)if(r.component){var o=n.getContext(r.outlet);o&&this.deactivateChildRoutes(e,t,o.children)}else this.deactivateChildRoutes(e,t,n);else i&&this.deactivateRouteAndItsChildren(t,n)}},{key:\"deactivateRouteAndItsChildren\",value:function(e,t){this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,t):this.deactivateRouteAndOutlet(e,t)}},{key:\"detachAndStoreRouteSubtree\",value:function(e,t){var n=t.getContext(e.value.outlet);if(n&&n.outlet){var r=n.outlet.detach(),i=n.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:r,route:e,contexts:i})}}},{key:\"deactivateRouteAndOutlet\",value:function(e,t){var n=this,r=t.getContext(e.value.outlet);if(r){var i=ht(e),o=e.value.component?r.children:t;Ve(i,(function(e,t){return n.deactivateRouteAndItsChildren(e,o)})),r.outlet&&(r.outlet.deactivate(),r.children.onOutletDeactivated())}}},{key:\"activateChildRoutes\",value:function(e,t,n){var r=this,i=ht(t);e.children.forEach((function(e){r.activateRoutes(e,i[e.value.outlet],n),r.forwardEvent(new ke(e.value.snapshot))})),e.children.length&&this.forwardEvent(new _e(e.value.snapshot))}},{key:\"activateRoutes\",value:function(e,t,n){var r=e.value,i=t?t.value:null;if(_t(r),r===i)if(r.component){var o=n.getOrCreateContext(r.outlet);this.activateChildRoutes(e,t,o.children)}else this.activateChildRoutes(e,t,n);else if(r.component){var a=n.getOrCreateContext(r.outlet);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){var s=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),a.children.onOutletReAttached(s.contexts),a.attachRef=s.componentRef,a.route=s.route.value,a.outlet&&a.outlet.attach(s.componentRef,s.route.value),Nt(s.route)}else{var u=function(e){for(var t=e.parent;t;t=t.parent){var n=t.routeConfig;if(n&&n._loadedConfig)return n._loadedConfig;if(n&&n.component)return null}return null}(r.snapshot),c=u?u.module.componentFactoryResolver:null;a.attachRef=null,a.route=r,a.resolver=c,a.outlet&&a.outlet.activateWith(r,c),this.activateChildRoutes(e,null,a.children)}}else this.activateChildRoutes(e,null,n)}}]),e}();function Nt(e){_t(e.value),e.children.forEach(Nt)}function Mt(e){return\"function\"==typeof e}function Dt(e){return e instanceof He}var Lt=function e(t){_classCallCheck(this,e),this.segmentGroup=t||null},Vt=function e(t){_classCallCheck(this,e),this.urlTree=t};function Ut(e){return new l.a((function(t){return t.error(new Lt(e))}))}function Ft(e){return new l.a((function(t){return t.error(new Vt(e))}))}function Ht(e){return new l.a((function(t){return t.error(new Error(\"Only absolute redirects can have named outlets. redirectTo: '\".concat(e,\"'\")))}))}var zt=function(){function e(t,n,r,o,a){_classCallCheck(this,e),this.configLoader=n,this.urlSerializer=r,this.urlTree=o,this.config=a,this.allowRedirects=!0,this.ngModule=t.get(i.x)}return _createClass(e,[{key:\"apply\",value:function(){var e=this;return this.expandSegmentGroup(this.ngModule,this.config,this.urlTree.root,\"primary\").pipe(Object(k.a)((function(t){return e.createUrlTree(t,e.urlTree.queryParams,e.urlTree.fragment)}))).pipe(F((function(t){if(t instanceof Vt)return e.allowRedirects=!1,e.match(t.urlTree);if(t instanceof Lt)throw e.noMatchError(t);throw t})))}},{key:\"match\",value:function(e){var t=this;return this.expandSegmentGroup(this.ngModule,this.config,e.root,\"primary\").pipe(Object(k.a)((function(n){return t.createUrlTree(n,e.queryParams,e.fragment)}))).pipe(F((function(e){if(e instanceof Lt)throw t.noMatchError(e);throw e})))}},{key:\"noMatchError\",value:function(e){return new Error(\"Cannot match any routes. URL Segment: '\".concat(e.segmentGroup,\"'\"))}},{key:\"createUrlTree\",value:function(e,t,n){var r=e.segments.length>0?new ze([],{primary:e}):e;return new He(r,t,n)}},{key:\"expandSegmentGroup\",value:function(e,t,n,r){return 0===n.segments.length&&n.hasChildren()?this.expandChildren(e,t,n).pipe(Object(k.a)((function(e){return new ze([],e)}))):this.expandSegment(e,n,t,n.segments,r,!0)}},{key:\"expandChildren\",value:function(e,t,n){var r=this;return function(n,i){if(0===Object.keys(n).length)return Object(o.a)({});var a=[],s=[],u={};return Ve(n,(function(n,i){var o,c,l=(o=i,c=n,r.expandSegmentGroup(e,t,c,o)).pipe(Object(k.a)((function(e){return u[i]=e})));\"primary\"===i?a.push(l):s.push(l)})),o.a.apply(null,a.concat(s)).pipe(Object(w.a)(),V(),Object(k.a)((function(){return u})))}(n.children)}},{key:\"expandSegment\",value:function(e,t,n,r,i,a){var s=this;return Object(o.a).apply(void 0,_toConsumableArray(n)).pipe(Object(k.a)((function(u){return s.expandSegmentAgainstRoute(e,t,n,u,r,i,a).pipe(F((function(e){if(e instanceof Lt)return Object(o.a)(null);throw e})))})),Object(w.a)(),B((function(e){return!!e})),F((function(e,n){if(e instanceof h||\"EmptyError\"===e.name){if(s.noLeftoversInUrl(t,r,i))return Object(o.a)(new ze([],{}));throw new Lt(t)}throw e})))}},{key:\"noLeftoversInUrl\",value:function(e,t,n){return 0===t.length&&!e.children[n]}},{key:\"expandSegmentAgainstRoute\",value:function(e,t,n,r,i,o,a){return Wt(r)!==o?Ut(t):void 0===r.redirectTo?this.matchSegmentAgainstRoute(e,t,r,i):a&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(e,t,n,r,i,o):Ut(t)}},{key:\"expandSegmentAgainstRouteUsingRedirect\",value:function(e,t,n,r,i,o){return\"**\"===r.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(e,n,r,o):this.expandRegularSegmentAgainstRouteUsingRedirect(e,t,n,r,i,o)}},{key:\"expandWildCardWithParamsAgainstRouteUsingRedirect\",value:function(e,t,n,r){var i=this,o=this.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith(\"/\")?Ft(o):this.lineralizeSegments(n,o).pipe(Object(G.a)((function(n){var o=new ze(n,{});return i.expandSegment(e,o,t,n,r,!1)})))}},{key:\"expandRegularSegmentAgainstRouteUsingRedirect\",value:function(e,t,n,r,i,o){var a=this,s=qt(t,r,i),u=s.matched,c=s.consumedSegments,l=s.lastChild,h=s.positionalParamSegments;if(!u)return Ut(t);var f=this.applyRedirectCommands(c,r.redirectTo,h);return r.redirectTo.startsWith(\"/\")?Ft(f):this.lineralizeSegments(r,f).pipe(Object(G.a)((function(r){return a.expandSegment(e,t,n,r.concat(i.slice(l)),o,!1)})))}},{key:\"matchSegmentAgainstRoute\",value:function(e,t,n,r){var i=this;if(\"**\"===n.path)return n.loadChildren?this.configLoader.load(e.injector,n).pipe(Object(k.a)((function(e){return n._loadedConfig=e,new ze(r,{})}))):Object(o.a)(new ze(r,{}));var a=qt(t,n,r),s=a.matched,u=a.consumedSegments,c=a.lastChild;if(!s)return Ut(t);var l=r.slice(c);return this.getChildConfig(e,n,r).pipe(Object(G.a)((function(e){var n=e.module,r=e.routes,a=function(e,t,n,r){return n.length>0&&function(e,t,n){return n.some((function(n){return Gt(e,t,n)&&\"primary\"!==Wt(n)}))}(e,n,r)?{segmentGroup:Bt(new ze(t,function(e,t){var n={};n.primary=t;var r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done);r=!0){var u=a.value;\"\"===u.path&&\"primary\"!==Wt(u)&&(n[Wt(u)]=new ze([],{}))}}catch(c){i=!0,o=c}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}(r,new ze(n,e.children)))),slicedSegments:[]}:0===n.length&&function(e,t,n){return n.some((function(n){return Gt(e,t,n)}))}(e,n,r)?{segmentGroup:Bt(new ze(e.segments,function(e,t,n,r){var i={},o=!0,a=!1,s=void 0;try{for(var u,c=n[Symbol.iterator]();!(o=(u=c.next()).done);o=!0){var l=u.value;Gt(e,t,l)&&!r[Wt(l)]&&(i[Wt(l)]=new ze([],{}))}}catch(h){a=!0,s=h}finally{try{o||null==c.return||c.return()}finally{if(a)throw s}}return Object.assign(Object.assign({},r),i)}(e,n,r,e.children))),slicedSegments:n}:{segmentGroup:e,slicedSegments:n}}(t,u,l,r),s=a.segmentGroup,c=a.slicedSegments;return 0===c.length&&s.hasChildren()?i.expandChildren(n,r,s).pipe(Object(k.a)((function(e){return new ze(u,e)}))):0===r.length&&0===c.length?Object(o.a)(new ze(u,{})):i.expandSegment(n,s,r,c,\"primary\",!0).pipe(Object(k.a)((function(e){return new ze(u.concat(e.segments),e.children)})))})))}},{key:\"getChildConfig\",value:function(e,t,n){var r=this;return t.children?Object(o.a)(new Pe(t.children,e)):t.loadChildren?void 0!==t._loadedConfig?Object(o.a)(t._loadedConfig):function(e,t,n){var r,i=t.canLoad;return i&&0!==i.length?Object(a.a)(i).pipe(Object(k.a)((function(r){var i,o=e.get(r);if(function(e){return e&&Mt(e.canLoad)}(o))i=o.canLoad(t,n);else{if(!Mt(o))throw new Error(\"Invalid CanLoad guard\");i=o(t,n)}return Ue(i)}))).pipe(Object(w.a)(),(r=function(e){return!0===e},function(e){return e.lift(new W(r,void 0,e))})):Object(o.a)(!0)}(e.injector,t,n).pipe(Object(G.a)((function(n){return n?r.configLoader.load(e.injector,t).pipe(Object(k.a)((function(e){return t._loadedConfig=e,e}))):function(e){return new l.a((function(t){return t.error(xe(\"Cannot load children because the guard of the route \\\"path: '\".concat(e.path,\"'\\\" returned false\")))}))}(t)}))):Object(o.a)(new Pe([],e))}},{key:\"lineralizeSegments\",value:function(e,t){for(var n=[],r=t.root;;){if(n=n.concat(r.segments),0===r.numberOfChildren)return Object(o.a)(n);if(r.numberOfChildren>1||!r.children.primary)return Ht(e.redirectTo);r=r.children.primary}}},{key:\"applyRedirectCommands\",value:function(e,t,n){return this.applyRedirectCreatreUrlTree(t,this.urlSerializer.parse(t),e,n)}},{key:\"applyRedirectCreatreUrlTree\",value:function(e,t,n,r){var i=this.createSegmentGroup(e,t.root,n,r);return new He(i,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)}},{key:\"createQueryParams\",value:function(e,t){var n={};return Ve(e,(function(e,r){if(\"string\"==typeof e&&e.startsWith(\":\")){var i=e.substring(1);n[r]=t[i]}else n[r]=e})),n}},{key:\"createSegmentGroup\",value:function(e,t,n,r){var i=this,o=this.createSegments(e,t.segments,n,r),a={};return Ve(t.children,(function(t,o){a[o]=i.createSegmentGroup(e,t,n,r)})),new ze(o,a)}},{key:\"createSegments\",value:function(e,t,n,r){var i=this;return t.map((function(t){return t.path.startsWith(\":\")?i.findPosParam(e,t,r):i.findOrReturn(t,n)}))}},{key:\"findPosParam\",value:function(e,t,n){var r=n[t.path.substring(1)];if(!r)throw new Error(\"Cannot redirect to '\".concat(e,\"'. Cannot find '\").concat(t.path,\"'.\"));return r}},{key:\"findOrReturn\",value:function(e,t){var n=0,r=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done);r=!0){var u=a.value;if(u.path===e.path)return t.splice(n),u;n++}}catch(c){i=!0,o=c}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return e}}]),e}();function qt(e,t,n){if(\"\"===t.path)return\"full\"===t.pathMatch&&(e.hasChildren()||n.length>0)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:[],lastChild:0,positionalParamSegments:{}};var r=(t.matcher||Te)(n,e,t);return r?{matched:!0,consumedSegments:r.consumed,lastChild:r.consumed.length,positionalParamSegments:r.posParams}:{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}}function Bt(e){if(1===e.numberOfChildren&&e.children.primary){var t=e.children.primary;return new ze(e.segments.concat(t.segments),t.children)}return e}function Gt(e,t,n){return(!(e.hasChildren()||t.length>0)||\"full\"!==n.pathMatch)&&\"\"===n.path&&void 0!==n.redirectTo}function Wt(e){return e.outlet||\"primary\"}var Zt=function e(t){_classCallCheck(this,e),this.path=t,this.route=this.path[this.path.length-1]},Qt=function e(t,n){_classCallCheck(this,e),this.component=t,this.route=n};function Jt(e,t,n){var r=function(e){if(!e)return null;for(var t=e.parent;t;t=t.parent){var n=t.routeConfig;if(n&&n._loadedConfig)return n._loadedConfig}return null}(t);return(r?r.module.injector:n).get(e)}function Kt(e,t,n){var r=ht(e),i=e.value;Ve(r,(function(e,r){Kt(e,i.component?t?t.children.getContext(r):null:t,n)})),n.canDeactivateChecks.push(new Qt(i.component&&t&&t.outlet&&t.outlet.isActivated?t.outlet.component:null,i))}var Xt=Symbol(\"INITIAL_VALUE\");function $t(){return Object(Q.a)((function(e){return(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=null,i=null;return Object(f.a)(t[t.length-1])&&(i=t.pop()),\"function\"==typeof t[t.length-1]&&(r=t.pop()),1===t.length&&Object(d.a)(t[0])&&(t=t[0]),Object(y.a)(t,i).lift(new m(r))}).apply(void 0,_toConsumableArray(e.map((function(e){return e.pipe(Object(q.a)(1),function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t[t.length-1];return Object(f.a)(r)?(t.pop(),function(e){return Object(J.a)(t,e,r)}):function(e){return Object(J.a)(t,e)}}(Xt))})))).pipe(K((function(e,t){var n=!1;return t.reduce((function(e,r,i){if(e!==Xt)return e;if(r===Xt&&(n=!0),!n){if(!1===r)return r;if(i===t.length-1||Dt(r))return r}return e}),e)}),Xt),Object(O.a)((function(e){return e!==Xt})),Object(k.a)((function(e){return Dt(e)?e:!0===e})),Object(q.a)(1))}))}function Yt(e,t){return null!==e&&t&&t(new Ce(e)),Object(o.a)(!0)}function en(e,t){return null!==e&&t&&t(new be(e)),Object(o.a)(!0)}function tn(e,t,n){var r=t.routeConfig?t.routeConfig.canActivate:null;if(!r||0===r.length)return Object(o.a)(!0);var i=r.map((function(r){return Object(_.a)((function(){var i,o=Jt(r,t,n);if(function(e){return e&&Mt(e.canActivate)}(o))i=Ue(o.canActivate(t,e));else{if(!Mt(o))throw new Error(\"Invalid CanActivate guard\");i=Ue(o(t,e))}return i.pipe(B())}))}));return Object(o.a)(i).pipe($t())}function nn(e,t,n){var r=t[t.length-1],i=t.slice(0,t.length-1).reverse().map((function(e){return function(e){var t=e.routeConfig?e.routeConfig.canActivateChild:null;return t&&0!==t.length?{node:e,guards:t}:null}(e)})).filter((function(e){return null!==e})).map((function(t){return Object(_.a)((function(){var i=t.guards.map((function(i){var o,a=Jt(i,t.node,n);if(function(e){return e&&Mt(e.canActivateChild)}(a))o=Ue(a.canActivateChild(r,e));else{if(!Mt(a))throw new Error(\"Invalid CanActivateChild guard\");o=Ue(a(r,e))}return o.pipe(B())}));return Object(o.a)(i).pipe($t())}))}));return Object(o.a)(i).pipe($t())}var rn=function e(){_classCallCheck(this,e)},on=function(){function e(t,n,r,i,o,a){_classCallCheck(this,e),this.rootComponentType=t,this.config=n,this.urlTree=r,this.url=i,this.paramsInheritanceStrategy=o,this.relativeLinkResolution=a}return _createClass(e,[{key:\"recognize\",value:function(){try{var e=un(this.urlTree.root,[],[],this.config,this.relativeLinkResolution).segmentGroup,t=this.processSegmentGroup(this.config,e,\"primary\"),n=new yt([],Object.freeze({}),Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,{},\"primary\",this.rootComponentType,null,this.urlTree.root,-1,{}),r=new lt(n,t),i=new gt(this.url,r);return this.inheritParamsAndData(i._root),Object(o.a)(i)}catch(a){return new l.a((function(e){return e.error(a)}))}}},{key:\"inheritParamsAndData\",value:function(e){var t=this,n=e.value,r=pt(n,this.paramsInheritanceStrategy);n.params=Object.freeze(r.params),n.data=Object.freeze(r.data),e.children.forEach((function(e){return t.inheritParamsAndData(e)}))}},{key:\"processSegmentGroup\",value:function(e,t,n){return 0===t.segments.length&&t.hasChildren()?this.processChildren(e,t):this.processSegment(e,t,t.segments,n)}},{key:\"processChildren\",value:function(e,t){var n,r=this,i=Ge(t,(function(t,n){return r.processSegmentGroup(e,t,n)}));return n={},i.forEach((function(e){var t=n[e.value.outlet];if(t){var r=t.url.map((function(e){return e.toString()})).join(\"/\"),i=e.value.url.map((function(e){return e.toString()})).join(\"/\");throw new Error(\"Two segments cannot have the same outlet name: '\".concat(r,\"' and '\").concat(i,\"'.\"))}n[e.value.outlet]=e.value})),i.sort((function(e,t){return\"primary\"===e.value.outlet?-1:\"primary\"===t.value.outlet?1:e.value.outlet.localeCompare(t.value.outlet)})),i}},{key:\"processSegment\",value:function(e,t,n,r){var i=!0,o=!1,a=void 0;try{for(var s,u=e[Symbol.iterator]();!(i=(s=u.next()).done);i=!0){var c=s.value;try{return this.processSegmentAgainstRoute(c,t,n,r)}catch(l){if(!(l instanceof rn))throw l}}}catch(h){o=!0,a=h}finally{try{i||null==u.return||u.return()}finally{if(o)throw a}}if(this.noLeftoversInUrl(t,n,r))return[];throw new rn}},{key:\"noLeftoversInUrl\",value:function(e,t,n){return 0===t.length&&!e.children[n]}},{key:\"processSegmentAgainstRoute\",value:function(e,t,n,r){if(e.redirectTo)throw new rn;if((e.outlet||\"primary\")!==r)throw new rn;var i,o=[],a=[];if(\"**\"===e.path){var s=n.length>0?Le(n).parameters:{};i=new yt(n,s,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,hn(e),r,e.component,e,an(t),sn(t)+n.length,fn(e))}else{var u=function(e,t,n){if(\"\"===t.path){if(\"full\"===t.pathMatch&&(e.hasChildren()||n.length>0))throw new rn;return{consumedSegments:[],lastChild:0,parameters:{}}}var r=(t.matcher||Te)(n,e,t);if(!r)throw new rn;var i={};Ve(r.posParams,(function(e,t){i[t]=e.path}));var o=r.consumed.length>0?Object.assign(Object.assign({},i),r.consumed[r.consumed.length-1].parameters):i;return{consumedSegments:r.consumed,lastChild:r.consumed.length,parameters:o}}(t,e,n);o=u.consumedSegments,a=n.slice(u.lastChild),i=new yt(o,u.parameters,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,hn(e),r,e.component,e,an(t),sn(t)+o.length,fn(e))}var c=function(e){return e.children?e.children:e.loadChildren?e._loadedConfig.routes:[]}(e),l=un(t,o,a,c,this.relativeLinkResolution),h=l.segmentGroup,f=l.slicedSegments;if(0===f.length&&h.hasChildren()){var d=this.processChildren(c,h);return[new lt(i,d)]}if(0===c.length&&0===f.length)return[new lt(i,[])];var v=this.processSegment(c,h,f,\"primary\");return[new lt(i,v)]}}]),e}();function an(e){for(var t=e;t._sourceSegment;)t=t._sourceSegment;return t}function sn(e){for(var t=e,n=t._segmentIndexShift?t._segmentIndexShift:0;t._sourceSegment;)n+=(t=t._sourceSegment)._segmentIndexShift?t._segmentIndexShift:0;return n-1}function un(e,t,n,r,i){if(n.length>0&&function(e,t,n){return n.some((function(n){return cn(e,t,n)&&\"primary\"!==ln(n)}))}(e,n,r)){var o=new ze(t,function(e,t,n,r){var i={};i.primary=r,r._sourceSegment=e,r._segmentIndexShift=t.length;var o=!0,a=!1,s=void 0;try{for(var u,c=n[Symbol.iterator]();!(o=(u=c.next()).done);o=!0){var l=u.value;if(\"\"===l.path&&\"primary\"!==ln(l)){var h=new ze([],{});h._sourceSegment=e,h._segmentIndexShift=t.length,i[ln(l)]=h}}}catch(f){a=!0,s=f}finally{try{o||null==c.return||c.return()}finally{if(a)throw s}}return i}(e,t,r,new ze(n,e.children)));return o._sourceSegment=e,o._segmentIndexShift=t.length,{segmentGroup:o,slicedSegments:[]}}if(0===n.length&&function(e,t,n){return n.some((function(n){return cn(e,t,n)}))}(e,n,r)){var a=new ze(e.segments,function(e,t,n,r,i,o){var a={},s=!0,u=!1,c=void 0;try{for(var l,h=r[Symbol.iterator]();!(s=(l=h.next()).done);s=!0){var f=l.value;if(cn(e,n,f)&&!i[ln(f)]){var d=new ze([],{});d._sourceSegment=e,d._segmentIndexShift=\"legacy\"===o?e.segments.length:t.length,a[ln(f)]=d}}}catch(v){u=!0,c=v}finally{try{s||null==h.return||h.return()}finally{if(u)throw c}}return Object.assign(Object.assign({},i),a)}(e,t,n,r,e.children,i));return a._sourceSegment=e,a._segmentIndexShift=t.length,{segmentGroup:a,slicedSegments:n}}var s=new ze(e.segments,e.children);return s._sourceSegment=e,s._segmentIndexShift=t.length,{segmentGroup:s,slicedSegments:n}}function cn(e,t,n){return(!(e.hasChildren()||t.length>0)||\"full\"!==n.pathMatch)&&\"\"===n.path&&void 0===n.redirectTo}function ln(e){return e.outlet||\"primary\"}function hn(e){return e.data||{}}function fn(e){return e.resolve||{}}function dn(e,t,n,r){var i=Jt(e,t,r);return Ue(i.resolve?i.resolve(t,n):i(t,n))}function vn(e){return function(t){return t.pipe(Object(Q.a)((function(t){var n=e(t);return n?Object(a.a)(n).pipe(Object(k.a)((function(){return t}))):Object(a.a)([t])})))}}var pn=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"shouldDetach\",value:function(e){return!1}},{key:\"store\",value:function(e,t){}},{key:\"shouldAttach\",value:function(e){return!1}},{key:\"retrieve\",value:function(e){return null}},{key:\"shouldReuseRoute\",value:function(e,t){return e.routeConfig===t.routeConfig}}]),e}(),yn=new i.q(\"ROUTES\"),gn=function(){function e(t,n,r,i){_classCallCheck(this,e),this.loader=t,this.compiler=n,this.onLoadStartListener=r,this.onLoadEndListener=i}return _createClass(e,[{key:\"load\",value:function(e,t){var n=this;return this.onLoadStartListener&&this.onLoadStartListener(t),this.loadModuleFactory(t.loadChildren).pipe(Object(k.a)((function(r){n.onLoadEndListener&&n.onLoadEndListener(t);var i=r.create(e);return new Pe(De(i.injector.get(yn)).map(Ie),i)})))}},{key:\"loadModuleFactory\",value:function(e){var t=this;return\"string\"==typeof e?Object(a.a)(this.loader.load(e)):Ue(e()).pipe(Object(G.a)((function(e){return e instanceof i.v?Object(o.a)(e):Object(a.a)(t.compiler.compileModuleAsync(e))})))}}]),e}(),mn=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"shouldProcessUrl\",value:function(e){return!0}},{key:\"extract\",value:function(e){return e}},{key:\"merge\",value:function(e,t){return e}}]),e}();function bn(e){throw e}function _n(e,t,n){return t.parse(\"/\")}function Cn(e,t){return Object(o.a)(null)}var kn,wn,On,Sn=((On=function(){function e(t,n,r,o,a,u,l,h){var f=this;_classCallCheck(this,e),this.rootComponentType=t,this.urlSerializer=n,this.rootContexts=r,this.location=o,this.config=h,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.navigationId=0,this.isNgZoneEnabled=!1,this.events=new s.a,this.errorHandler=bn,this.malformedUriErrorHandler=_n,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:Cn,afterPreactivation:Cn},this.urlHandlingStrategy=new mn,this.routeReuseStrategy=new pn,this.onSameUrlNavigation=\"ignore\",this.paramsInheritanceStrategy=\"emptyOnly\",this.urlUpdateStrategy=\"deferred\",this.relativeLinkResolution=\"legacy\",this.ngModule=a.get(i.x),this.console=a.get(i.W);var d=a.get(i.z);this.isNgZoneEnabled=d instanceof i.z,this.resetConfig(h),this.currentUrlTree=new He(new ze([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new gn(u,l,(function(e){return f.triggerEvent(new ge(e))}),(function(e){return f.triggerEvent(new me(e))})),this.routerState=dt(this.currentUrlTree,this.rootComponentType),this.transitions=new c({id:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:\"imperative\",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}return _createClass(e,[{key:\"setupNavigations\",value:function(e){var t=this,n=this.events;return e.pipe(Object(O.a)((function(e){return 0!==e.id})),Object(k.a)((function(e){return Object.assign(Object.assign({},e),{extractedUrl:t.urlHandlingStrategy.extract(e.rawUrl)})})),Object(Q.a)((function(e){var r,i,s,u,l=!1,h=!1;return Object(o.a)(e).pipe(Object(te.a)((function(e){t.currentNavigation={id:e.id,initialUrl:e.currentRawUrl,extractedUrl:e.extractedUrl,trigger:e.source,extras:e.extras,previousNavigation:t.lastSuccessfulNavigation?Object.assign(Object.assign({},t.lastSuccessfulNavigation),{previousNavigation:null}):null}})),Object(Q.a)((function(e){var r,i,a,s,u=!t.navigated||e.extractedUrl.toString()!==t.browserUrlTree.toString();if((\"reload\"===t.onSameUrlNavigation||u)&&t.urlHandlingStrategy.shouldProcessUrl(e.rawUrl))return Object(o.a)(e).pipe(Object(Q.a)((function(e){var r=t.transitions.getValue();return n.next(new ue(e.id,t.serializeUrl(e.extractedUrl),e.source,e.restoredState)),r!==t.transitions.getValue()?C.a:[e]})),Object(Q.a)((function(e){return Promise.resolve(e)})),(r=t.ngModule.injector,i=t.configLoader,a=t.urlSerializer,s=t.config,function(e){return e.pipe(Object(Q.a)((function(e){return function(e,t,n,r,i){return new zt(e,t,n,r,i).apply()}(r,i,a,e.extractedUrl,s).pipe(Object(k.a)((function(t){return Object.assign(Object.assign({},e),{urlAfterRedirects:t})})))})))}),Object(te.a)((function(e){t.currentNavigation=Object.assign(Object.assign({},t.currentNavigation),{finalUrl:e.urlAfterRedirects})})),function(e,n,r,i,o){return function(r){return r.pipe(Object(G.a)((function(r){return function(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:\"emptyOnly\",o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"legacy\";return new on(e,t,n,r,i,o).recognize()}(e,n,r.urlAfterRedirects,(a=r.urlAfterRedirects,t.serializeUrl(a)),i,o).pipe(Object(k.a)((function(e){return Object.assign(Object.assign({},r),{targetSnapshot:e})})));var a})))}}(t.rootComponentType,t.config,0,t.paramsInheritanceStrategy,t.relativeLinkResolution),Object(te.a)((function(e){\"eager\"===t.urlUpdateStrategy&&(e.extras.skipLocationChange||t.setBrowserUrl(e.urlAfterRedirects,!!e.extras.replaceUrl,e.id,e.extras.state),t.browserUrlTree=e.urlAfterRedirects)})),Object(te.a)((function(e){var r=new fe(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);n.next(r)})));if(u&&t.rawUrlTree&&t.urlHandlingStrategy.shouldProcessUrl(t.rawUrlTree)){var c=e.id,l=e.extractedUrl,h=e.source,f=e.restoredState,d=e.extras,v=new ue(c,t.serializeUrl(l),h,f);n.next(v);var p=dt(l,t.rootComponentType).snapshot;return Object(o.a)(Object.assign(Object.assign({},e),{targetSnapshot:p,urlAfterRedirects:l,extras:Object.assign(Object.assign({},d),{skipLocationChange:!1,replaceUrl:!1})}))}return t.rawUrlTree=e.rawUrl,t.browserUrlTree=e.urlAfterRedirects,e.resolve(null),C.a})),vn((function(e){var n=e.targetSnapshot,r=e.id,i=e.extractedUrl,o=e.rawUrl,a=e.extras,s=a.skipLocationChange,u=a.replaceUrl;return t.hooks.beforePreactivation(n,{navigationId:r,appliedUrlTree:i,rawUrlTree:o,skipLocationChange:!!s,replaceUrl:!!u})})),Object(te.a)((function(e){var n=new de(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);t.triggerEvent(n)})),Object(k.a)((function(e){return Object.assign(Object.assign({},e),{guards:(n=e.targetSnapshot,r=e.currentSnapshot,i=t.rootContexts,o=n._root,function e(t,n,r,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{canDeactivateChecks:[],canActivateChecks:[]},a=ht(n);return t.children.forEach((function(t){!function(t,n,r,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{canDeactivateChecks:[],canActivateChecks:[]},a=t.value,s=n?n.value:null,u=r?r.getContext(t.value.outlet):null;if(s&&a.routeConfig===s.routeConfig){var c=function(e,t,n){if(\"function\"==typeof n)return n(e,t);switch(n){case\"pathParamsChange\":return!Be(e.url,t.url);case\"pathParamsOrQueryParamsChange\":return!Be(e.url,t.url)||!Ne(e.queryParams,t.queryParams);case\"always\":return!0;case\"paramsOrQueryParamsChange\":return!Ct(e,t)||!Ne(e.queryParams,t.queryParams);case\"paramsChange\":default:return!Ct(e,t)}}(s,a,a.routeConfig.runGuardsAndResolvers);c?o.canActivateChecks.push(new Zt(i)):(a.data=s.data,a._resolvedData=s._resolvedData),e(t,n,a.component?u?u.children:null:r,i,o),c&&o.canDeactivateChecks.push(new Qt(u&&u.outlet&&u.outlet.component||null,s))}else s&&Kt(n,u,o),o.canActivateChecks.push(new Zt(i)),e(t,null,a.component?u?u.children:null:r,i,o)}(t,a[t.value.outlet],r,i.concat([t.value]),o),delete a[t.value.outlet]})),Ve(a,(function(e,t){return Kt(e,r.getContext(t),o)})),o}(o,r?r._root:null,i,[o.value]))});var n,r,i,o})),function(e,t){return function(n){return n.pipe(Object(G.a)((function(n){var r=n.targetSnapshot,i=n.currentSnapshot,s=n.guards,u=s.canActivateChecks,c=s.canDeactivateChecks;return 0===c.length&&0===u.length?Object(o.a)(Object.assign(Object.assign({},n),{guardsResult:!0})):function(e,t,n,r){return Object(a.a)(e).pipe(Object(G.a)((function(e){return function(e,t,n,r,i){var a=t&&t.routeConfig?t.routeConfig.canDeactivate:null;if(!a||0===a.length)return Object(o.a)(!0);var s=a.map((function(o){var a,s=Jt(o,t,i);if(function(e){return e&&Mt(e.canDeactivate)}(s))a=Ue(s.canDeactivate(e,t,n,r));else{if(!Mt(s))throw new Error(\"Invalid CanDeactivate guard\");a=Ue(s(e,t,n,r))}return a.pipe(B())}));return Object(o.a)(s).pipe($t())}(e.component,e.route,n,t,r)})),B((function(e){return!0!==e}),!0))}(c,r,i,e).pipe(Object(G.a)((function(n){return n&&\"boolean\"==typeof n?function(e,t,n,r){return Object(a.a)(t).pipe(Object(Y.a)((function(t){return Object(a.a)([en(t.route.parent,r),Yt(t.route,r),nn(e,t.path,n),tn(e,t.route,n)]).pipe(Object(w.a)(),B((function(e){return!0!==e}),!0))})),B((function(e){return!0!==e}),!0))}(r,u,e,t):Object(o.a)(n)})),Object(k.a)((function(e){return Object.assign(Object.assign({},n),{guardsResult:e})})))})))}}(t.ngModule.injector,(function(e){return t.triggerEvent(e)})),Object(te.a)((function(e){if(Dt(e.guardsResult)){var n=xe('Redirecting to \"'.concat(t.serializeUrl(e.guardsResult),'\"'));throw n.url=e.guardsResult,n}})),Object(te.a)((function(e){var n=new ve(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot,!!e.guardsResult);t.triggerEvent(n)})),Object(O.a)((function(e){if(!e.guardsResult){t.resetUrlToCurrentUrlTree();var r=new le(e.id,t.serializeUrl(e.extractedUrl),\"\");return n.next(r),e.resolve(!1),!1}return!0})),vn((function(e){if(e.guards.canActivateChecks.length)return Object(o.a)(e).pipe(Object(te.a)((function(e){var n=new pe(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);t.triggerEvent(n)})),(n=t.paramsInheritanceStrategy,r=t.ngModule.injector,function(e){return e.pipe(Object(G.a)((function(e){var t=e.targetSnapshot,i=e.guards.canActivateChecks;return i.length?Object(a.a)(i).pipe(Object(Y.a)((function(e){return function(e,t,n,r){return function(e,t,n,r){var i=Object.keys(e);if(0===i.length)return Object(o.a)({});if(1===i.length){var s=i[0];return dn(e[s],t,n,r).pipe(Object(k.a)((function(e){return _defineProperty({},s,e)})))}var u={};return Object(a.a)(i).pipe(Object(G.a)((function(i){return dn(e[i],t,n,r).pipe(Object(k.a)((function(e){return u[i]=e,e})))}))).pipe(V(),Object(k.a)((function(){return u})))}(e._resolve,e,t,r).pipe(Object(k.a)((function(t){return e._resolvedData=t,e.data=Object.assign(Object.assign({},e.data),pt(e,n).resolve),null})))}(e.route,t,n,r)})),function(e,t){return arguments.length>=2?function(n){return Object(ee.a)(K(e,t),x(1),N(t))(n)}:function(t){return Object(ee.a)(K((function(t,n,r){return e(t,n,r+1)})),x(1))(t)}}((function(e,t){return e})),Object(k.a)((function(t){return e}))):Object(o.a)(e)})))}),Object(te.a)((function(e){var n=new ye(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);t.triggerEvent(n)})));var n,r})),vn((function(e){var n=e.targetSnapshot,r=e.id,i=e.extractedUrl,o=e.rawUrl,a=e.extras,s=a.skipLocationChange,u=a.replaceUrl;return t.hooks.afterPreactivation(n,{navigationId:r,appliedUrlTree:i,rawUrlTree:o,skipLocationChange:!!s,replaceUrl:!!u})})),Object(k.a)((function(e){var n=function(e,t,n){var r=function e(t,n,r){if(r&&t.shouldReuseRoute(n.value,r.value.snapshot)){var i=r.value;i._futureSnapshot=n.value;var o=function(t,n,r){return n.children.map((function(n){var i=!0,o=!1,a=void 0;try{for(var s,u=r.children[Symbol.iterator]();!(i=(s=u.next()).done);i=!0){var c=s.value;if(t.shouldReuseRoute(c.value.snapshot,n.value))return e(t,n,c)}}catch(l){o=!0,a=l}finally{try{i||null==u.return||u.return()}finally{if(o)throw a}}return e(t,n)}))}(t,n,r);return new lt(i,o)}var a=t.retrieve(n.value);if(a){var s=a.route;return function e(t,n){if(t.value.routeConfig!==n.value.routeConfig)throw new Error(\"Cannot reattach ActivatedRouteSnapshot created from a different route\");if(t.children.length!==n.children.length)throw new Error(\"Cannot reattach ActivatedRouteSnapshot with a different number of children\");n.value._futureSnapshot=t.value;for(var r=0;r<t.children.length;++r)e(t.children[r],n.children[r])}(n,s),s}var u,l=new vt(new c((u=n.value).url),new c(u.params),new c(u.queryParams),new c(u.fragment),new c(u.data),u.outlet,u.component,u),h=n.children.map((function(n){return e(t,n)}));return new lt(l,h)}(e,t._root,n?n._root:void 0);return new ft(r,t)}(t.routeReuseStrategy,e.targetSnapshot,e.currentRouterState);return Object.assign(Object.assign({},e),{targetRouterState:n})})),Object(te.a)((function(e){t.currentUrlTree=e.urlAfterRedirects,t.rawUrlTree=t.urlHandlingStrategy.merge(t.currentUrlTree,e.rawUrl),t.routerState=e.targetRouterState,\"deferred\"===t.urlUpdateStrategy&&(e.extras.skipLocationChange||t.setBrowserUrl(t.rawUrlTree,!!e.extras.replaceUrl,e.id,e.extras.state),t.browserUrlTree=e.urlAfterRedirects)})),(i=t.rootContexts,s=t.routeReuseStrategy,u=function(e){return t.triggerEvent(e)},Object(k.a)((function(e){return new It(s,e.targetRouterState,e.currentRouterState,u).activate(i),e}))),Object(te.a)({next:function(){l=!0},complete:function(){l=!0}}),(r=function(){if(!l&&!h){t.resetUrlToCurrentUrlTree();var r=new le(e.id,t.serializeUrl(e.extractedUrl),\"Navigation ID \".concat(e.id,\" is not equal to the current navigation id \").concat(t.navigationId));n.next(r),e.resolve(!1)}t.currentNavigation=null},function(e){return e.lift(new re(r))}),F((function(r){if(h=!0,(s=r)&&s.ngNavigationCancelingError){var i=Dt(r.url);i||(t.navigated=!0,t.resetStateAndUrl(e.currentRouterState,e.currentUrlTree,e.rawUrl));var o=new le(e.id,t.serializeUrl(e.extractedUrl),r.message);n.next(o),i?setTimeout((function(){var n=t.urlHandlingStrategy.merge(r.url,t.rawUrlTree);return t.scheduleNavigation(n,\"imperative\",null,{skipLocationChange:e.extras.skipLocationChange,replaceUrl:\"eager\"===t.urlUpdateStrategy},{resolve:e.resolve,reject:e.reject,promise:e.promise})}),0):e.resolve(!1)}else{t.resetStateAndUrl(e.currentRouterState,e.currentUrlTree,e.rawUrl);var a=new he(e.id,t.serializeUrl(e.extractedUrl),r);n.next(a);try{e.resolve(t.errorHandler(r))}catch(u){e.reject(u)}}var s;return C.a})))})))}},{key:\"resetRootComponentType\",value:function(e){this.rootComponentType=e,this.routerState.root.component=this.rootComponentType}},{key:\"getTransition\",value:function(){var e=this.transitions.value;return e.urlAfterRedirects=this.browserUrlTree,e}},{key:\"setTransition\",value:function(e){this.transitions.next(Object.assign(Object.assign({},this.getTransition()),e))}},{key:\"initialNavigation\",value:function(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}},{key:\"setUpLocationChangeListener\",value:function(){var e=this;this.locationSubscription||(this.locationSubscription=this.location.subscribe((function(t){var n=e.parseUrl(t.url),r=\"popstate\"===t.type?\"popstate\":\"hashchange\",i=t.state&&t.state.navigationId?t.state:null;setTimeout((function(){e.scheduleNavigation(n,r,i,{replaceUrl:!0})}),0)})))}},{key:\"getCurrentNavigation\",value:function(){return this.currentNavigation}},{key:\"triggerEvent\",value:function(e){this.events.next(e)}},{key:\"resetConfig\",value:function(e){Ae(e),this.config=e.map(Ie),this.navigated=!1,this.lastSuccessfulId=-1}},{key:\"ngOnDestroy\",value:function(){this.dispose()}},{key:\"dispose\",value:function(){this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=null)}},{key:\"createUrlTree\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.relativeTo,r=t.queryParams,o=t.fragment,a=t.preserveQueryParams,s=t.queryParamsHandling,u=t.preserveFragment;Object(i.T)()&&a&&console&&console.warn&&console.warn(\"preserveQueryParams is deprecated, use queryParamsHandling instead.\");var c=n||this.routerState.root,l=u?this.currentUrlTree.fragment:o,h=null;if(s)switch(s){case\"merge\":h=Object.assign(Object.assign({},this.currentUrlTree.queryParams),r);break;case\"preserve\":h=this.currentUrlTree.queryParams;break;default:h=r||null}else h=a?this.currentUrlTree.queryParams:r||null;return null!==h&&(h=this.removeEmptyProps(h)),function(e,t,n,r,i){if(0===n.length)return wt(t.root,t.root,t,r,i);var o=function(e){if(\"string\"==typeof e[0]&&1===e.length&&\"/\"===e[0])return new Ot(!0,0,e);var t=0,n=!1,r=e.reduce((function(e,r,i){if(\"object\"==typeof r&&null!=r){if(r.outlets){var o={};return Ve(r.outlets,(function(e,t){o[t]=\"string\"==typeof e?e.split(\"/\"):e})),[].concat(_toConsumableArray(e),[{outlets:o}])}if(r.segmentPath)return[].concat(_toConsumableArray(e),[r.segmentPath])}return\"string\"!=typeof r?[].concat(_toConsumableArray(e),[r]):0===i?(r.split(\"/\").forEach((function(r,i){0==i&&\".\"===r||(0==i&&\"\"===r?n=!0:\"..\"===r?t++:\"\"!=r&&e.push(r))})),e):[].concat(_toConsumableArray(e),[r])}),[]);return new Ot(n,t,r)}(n);if(o.toRoot())return wt(t.root,new ze([],{}),t,r,i);var a=function(e,t,n){if(e.isAbsolute)return new St(t.root,!0,0);if(-1===n.snapshot._lastPathIndex)return new St(n.snapshot._urlSegment,!0,0);var r=kt(e.commands[0])?0:1;return function(e,t,n){for(var r=e,i=t,o=n;o>i;){if(o-=i,!(r=r.parent))throw new Error(\"Invalid number of '../'\");i=r.segments.length}return new St(r,!1,i-o)}(n.snapshot._urlSegment,n.snapshot._lastPathIndex+r,e.numberOfDoubleDots)}(o,t,e),s=a.processChildren?Tt(a.segmentGroup,a.index,o.commands):xt(a.segmentGroup,a.index,o.commands);return wt(a.segmentGroup,s,t,r,i)}(c,this.currentUrlTree,e,h,l)}},{key:\"navigateByUrl\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{skipLocationChange:!1};Object(i.T)()&&this.isNgZoneEnabled&&!i.z.isInAngularZone()&&this.console.warn(\"Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?\");var n=Dt(e)?e:this.parseUrl(e),r=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(r,\"imperative\",null,t)}},{key:\"navigate\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{skipLocationChange:!1};return function(e){for(var t=0;t<e.length;t++){var n=e[t];if(null==n)throw new Error(\"The requested path contains \".concat(n,\" segment at index \").concat(t))}}(e),this.navigateByUrl(this.createUrlTree(e,t),t)}},{key:\"serializeUrl\",value:function(e){return this.urlSerializer.serialize(e)}},{key:\"parseUrl\",value:function(e){var t;try{t=this.urlSerializer.parse(e)}catch(n){t=this.malformedUriErrorHandler(n,this.urlSerializer,e)}return t}},{key:\"isActive\",value:function(e,t){if(Dt(e))return Fe(this.currentUrlTree,e,t);var n=this.parseUrl(e);return Fe(this.currentUrlTree,n,t)}},{key:\"removeEmptyProps\",value:function(e){return Object.keys(e).reduce((function(t,n){var r=e[n];return null!=r&&(t[n]=r),t}),{})}},{key:\"processNavigations\",value:function(){var e=this;this.navigations.subscribe((function(t){e.navigated=!0,e.lastSuccessfulId=t.id,e.events.next(new ce(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(e.currentUrlTree))),e.lastSuccessfulNavigation=e.currentNavigation,e.currentNavigation=null,t.resolve(!0)}),(function(t){e.console.warn(\"Unhandled Navigation Error: \")}))}},{key:\"scheduleNavigation\",value:function(e,t,n,r,i){var o,a,s,u=this.getTransition();if(u&&\"imperative\"!==t&&\"imperative\"===u.source&&u.rawUrl.toString()===e.toString())return Promise.resolve(!0);if(u&&\"hashchange\"==t&&\"popstate\"===u.source&&u.rawUrl.toString()===e.toString())return Promise.resolve(!0);if(u&&\"popstate\"==t&&\"hashchange\"===u.source&&u.rawUrl.toString()===e.toString())return Promise.resolve(!0);i?(o=i.resolve,a=i.reject,s=i.promise):s=new Promise((function(e,t){o=e,a=t}));var c=++this.navigationId;return this.setTransition({id:c,source:t,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:e,extras:r,resolve:o,reject:a,promise:s,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),s.catch((function(e){return Promise.reject(e)}))}},{key:\"setBrowserUrl\",value:function(e,t,n,r){var i=this.urlSerializer.serialize(e);r=r||{},this.location.isCurrentPathEqualTo(i)||t?this.location.replaceState(i,\"\",Object.assign(Object.assign({},r),{navigationId:n})):this.location.go(i,\"\",Object.assign(Object.assign({},r),{navigationId:n}))}},{key:\"resetStateAndUrl\",value:function(e,t,n){this.routerState=e,this.currentUrlTree=t,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,n),this.resetUrlToCurrentUrlTree()}},{key:\"resetUrlToCurrentUrlTree\",value:function(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),\"\",{navigationId:this.lastSuccessfulId})}},{key:\"url\",get:function(){return this.serializeUrl(this.currentUrlTree)}}]),e}()).\\u0275fac=function(e){i.Tb()},On.\\u0275dir=i.Eb({type:On}),On),En=((wn=function(){function e(t,n,r,i,o){_classCallCheck(this,e),this.router=t,this.route=n,this.commands=[],null==r&&i.setAttribute(o.nativeElement,\"tabindex\",\"0\")}return _createClass(e,[{key:\"onClick\",value:function(){var e={skipLocationChange:Tn(this.skipLocationChange),replaceUrl:Tn(this.replaceUrl)};return this.router.navigateByUrl(this.urlTree,e),!0}},{key:\"routerLink\",set:function(e){this.commands=null!=e?Array.isArray(e)?e:[e]:[]}},{key:\"preserveQueryParams\",set:function(e){Object(i.T)()&&console&&console.warn&&console.warn(\"preserveQueryParams is deprecated!, use queryParamsHandling instead.\"),this.preserve=e}},{key:\"urlTree\",get:function(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:Tn(this.preserve),queryParamsHandling:this.queryParamsHandling,preserveFragment:Tn(this.preserveFragment)})}}]),e}()).\\u0275fac=function(e){return new(e||wn)(i.Jb(Sn),i.Jb(vt),i.Rb(\"tabindex\"),i.Jb(i.D),i.Jb(i.l))},wn.\\u0275dir=i.Eb({type:wn,selectors:[[\"\",\"routerLink\",\"\",5,\"a\",5,\"area\"]],hostBindings:function(e,t){1&e&&i.Ub(\"click\",(function(e){return t.onClick()}))},inputs:{routerLink:\"routerLink\",preserveQueryParams:\"preserveQueryParams\",queryParams:\"queryParams\",fragment:\"fragment\",queryParamsHandling:\"queryParamsHandling\",preserveFragment:\"preserveFragment\",skipLocationChange:\"skipLocationChange\",replaceUrl:\"replaceUrl\",state:\"state\"}}),wn),xn=((kn=function(){function e(t,n,r){var i=this;_classCallCheck(this,e),this.router=t,this.route=n,this.locationStrategy=r,this.commands=[],this.subscription=t.events.subscribe((function(e){e instanceof ce&&i.updateTargetUrlAndHref()}))}return _createClass(e,[{key:\"ngOnChanges\",value:function(e){this.updateTargetUrlAndHref()}},{key:\"ngOnDestroy\",value:function(){this.subscription.unsubscribe()}},{key:\"onClick\",value:function(e,t,n,r){if(0!==e||t||n||r)return!0;if(\"string\"==typeof this.target&&\"_self\"!=this.target)return!0;var i={skipLocationChange:Tn(this.skipLocationChange),replaceUrl:Tn(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,i),!1}},{key:\"updateTargetUrlAndHref\",value:function(){this.href=this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree))}},{key:\"routerLink\",set:function(e){this.commands=null!=e?Array.isArray(e)?e:[e]:[]}},{key:\"preserveQueryParams\",set:function(e){Object(i.T)()&&console&&console.warn&&console.warn(\"preserveQueryParams is deprecated, use queryParamsHandling instead.\"),this.preserve=e}},{key:\"urlTree\",get:function(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:Tn(this.preserve),queryParamsHandling:this.queryParamsHandling,preserveFragment:Tn(this.preserveFragment)})}}]),e}()).\\u0275fac=function(e){return new(e||kn)(i.Jb(Sn),i.Jb(vt),i.Jb(r.h))},kn.\\u0275dir=i.Eb({type:kn,selectors:[[\"a\",\"routerLink\",\"\"],[\"area\",\"routerLink\",\"\"]],hostVars:2,hostBindings:function(e,t){1&e&&i.Ub(\"click\",(function(e){return t.onClick(e.button,e.ctrlKey,e.metaKey,e.shiftKey)})),2&e&&(i.Pb(\"href\",t.href,i.ec),i.Ab(\"target\",t.target))},inputs:{routerLink:\"routerLink\",preserveQueryParams:\"preserveQueryParams\",target:\"target\",queryParams:\"queryParams\",fragment:\"fragment\",queryParamsHandling:\"queryParamsHandling\",preserveFragment:\"preserveFragment\",skipLocationChange:\"skipLocationChange\",replaceUrl:\"replaceUrl\",state:\"state\"},features:[i.xb()]}),kn);function Tn(e){return\"\"===e||!!e}var Pn,An,jn,Rn,In=((Pn=function(){function e(t,n,r,i,o){var a=this;_classCallCheck(this,e),this.router=t,this.element=n,this.renderer=r,this.link=i,this.linkWithHref=o,this.classes=[],this.isActive=!1,this.routerLinkActiveOptions={exact:!1},this.subscription=t.events.subscribe((function(e){e instanceof ce&&a.update()}))}return _createClass(e,[{key:\"ngAfterContentInit\",value:function(){var e=this;this.links.changes.subscribe((function(t){return e.update()})),this.linksWithHrefs.changes.subscribe((function(t){return e.update()})),this.update()}},{key:\"ngOnChanges\",value:function(e){this.update()}},{key:\"ngOnDestroy\",value:function(){this.subscription.unsubscribe()}},{key:\"update\",value:function(){var e=this;this.links&&this.linksWithHrefs&&this.router.navigated&&Promise.resolve().then((function(){var t=e.hasActiveLinks();e.isActive!==t&&(e.isActive=t,e.classes.forEach((function(n){t?e.renderer.addClass(e.element.nativeElement,n):e.renderer.removeClass(e.element.nativeElement,n)})))}))}},{key:\"isLinkActive\",value:function(e){var t=this;return function(n){return e.isActive(n.urlTree,t.routerLinkActiveOptions.exact)}}},{key:\"hasActiveLinks\",value:function(){var e=this.isLinkActive(this.router);return this.link&&e(this.link)||this.linkWithHref&&e(this.linkWithHref)||this.links.some(e)||this.linksWithHrefs.some(e)}},{key:\"routerLinkActive\",set:function(e){var t=Array.isArray(e)?e:e.split(\" \");this.classes=t.filter((function(e){return!!e}))}}]),e}()).\\u0275fac=function(e){return new(e||Pn)(i.Jb(Sn),i.Jb(i.l),i.Jb(i.D),i.Jb(En,8),i.Jb(xn,8))},Pn.\\u0275dir=i.Eb({type:Pn,selectors:[[\"\",\"routerLinkActive\",\"\"]],contentQueries:function(e,t,n){var r;1&e&&(i.Cb(n,En,!0),i.Cb(n,xn,!0)),2&e&&(i.bc(r=i.Vb())&&(t.links=r),i.bc(r=i.Vb())&&(t.linksWithHrefs=r))},inputs:{routerLinkActiveOptions:\"routerLinkActiveOptions\",routerLinkActive:\"routerLinkActive\"},exportAs:[\"routerLinkActive\"],features:[i.xb()]}),Pn),Nn=function e(){_classCallCheck(this,e),this.outlet=null,this.route=null,this.resolver=null,this.children=new Mn,this.attachRef=null},Mn=function(){function e(){_classCallCheck(this,e),this.contexts=new Map}return _createClass(e,[{key:\"onChildOutletCreated\",value:function(e,t){var n=this.getOrCreateContext(e);n.outlet=t,this.contexts.set(e,n)}},{key:\"onChildOutletDestroyed\",value:function(e){var t=this.getContext(e);t&&(t.outlet=null)}},{key:\"onOutletDeactivated\",value:function(){var e=this.contexts;return this.contexts=new Map,e}},{key:\"onOutletReAttached\",value:function(e){this.contexts=e}},{key:\"getOrCreateContext\",value:function(e){var t=this.getContext(e);return t||(t=new Nn,this.contexts.set(e,t)),t}},{key:\"getContext\",value:function(e){return this.contexts.get(e)||null}}]),e}(),Dn=((An=function(){function e(t,n,r,o,a){_classCallCheck(this,e),this.parentContexts=t,this.location=n,this.resolver=r,this.changeDetector=a,this.activated=null,this._activatedRoute=null,this.activateEvents=new i.n,this.deactivateEvents=new i.n,this.name=o||\"primary\",t.onChildOutletCreated(this.name,this)}return _createClass(e,[{key:\"ngOnDestroy\",value:function(){this.parentContexts.onChildOutletDestroyed(this.name)}},{key:\"ngOnInit\",value:function(){if(!this.activated){var e=this.parentContexts.getContext(this.name);e&&e.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.resolver||null))}}},{key:\"detach\",value:function(){if(!this.activated)throw new Error(\"Outlet is not activated\");this.location.detach();var e=this.activated;return this.activated=null,this._activatedRoute=null,e}},{key:\"attach\",value:function(e,t){this.activated=e,this._activatedRoute=t,this.location.insert(e.hostView)}},{key:\"deactivate\",value:function(){if(this.activated){var e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}},{key:\"activateWith\",value:function(e,t){if(this.isActivated)throw new Error(\"Cannot activate an already activated outlet\");this._activatedRoute=e;var n=(t=t||this.resolver).resolveComponentFactory(e._futureSnapshot.routeConfig.component),r=this.parentContexts.getOrCreateContext(this.name).children,i=new Ln(e,r,this.location.injector);this.activated=this.location.createComponent(n,this.location.length,i),this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}},{key:\"isActivated\",get:function(){return!!this.activated}},{key:\"component\",get:function(){if(!this.activated)throw new Error(\"Outlet is not activated\");return this.activated.instance}},{key:\"activatedRoute\",get:function(){if(!this.activated)throw new Error(\"Outlet is not activated\");return this._activatedRoute}},{key:\"activatedRouteData\",get:function(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}}]),e}()).\\u0275fac=function(e){return new(e||An)(i.Jb(Mn),i.Jb(i.N),i.Jb(i.j),i.Rb(\"name\"),i.Jb(i.h))},An.\\u0275dir=i.Eb({type:An,selectors:[[\"router-outlet\"]],outputs:{activateEvents:\"activate\",deactivateEvents:\"deactivate\"},exportAs:[\"outlet\"]}),An),Ln=function(){function e(t,n,r){_classCallCheck(this,e),this.route=t,this.childContexts=n,this.parent=r}return _createClass(e,[{key:\"get\",value:function(e,t){return e===vt?this.route:e===Mn?this.childContexts:this.parent.get(e,t)}}]),e}(),Vn=function e(){_classCallCheck(this,e)},Un=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"preload\",value:function(e,t){return Object(o.a)(null)}}]),e}(),Fn=((Rn=function(){function e(t,n,r,i,o){_classCallCheck(this,e),this.router=t,this.injector=i,this.preloadingStrategy=o,this.loader=new gn(n,r,(function(e){return t.triggerEvent(new ge(e))}),(function(e){return t.triggerEvent(new me(e))}))}return _createClass(e,[{key:\"setUpPreloading\",value:function(){var e=this;this.subscription=this.router.events.pipe(Object(O.a)((function(e){return e instanceof ce})),Object(Y.a)((function(){return e.preload()}))).subscribe((function(){}))}},{key:\"preload\",value:function(){var e=this.injector.get(i.x);return this.processRoutes(e,this.router.config)}},{key:\"ngOnDestroy\",value:function(){this.subscription.unsubscribe()}},{key:\"processRoutes\",value:function(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var s,u=t[Symbol.iterator]();!(r=(s=u.next()).done);r=!0){var c=s.value;if(c.loadChildren&&!c.canLoad&&c._loadedConfig){var l=c._loadedConfig;n.push(this.processRoutes(l.module,l.routes))}else c.loadChildren&&!c.canLoad?n.push(this.preloadConfig(e,c)):c.children&&n.push(this.processRoutes(e,c.children))}}catch(h){i=!0,o=h}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return Object(a.a)(n).pipe(Object(oe.a)(),Object(k.a)((function(e){})))}},{key:\"preloadConfig\",value:function(e,t){var n=this;return this.preloadingStrategy.preload(t,(function(){return n.loader.load(e.injector,t).pipe(Object(G.a)((function(e){return t._loadedConfig=e,n.processRoutes(e.module,e.routes)})))}))}}]),e}()).\\u0275fac=function(e){return new(e||Rn)(i.Qb(Sn),i.Qb(i.w),i.Qb(i.i),i.Qb(i.r),i.Qb(Vn))},Rn.\\u0275prov=i.Fb({token:Rn,factory:Rn.\\u0275fac}),Rn),Hn=((jn=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};_classCallCheck(this,e),this.router=t,this.viewportScroller=n,this.options=r,this.lastId=0,this.lastSource=\"imperative\",this.restoredId=0,this.store={},r.scrollPositionRestoration=r.scrollPositionRestoration||\"disabled\",r.anchorScrolling=r.anchorScrolling||\"disabled\"}return _createClass(e,[{key:\"init\",value:function(){\"disabled\"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration(\"manual\"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}},{key:\"createScrollEvents\",value:function(){var e=this;return this.router.events.subscribe((function(t){t instanceof ue?(e.store[e.lastId]=e.viewportScroller.getScrollPosition(),e.lastSource=t.navigationTrigger,e.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof ce&&(e.lastId=t.id,e.scheduleScrollEvent(t,e.router.parseUrl(t.urlAfterRedirects).fragment))}))}},{key:\"consumeScrollEvents\",value:function(){var e=this;return this.router.events.subscribe((function(t){t instanceof we&&(t.position?\"top\"===e.options.scrollPositionRestoration?e.viewportScroller.scrollToPosition([0,0]):\"enabled\"===e.options.scrollPositionRestoration&&e.viewportScroller.scrollToPosition(t.position):t.anchor&&\"enabled\"===e.options.anchorScrolling?e.viewportScroller.scrollToAnchor(t.anchor):\"disabled\"!==e.options.scrollPositionRestoration&&e.viewportScroller.scrollToPosition([0,0]))}))}},{key:\"scheduleScrollEvent\",value:function(e,t){this.router.triggerEvent(new we(e,\"popstate\"===this.lastSource?this.store[this.restoredId]:null,t))}},{key:\"ngOnDestroy\",value:function(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}]),e}()).\\u0275fac=function(e){i.Tb()},jn.\\u0275dir=i.Eb({type:jn}),jn),zn=new i.q(\"ROUTER_CONFIGURATION\"),qn=new i.q(\"ROUTER_FORROOT_GUARD\"),Bn=[r.g,{provide:We,useClass:Ze},{provide:Sn,useFactory:function(e,t,n,i,o,a,s,u){var c=arguments.length>8&&void 0!==arguments[8]?arguments[8]:{},l=arguments.length>9?arguments[9]:void 0,h=arguments.length>10?arguments[10]:void 0,f=new Sn(null,t,n,i,o,a,s,De(u));if(l&&(f.urlHandlingStrategy=l),h&&(f.routeReuseStrategy=h),c.errorHandler&&(f.errorHandler=c.errorHandler),c.malformedUriErrorHandler&&(f.malformedUriErrorHandler=c.malformedUriErrorHandler),c.enableTracing){var d=Object(r.q)();f.events.subscribe((function(e){d.logGroup(\"Router Event: \".concat(e.constructor.name)),d.log(e.toString()),d.log(e),d.logGroupEnd()}))}return c.onSameUrlNavigation&&(f.onSameUrlNavigation=c.onSameUrlNavigation),c.paramsInheritanceStrategy&&(f.paramsInheritanceStrategy=c.paramsInheritanceStrategy),c.urlUpdateStrategy&&(f.urlUpdateStrategy=c.urlUpdateStrategy),c.relativeLinkResolution&&(f.relativeLinkResolution=c.relativeLinkResolution),f},deps:[i.g,We,Mn,r.g,i.r,i.w,i.i,yn,zn,[function(){return function e(){_classCallCheck(this,e)}}(),new i.A],[function(){return function e(){_classCallCheck(this,e)}}(),new i.A]]},Mn,{provide:vt,useFactory:function(e){return e.routerState.root},deps:[Sn]},{provide:i.w,useClass:i.J},Fn,Un,function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"preload\",value:function(e,t){return t().pipe(F((function(){return Object(o.a)(null)})))}}]),e}(),{provide:zn,useValue:{enableTracing:!1}}];function Gn(){return new i.y(\"Router\",Sn)}var Wn,Zn=((Wn=function(){function e(t,n){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"forRoot\",value:function(t,n){return{ngModule:e,providers:[Bn,Xn(t),{provide:qn,useFactory:Kn,deps:[[Sn,new i.A,new i.I]]},{provide:zn,useValue:n||{}},{provide:r.h,useFactory:Jn,deps:[r.l,[new i.p(r.a),new i.A],zn]},{provide:Hn,useFactory:Qn,deps:[Sn,r.m,zn]},{provide:Vn,useExisting:n&&n.preloadingStrategy?n.preloadingStrategy:Un},{provide:i.y,multi:!0,useFactory:Gn},[Yn,{provide:i.d,multi:!0,useFactory:er,deps:[Yn]},{provide:nr,useFactory:tr,deps:[Yn]},{provide:i.b,multi:!0,useExisting:nr}]]}}},{key:\"forChild\",value:function(t){return{ngModule:e,providers:[Xn(t)]}}}]),e}()).\\u0275mod=i.Hb({type:Wn}),Wn.\\u0275inj=i.Gb({factory:function(e){return new(e||Wn)(i.Qb(qn,8),i.Qb(Sn,8))}}),Wn);function Qn(e,t,n){return n.scrollOffset&&t.setOffset(n.scrollOffset),new Hn(e,t,n)}function Jn(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n.useHash?new r.e(e,t):new r.k(e,t)}function Kn(e){if(e)throw new Error(\"RouterModule.forRoot() called twice. Lazy loaded modules should use RouterModule.forChild() instead.\");return\"guarded\"}function Xn(e){return[{provide:i.a,multi:!0,useValue:e},{provide:yn,multi:!0,useValue:e}]}var $n,Yn=(($n=function(){function e(t){_classCallCheck(this,e),this.injector=t,this.initNavigation=!1,this.resultOfPreactivationDone=new s.a}return _createClass(e,[{key:\"appInitializer\",value:function(){var e=this;return this.injector.get(r.f,Promise.resolve(null)).then((function(){var t=null,n=new Promise((function(e){return t=e})),r=e.injector.get(Sn),i=e.injector.get(zn);if(e.isLegacyDisabled(i)||e.isLegacyEnabled(i))t(!0);else if(\"disabled\"===i.initialNavigation)r.setUpLocationChangeListener(),t(!0);else{if(\"enabled\"!==i.initialNavigation)throw new Error(\"Invalid initialNavigation options: '\".concat(i.initialNavigation,\"'\"));r.hooks.afterPreactivation=function(){return e.initNavigation?Object(o.a)(null):(e.initNavigation=!0,t(!0),e.resultOfPreactivationDone)},r.initialNavigation()}return n}))}},{key:\"bootstrapListener\",value:function(e){var t=this.injector.get(zn),n=this.injector.get(Fn),r=this.injector.get(Hn),o=this.injector.get(Sn),a=this.injector.get(i.g);e===a.components[0]&&(this.isLegacyEnabled(t)?o.initialNavigation():this.isLegacyDisabled(t)&&o.setUpLocationChangeListener(),n.setUpPreloading(),r.init(),o.resetRootComponentType(a.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())}},{key:\"isLegacyEnabled\",value:function(e){return\"legacy_enabled\"===e.initialNavigation||!0===e.initialNavigation||void 0===e.initialNavigation}},{key:\"isLegacyDisabled\",value:function(e){return\"legacy_disabled\"===e.initialNavigation||!1===e.initialNavigation}}]),e}()).\\u0275fac=function(e){return new(e||$n)(i.Qb(i.r))},$n.\\u0275prov=i.Fb({token:$n,factory:$n.\\u0275fac}),$n);function er(e){return e.appInitializer.bind(e)}function tr(e){return e.bootstrapListener.bind(e)}var nr=new i.q(\"Router Initializer\")},vkgz:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return a}));var r=n(\"7o/Q\"),i=n(\"KqfI\"),o=n(\"n6bG\");function a(e,t,n){return function(r){return r.lift(new s(e,t,n))}}var s=function(){function e(t,n,r){_classCallCheck(this,e),this.nextOrObserver=t,this.error=n,this.complete=r}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new u(e,this.nextOrObserver,this.error,this.complete))}}]),e}(),u=function(e){function t(e,n,r,a){var s;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._tapNext=i.a,s._tapError=i.a,s._tapComplete=i.a,s._tapError=r||i.a,s._tapComplete=a||i.a,Object(o.a)(n)?(s._context=_assertThisInitialized(s),s._tapNext=n):n&&(s._context=n,s._tapNext=n.next||i.a,s._tapError=n.error||i.a,s._tapComplete=n.complete||i.a),s}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){try{this._tapNext.call(this._context,e)}catch(t){return void this.destination.error(t)}this.destination.next(e)}},{key:\"_error\",value:function(e){try{this._tapError.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.error(e)}},{key:\"_complete\",value:function(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()}}]),t}(r.a)},\"x+ZX\":function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return i}));var r=n(\"7o/Q\");function i(){return function(e){return e.lift(new o(e))}}var o=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new a(e,n),i=t.subscribe(r);return r.closed||(r.connection=n.connect()),i}}]),e}(),a=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(r.a)},yCtX:function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return a}));var r=n(\"HDdC\"),i=n(\"ngJS\"),o=n(\"jZKg\");function a(e,t){return t?Object(o.a)(e,t):new r.a(Object(i.a)(e))}},\"z+Ro\":function(e,t,n){\"use strict\";function r(e){return e&&\"function\"==typeof e.schedule}n.d(t,\"a\",(function(){return r}))},zUnb:function(e,t,n){\"use strict\";n.r(t);var r,i,o,a,s=n(\"fXoL\"),u=n(\"ofXK\"),c=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=l||(l=document.querySelector(\"base\"))?l.getAttribute(\"href\"):null;return null==n?null:(t=n,r||(r=document.createElement(\"a\")),r.setAttribute(\"href\",t),\"/\"===r.pathname.charAt(0)?r.pathname:\"/\"+r.pathname)}},{key:\"resetBaseElement\",value:function(){l=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return Object(u.r)(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){Object(u.s)(new t)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(u.o)),l=null,h=new s.q(\"TRANSITION_ID\"),f=[{provide:s.d,useFactory:function(e,t,n){return function(){n.get(s.e).donePromise.then((function(){var n=Object(u.q)();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[h,u.d,s.r],multi:!0}],d=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){s.nb.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},s.nb.getAllAngularTestabilities=function(){return e.getAllTestabilities()},s.nb.getAllAngularRootElements=function(){return e.getAllRootElements()},s.nb.frameworkStabilizers||(s.nb.frameworkStabilizers=[]),s.nb.frameworkStabilizers.push((function(e){var t=s.nb.getAllAngularTestabilities(),n=t.length,r=!1,i=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(i)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Object(u.q)().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){Object(s.V)(new e)}}]),e}(),v=new s.q(\"EventManagerPlugins\"),p=((i=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var i=n[r];if(i.supports(e))return this._eventNameToPlugin.set(e,i),i}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||i)(s.Qb(v),s.Qb(s.z))},i.\\u0275prov=s.Fb({token:i,factory:i.\\u0275fac}),i),y=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Object(u.q)().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),g=((a=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||a)},a.\\u0275prov=s.Fb({token:a,factory:a.\\u0275fac}),a),m=((o=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Object(u.q)().remove(e)}))}}]),t}(g)).\\u0275fac=function(e){return new(e||o)(s.Qb(u.d))},o.\\u0275prov=s.Fb({token:o,factory:o.\\u0275fac}),o),b={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},_=/%COMP%/g;function C(e,t,n){for(var r=0;r<t.length;r++){var i=t[r];Array.isArray(i)?C(e,i,n):(i=i.replace(_,e),n.push(i))}return n}function k(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var w,O,S,E,x=((w=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new T(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case s.O.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new P(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case s.O.Native:case s.O.ShadowDom:return new A(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=C(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||w)(s.Qb(p),s.Qb(m),s.Qb(s.c))},w.\\u0275prov=s.Fb({token:w,factory:w.\\u0275fac}),w),T=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(b[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var i=b[r];i?e.setAttributeNS(i,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=b[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&s.F.DashCase?e.style.setProperty(t,n,r&s.F.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&s.F.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,k(n)):this.eventManager.addEventListener(e,t,k(n))}}]),e}(),P=function(e){function t(e,n,r,i){var o;_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var a,s=C(i+\"-\"+r.id,r.styles,[]);return n.addStyles(s),o.contentAttr=\"_ngcontent-%COMP%\".replace(_,i+\"-\"+r.id),o.hostAttr=(a=i+\"-\"+r.id,\"_nghost-%COMP%\".replace(_,a)),o}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(T),A=function(e){function t(e,n,r,i){var o;_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,o.hostEl=r,o.component=i,o.shadowRoot=i.encapsulation===s.O.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),o.sharedStylesHost.addHost(o.shadowRoot);for(var a=C(i.id,i.styles,[]),u=0;u<a.length;u++){var c=document.createElement(\"style\");c.textContent=a[u],o.shadowRoot.appendChild(c)}return o}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(T),j=((O=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(y)).\\u0275fac=function(e){return new(e||O)(s.Qb(u.d))},O.\\u0275prov=s.Fb({token:O,factory:O.\\u0275fac}),O),R=[\"alt\",\"control\",\"meta\",\"shift\"],I={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},N={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},M={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},D=((S=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var i=t.parseEventName(n),o=t.eventCallback(i.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Object(u.q)().onAndCancel(e,i.domEventName,o)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var i=t._normalizeKey(n.pop()),o=\"\";if(R.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),o+=e+\".\")})),o+=i,0!=n.length||0===i.length)return null;var a={};return a.domEventName=r,a.fullKey=o,a}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&N.hasOwnProperty(t)&&(t=N[t]))}return I[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),R.forEach((function(r){r!=n&&(0,M[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(i){t.getEventFullKey(i)===e&&r.runGuarded((function(){return n(i)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(y)).\\u0275fac=function(e){return new(e||S)(s.Qb(u.d))},S.\\u0275prov=s.Fb({token:S,factory:S.\\u0275fac}),S),L=[{provide:s.B,useValue:u.p},{provide:s.C,useValue:function(){c.makeCurrent(),d.init()},multi:!0},{provide:u.d,useFactory:function(){return Object(s.tb)(document),document},deps:[]}],V=Object(s.Q)(s.U,\"browser\",L),U=[[],{provide:s.X,useValue:\"root\"},{provide:s.m,useFactory:function(){return new s.m},deps:[]},{provide:v,useClass:j,multi:!0,deps:[u.d,s.z,s.B]},{provide:v,useClass:D,multi:!0,deps:[u.d]},[],{provide:x,useClass:x,deps:[p,m,s.c]},{provide:s.E,useExisting:x},{provide:g,useExisting:m},{provide:m,useClass:m,deps:[u.d]},{provide:s.L,useClass:s.L,deps:[s.z]},{provide:p,useClass:p,deps:[v,s.z]},[]],F=((E=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:s.c,useValue:t.appId},{provide:h,useExisting:s.c},f]}}}]),e}()).\\u0275mod=s.Hb({type:E}),E.\\u0275inj=s.Gb({factory:function(e){return new(e||E)(s.Qb(E,12))},providers:U,imports:[u.b,s.f]}),E);\"undefined\"!=typeof window&&window;var H,z,q,B,G,W,Z,Q=n(\"tyNb\"),J=((H=function e(){_classCallCheck(this,e)}).\\u0275fac=function(e){return new(e||H)},H.\\u0275cmp=s.Db({type:H,selectors:[[\"app\"]],decls:1,vars:0,template:function(e,t){1&e&&s.Kb(0,\"router-outlet\")},directives:[Q.f],encapsulation:2}),H),K=n(\"3Pt+\"),X=n(\"jU2X\"),$=n(\"4Sfc\"),Y=n(\"Cfvw\"),ee=((q=function(){function e(){_classCallCheck(this,e),this.products=[new $.a(1,\"Product 1\",\"Category 1\",\"Product 1 (Category 1)\",100),new $.a(2,\"Product 2\",\"Category 1\",\"Product 2 (Category 1)\",100),new $.a(3,\"Product 3\",\"Category 1\",\"Product 3 (Category 1)\",100),new $.a(4,\"Product 4\",\"Category 1\",\"Product 4 (Category 1)\",100),new $.a(5,\"Product 5\",\"Category 1\",\"Product 5 (Category 1)\",100),new $.a(6,\"Product 6\",\"Category 2\",\"Product 6 (Category 2)\",100),new $.a(7,\"Product 7\",\"Category 2\",\"Product 7 (Category 2)\",100),new $.a(8,\"Product 8\",\"Category 2\",\"Product 8 (Category 2)\",100),new $.a(9,\"Product 9\",\"Category 2\",\"Product 9 (Category 2)\",100),new $.a(10,\"Product 10\",\"Category 2\",\"Product 10 (Category 2)\",100),new $.a(11,\"Product 11\",\"Category 3\",\"Product 11 (Category 3)\",100),new $.a(12,\"Product 12\",\"Category 3\",\"Product 12 (Category 3)\",100),new $.a(13,\"Product 13\",\"Category 3\",\"Product 13 (Category 3)\",100),new $.a(14,\"Product 14\",\"Category 3\",\"Product 14 (Category 3)\",100),new $.a(15,\"Product 15\",\"Category 3\",\"Product 15 (Category 3)\",100)]}return _createClass(e,[{key:\"getProducts\",value:function(){return Object(Y.a)([this.products])}},{key:\"saveOrder\",value:function(e){return console.log(JSON.stringify(e)),Object(Y.a)([e])}}]),e}()).\\u0275fac=function(e){return new(e||q)},q.\\u0275prov=s.Fb({token:q,factory:q.\\u0275fac}),q),te=((z=function(){function e(){_classCallCheck(this,e),this.lines=[],this.itemCount=0,this.cartPrice=0}return _createClass(e,[{key:\"addLine\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=this.lines.find((function(t){return t.product.id==e.id}));null!=n?n.quantity+=t:this.lines.push(new ne(e,t)),this.recalculate()}},{key:\"updateQuantity\",value:function(e,t){var n=this.lines.find((function(t){return t.product.id==e.id}));null!=n&&(n.quantity=Number(t)),this.recalculate()}},{key:\"removeLine\",value:function(e){var t=this.lines.findIndex((function(t){return t.product.id==e}));this.lines.splice(t,1),this.recalculate()}},{key:\"clear\",value:function(){this.lines=[],this.itemCount=0,this.cartPrice=0}},{key:\"recalculate\",value:function(){var e=this;this.itemCount=0,this.cartPrice=0,this.lines.forEach((function(t){e.itemCount+=t.quantity,e.cartPrice+=t.quantity*t.product.price}))}}]),e}()).\\u0275fac=function(e){return new(e||z)},z.\\u0275prov=s.Fb({token:z,factory:z.\\u0275fac}),z),ne=function(){function e(t,n){_classCallCheck(this,e),this.product=t,this.quantity=n}return _createClass(e,[{key:\"lineTotal\",get:function(){return this.quantity*this.product.price}}]),e}(),re=((B=function(){function e(t){_classCallCheck(this,e),this.cart=t,this.shipped=!1}return _createClass(e,[{key:\"clear\",value:function(){this.id=null,this.name=this.address=this.city=null,this.state=this.zip=this.country=null,this.shipped=!1,this.cart.clear()}}]),e}()).\\u0275fac=function(e){return new(e||B)(s.Qb(te))},B.\\u0275prov=s.Fb({token:B,factory:B.\\u0275fac}),B),ie=n(\"hf/X\"),oe=n(\"DZdm\"),ae=n(\"tk/3\"),se=n(\"hO0c\"),ue=n(\"XNiG\"),ce=((Z=function(){function e(){var t=this;_classCallCheck(this,e),this.connEvents=new ue.a,window.addEventListener(\"online\",(function(e){return t.handleConnectionChange(e)})),window.addEventListener(\"offline\",(function(e){return t.handleConnectionChange(e)}))}return _createClass(e,[{key:\"handleConnectionChange\",value:function(e){this.connEvents.next(this.connected)}},{key:\"connected\",get:function(){return window.navigator.onLine}},{key:\"Changes\",get:function(){return this.connEvents}}]),e}()).\\u0275fac=function(e){return new(e||Z)},Z.\\u0275prov=s.Fb({token:Z,factory:Z.\\u0275fac}),Z),le=((W=function e(){_classCallCheck(this,e)}).\\u0275mod=s.Hb({type:W}),W.\\u0275inj=s.Gb({factory:function(e){return new(e||W)},providers:[X.a,te,re,ie.a,{provide:ee,useClass:oe.a},oe.a,se.a,ce],imports:[[ae.b]]}),W),he=((G=function e(){_classCallCheck(this,e)}).\\u0275mod=s.Hb({type:G}),G.\\u0275inj=s.Gb({factory:function(e){return new(e||G)},imports:[[le,F,K.c,Q.e]]}),G);function fe(e,t){if(1&e&&(s.Mb(0,\"span\"),s.hc(1),s.Xb(2,\"currency\"),s.Lb()),2&e){var n=s.Wb();s.zb(1),s.kc(\" \",n.cart.itemCount,\" item(s) \",s.Yb(2,2,n.cart.cartPrice,\"USD\",\"symbol\",\"2.2-2\"),\" \")}}function de(e,t){1&e&&(s.Mb(0,\"span\"),s.hc(1,\" (empty) \"),s.Lb())}var ve,pe,ye=((pe=function e(t){_classCallCheck(this,e),this.cart=t}).\\u0275fac=function(e){return new(e||pe)(s.Jb(te))},pe.\\u0275cmp=s.Db({type:pe,selectors:[[\"cart-summary\"]],decls:7,vars:3,consts:[[1,\"float-right\"],[4,\"ngIf\"],[\"routerLink\",\"/cart\",1,\"btn\",\"btn-sm\",\"bg-dark\",\"text-white\",3,\"disabled\"],[1,\"fa\",\"fa-shopping-cart\"]],template:function(e,t){1&e&&(s.Mb(0,\"div\",0),s.Mb(1,\"small\"),s.hc(2,\" Your cart: \"),s.gc(3,fe,3,7,\"span\",1),s.gc(4,de,2,0,\"span\",1),s.Lb(),s.Mb(5,\"button\",2),s.Kb(6,\"i\",3),s.Lb(),s.Lb()),2&e&&(s.zb(3),s.Zb(\"ngIf\",t.cart.itemCount>0),s.zb(1),s.Zb(\"ngIf\",0==t.cart.itemCount),s.zb(1),s.Zb(\"disabled\",0==t.cart.itemCount))},directives:[u.j,Q.c],pipes:[u.c],encapsulation:2}),pe),ge=((ve=function(){function e(t,n){_classCallCheck(this,e),this.container=t,this.template=n}return _createClass(e,[{key:\"ngOnChanges\",value:function(e){this.container.clear();for(var t=0;t<this.counter;t++)this.container.createEmbeddedView(this.template,new me(t+1))}}]),e}()).\\u0275fac=function(e){return new(e||ve)(s.Jb(s.N),s.Jb(s.K))},ve.\\u0275dir=s.Eb({type:ve,selectors:[[\"\",\"counterOf\",\"\"]],inputs:{counter:[\"counterOf\",\"counter\"]},features:[s.xb()]}),ve),me=function e(t){_classCallCheck(this,e),this.$implicit=t};function be(e,t){if(1&e){var n=s.Nb();s.Mb(0,\"button\",18),s.Ub(\"click\",(function(e){s.dc(n);var r=t.$implicit;return s.Wb().changeCategory(r)})),s.hc(1),s.Lb()}if(2&e){var r=t.$implicit,i=s.Wb();s.Bb(\"active\",r==i.selectedCategory),s.zb(1),s.jc(\" \",r,\" \")}}function _e(e,t){if(1&e){var n=s.Nb();s.Mb(0,\"div\",19),s.Mb(1,\"h4\"),s.hc(2),s.Mb(3,\"span\",20),s.hc(4),s.Xb(5,\"currency\"),s.Lb(),s.Lb(),s.Mb(6,\"div\",21),s.hc(7),s.Mb(8,\"button\",22),s.Ub(\"click\",(function(e){s.dc(n);var r=t.$implicit;return s.Wb().addProductToCart(r)})),s.hc(9,\" Add To Cart \"),s.Lb(),s.Lb(),s.Lb()}if(2&e){var r=t.$implicit;s.zb(2),s.jc(\" \",r.name,\" \"),s.zb(2),s.jc(\" \",s.Yb(5,3,r.price,\"USD\",\"symbol\",\"2.2-2\"),\" \"),s.zb(3),s.jc(\" \",r.description,\" \")}}function Ce(e,t){if(1&e){var n=s.Nb();s.Mb(0,\"button\",23),s.Ub(\"click\",(function(e){s.dc(n);var r=t.$implicit;return s.Wb().changePage(r)})),s.hc(1),s.Lb()}if(2&e){var r=t.$implicit,i=s.Wb();s.Bb(\"active\",r==i.selectedPage),s.zb(1),s.jc(\" \",r,\" \")}}var ke,we=((ke=function(){function e(t,n,r){_classCallCheck(this,e),this.repository=t,this.cart=n,this.router=r,this.selectedCategory=null,this.productsPerPage=4,this.selectedPage=1}return _createClass(e,[{key:\"changeCategory\",value:function(e){this.selectedCategory=e}},{key:\"changePage\",value:function(e){this.selectedPage=e}},{key:\"changePageSize\",value:function(e){this.productsPerPage=Number(e),this.changePage(1)}},{key:\"addProductToCart\",value:function(e){this.cart.addLine(e),this.router.navigateByUrl(\"/cart\")}},{key:\"products\",get:function(){var e=(this.selectedPage-1)*this.productsPerPage;return this.repository.getProducts(this.selectedCategory).slice(e,e+this.productsPerPage)}},{key:\"categories\",get:function(){return this.repository.getCategories()}},{key:\"pageCount\",get:function(){return Math.ceil(this.repository.getProducts(this.selectedCategory).length/this.productsPerPage)}}]),e}()).\\u0275fac=function(e){return new(e||ke)(s.Jb(X.a),s.Jb(te),s.Jb(Q.b))},ke.\\u0275cmp=s.Db({type:ke,selectors:[[\"store\"]],decls:27,vars:4,consts:[[1,\"container-fluid\"],[1,\"row\"],[1,\"col\",\"bg-dark\",\"text-white\"],[1,\"navbar-brand\"],[1,\"col-3\",\"p-2\"],[1,\"btn\",\"btn-block\",\"btn-outline-primary\",3,\"click\"],[\"class\",\"btn btn-outline-primary btn-block\",3,\"active\",\"click\",4,\"ngFor\",\"ngForOf\"],[\"routerLink\",\"/admin\",1,\"btn\",\"btn-block\",\"btn-danger\",\"mt-5\"],[1,\"col-9\",\"p-2\"],[\"class\",\"card m-1 p-1 bg-light\",4,\"ngFor\",\"ngForOf\"],[1,\"form-inline\",\"float-left\",\"mr-1\"],[1,\"form-control\",3,\"value\",\"change\"],[\"value\",\"3\"],[\"value\",\"4\"],[\"value\",\"6\"],[\"value\",\"8\"],[1,\"btn-group\",\"float-right\"],[\"class\",\"btn btn-outline-primary\",3,\"active\",\"click\",4,\"counter\",\"counterOf\"],[1,\"btn\",\"btn-outline-primary\",\"btn-block\",3,\"click\"],[1,\"card\",\"m-1\",\"p-1\",\"bg-light\"],[1,\"badge\",\"badge-pill\",\"badge-primary\",\"float-right\"],[1,\"card-text\",\"bg-white\",\"p-1\"],[1,\"btn\",\"btn-success\",\"btn-sm\",\"float-right\",3,\"click\"],[1,\"btn\",\"btn-outline-primary\",3,\"click\"]],template:function(e,t){1&e&&(s.Mb(0,\"div\",0),s.Mb(1,\"div\",1),s.Mb(2,\"div\",2),s.Mb(3,\"a\",3),s.hc(4,\"SPORTS STORE\"),s.Lb(),s.Kb(5,\"cart-summary\"),s.Lb(),s.Lb(),s.Mb(6,\"div\",1),s.Mb(7,\"div\",4),s.Mb(8,\"button\",5),s.Ub(\"click\",(function(e){return t.changeCategory()})),s.hc(9,\" Home \"),s.Lb(),s.gc(10,be,2,3,\"button\",6),s.Mb(11,\"button\",7),s.hc(12,\" Admin \"),s.Lb(),s.Lb(),s.Mb(13,\"div\",8),s.gc(14,_e,10,8,\"div\",9),s.Mb(15,\"div\",10),s.Mb(16,\"select\",11),s.Ub(\"change\",(function(e){return t.changePageSize(e.target.value)})),s.Mb(17,\"option\",12),s.hc(18,\"3 per Page\"),s.Lb(),s.Mb(19,\"option\",13),s.hc(20,\"4 per Page\"),s.Lb(),s.Mb(21,\"option\",14),s.hc(22,\"6 per Page\"),s.Lb(),s.Mb(23,\"option\",15),s.hc(24,\"8 per Page\"),s.Lb(),s.Lb(),s.Lb(),s.Mb(25,\"div\",16),s.gc(26,Ce,2,3,\"button\",17),s.Lb(),s.Lb(),s.Lb(),s.Lb()),2&e&&(s.zb(10),s.Zb(\"ngForOf\",t.categories),s.zb(4),s.Zb(\"ngForOf\",t.products),s.zb(2),s.Zb(\"value\",t.productsPerPage),s.zb(10),s.Zb(\"counterOf\",t.pageCount))},directives:[ye,u.i,Q.c,K.h,K.j,ge],pipes:[u.c],encapsulation:2}),ke);function Oe(e,t){1&e&&(s.Mb(0,\"div\",6),s.Mb(1,\"h2\"),s.hc(2,\"Thanks!\"),s.Lb(),s.Mb(3,\"p\"),s.hc(4,\"Thanks for placing your order.\"),s.Lb(),s.Mb(5,\"p\"),s.hc(6,\"We'll ship your goods as soon as possible.\"),s.Lb(),s.Mb(7,\"button\",7),s.hc(8,\"Return to Store\"),s.Lb(),s.Lb())}function Se(e,t){1&e&&(s.Mb(0,\"span\",27),s.hc(1,\" Please enter your name \"),s.Lb())}function Ee(e,t){1&e&&(s.Mb(0,\"span\",27),s.hc(1,\" Please enter your address \"),s.Lb())}function xe(e,t){1&e&&(s.Mb(0,\"span\",27),s.hc(1,\" Please enter your city \"),s.Lb())}function Te(e,t){1&e&&(s.Mb(0,\"span\",27),s.hc(1,\" Please enter your state \"),s.Lb())}function Pe(e,t){1&e&&(s.Mb(0,\"span\",27),s.hc(1,\" Please enter your zip/postal code \"),s.Lb())}function Ae(e,t){1&e&&(s.Mb(0,\"span\",27),s.hc(1,\" Please enter your country \"),s.Lb())}function je(e,t){if(1&e){var n=s.Nb();s.Mb(0,\"form\",8,9),s.Ub(\"ngSubmit\",(function(e){s.dc(n);var t=s.cc(1);return s.Wb().submitOrder(t)})),s.Mb(2,\"div\",10),s.Mb(3,\"label\"),s.hc(4,\"Name\"),s.Lb(),s.Mb(5,\"input\",11,12),s.Ub(\"ngModelChange\",(function(e){return s.dc(n),s.Wb().order.name=e})),s.Lb(),s.gc(7,Se,2,0,\"span\",13),s.Lb(),s.Mb(8,\"div\",10),s.Mb(9,\"label\"),s.hc(10,\"Address\"),s.Lb(),s.Mb(11,\"input\",14,15),s.Ub(\"ngModelChange\",(function(e){return s.dc(n),s.Wb().order.address=e})),s.Lb(),s.gc(13,Ee,2,0,\"span\",13),s.Lb(),s.Mb(14,\"div\",10),s.Mb(15,\"label\"),s.hc(16,\"City\"),s.Lb(),s.Mb(17,\"input\",16,17),s.Ub(\"ngModelChange\",(function(e){return s.dc(n),s.Wb().order.city=e})),s.Lb(),s.gc(19,xe,2,0,\"span\",13),s.Lb(),s.Mb(20,\"div\",10),s.Mb(21,\"label\"),s.hc(22,\"State\"),s.Lb(),s.Mb(23,\"input\",18,19),s.Ub(\"ngModelChange\",(function(e){return s.dc(n),s.Wb().order.state=e})),s.Lb(),s.gc(25,Te,2,0,\"span\",13),s.Lb(),s.Mb(26,\"div\",10),s.Mb(27,\"label\"),s.hc(28,\"Zip/Postal Code\"),s.Lb(),s.Mb(29,\"input\",20,21),s.Ub(\"ngModelChange\",(function(e){return s.dc(n),s.Wb().order.zip=e})),s.Lb(),s.gc(31,Pe,2,0,\"span\",13),s.Lb(),s.Mb(32,\"div\",10),s.Mb(33,\"label\"),s.hc(34,\"Country\"),s.Lb(),s.Mb(35,\"input\",22,23),s.Ub(\"ngModelChange\",(function(e){return s.dc(n),s.Wb().order.country=e})),s.Lb(),s.gc(37,Ae,2,0,\"span\",13),s.Lb(),s.Mb(38,\"div\",24),s.Mb(39,\"button\",25),s.hc(40,\"Back\"),s.Lb(),s.Mb(41,\"button\",26),s.hc(42,\"Complete Order\"),s.Lb(),s.Lb(),s.Lb()}if(2&e){var r=s.cc(6),i=s.cc(12),o=s.cc(18),a=s.cc(24),u=s.cc(30),c=s.cc(36),l=s.Wb();s.zb(5),s.Zb(\"ngModel\",l.order.name),s.zb(2),s.Zb(\"ngIf\",l.submitted&&r.invalid),s.zb(4),s.Zb(\"ngModel\",l.order.address),s.zb(2),s.Zb(\"ngIf\",l.submitted&&i.invalid),s.zb(4),s.Zb(\"ngModel\",l.order.city),s.zb(2),s.Zb(\"ngIf\",l.submitted&&o.invalid),s.zb(4),s.Zb(\"ngModel\",l.order.state),s.zb(2),s.Zb(\"ngIf\",l.submitted&&a.invalid),s.zb(4),s.Zb(\"ngModel\",l.order.zip),s.zb(2),s.Zb(\"ngIf\",l.submitted&&u.invalid),s.zb(4),s.Zb(\"ngModel\",l.order.country),s.zb(2),s.Zb(\"ngIf\",l.submitted&&c.invalid)}}var Re,Ie=((Re=function(){function e(t,n){_classCallCheck(this,e),this.repository=t,this.order=n,this.orderSent=!1,this.submitted=!1}return _createClass(e,[{key:\"submitOrder\",value:function(e){var t=this;this.submitted=!0,e.valid&&this.repository.saveOrder(this.order).subscribe((function(e){t.order.clear(),t.orderSent=!0,t.submitted=!1}))}}]),e}()).\\u0275fac=function(e){return new(e||Re)(s.Jb(ie.a),s.Jb(re))},Re.\\u0275cmp=s.Db({type:Re,selectors:[[\"ng-component\"]],decls:7,vars:2,consts:[[1,\"container-fluid\"],[1,\"row\"],[1,\"col\",\"bg-dark\",\"text-white\"],[1,\"navbar-brand\"],[\"class\",\"m-2 text-center\",4,\"ngIf\"],[\"novalidate\",\"\",\"class\",\"m-2\",3,\"ngSubmit\",4,\"ngIf\"],[1,\"m-2\",\"text-center\"],[\"routerLink\",\"/store\",1,\"btn\",\"btn-primary\"],[\"novalidate\",\"\",1,\"m-2\",3,\"ngSubmit\"],[\"form\",\"ngForm\"],[1,\"form-group\"],[\"name\",\"name\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"name\",\"ngModel\"],[\"class\",\"text-danger\",4,\"ngIf\"],[\"name\",\"address\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"address\",\"ngModel\"],[\"name\",\"city\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"city\",\"ngModel\"],[\"name\",\"state\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"state\",\"ngModel\"],[\"name\",\"zip\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"zip\",\"ngModel\"],[\"name\",\"country\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"country\",\"ngModel\"],[1,\"text-center\"],[\"routerLink\",\"/cart\",1,\"btn\",\"btn-secondary\",\"m-1\"],[\"type\",\"submit\",1,\"btn\",\"btn-primary\",\"m-1\"],[1,\"text-danger\"]],template:function(e,t){1&e&&(s.Mb(0,\"div\",0),s.Mb(1,\"div\",1),s.Mb(2,\"div\",2),s.Mb(3,\"a\",3),s.hc(4,\"SPORTS STORE\"),s.Lb(),s.Lb(),s.Lb(),s.Lb(),s.gc(5,Oe,9,0,\"div\",4),s.gc(6,je,43,12,\"form\",5)),2&e&&(s.zb(5),s.Zb(\"ngIf\",t.orderSent),s.zb(1),s.Zb(\"ngIf\",!t.orderSent))},directives:[u.j,Q.c,K.k,K.e,K.f,K.b,K.i,K.d,K.g],styles:[\"input.ng-dirty.ng-invalid[_ngcontent-%COMP%]{border:2px solid red}input.ng-dirty.ng-valid[_ngcontent-%COMP%]{border:2px solid #6bc502}\"]}),Re);function Ne(e,t){1&e&&(s.Mb(0,\"tr\"),s.Mb(1,\"td\",14),s.hc(2,\" Your cart is empty \"),s.Lb(),s.Lb())}function Me(e,t){if(1&e){var n=s.Nb();s.Mb(0,\"tr\"),s.Mb(1,\"td\"),s.Mb(2,\"input\",15),s.Ub(\"change\",(function(e){s.dc(n);var r=t.$implicit;return s.Wb().cart.updateQuantity(r.product,e.target.value)})),s.Lb(),s.Lb(),s.Mb(3,\"td\"),s.hc(4),s.Lb(),s.Mb(5,\"td\",7),s.hc(6),s.Xb(7,\"currency\"),s.Lb(),s.Mb(8,\"td\",7),s.hc(9),s.Xb(10,\"currency\"),s.Lb(),s.Mb(11,\"td\",5),s.Mb(12,\"button\",16),s.Ub(\"click\",(function(e){s.dc(n);var r=t.$implicit;return s.Wb().cart.removeLine(r.product.id)})),s.hc(13,\" Remove \"),s.Lb(),s.Lb(),s.Lb()}if(2&e){var r=t.$implicit;s.zb(2),s.Zb(\"value\",r.quantity),s.zb(2),s.ic(r.product.name),s.zb(2),s.jc(\" \",s.Yb(7,4,r.product.price,\"USD\",\"symbol\",\"2.2-2\"),\" \"),s.zb(3),s.jc(\" \",s.Yb(10,9,r.lineTotal,\"USD\",\"symbol\",\"2.2-2\"),\" \")}}var De,Le,Ve=((Le=function e(t,n){var r=this;_classCallCheck(this,e),this.cart=t,this.connection=n,this.connected=!0,this.connected=this.connection.connected,n.Changes.subscribe((function(e){return r.connected=e}))}).\\u0275fac=function(e){return new(e||Le)(s.Jb(te),s.Jb(ce))},Le.\\u0275cmp=s.Db({type:Le,selectors:[[\"ng-component\"]],decls:37,vars:10,consts:[[1,\"container-fluid\"],[1,\"row\"],[1,\"col\",\"bg-dark\",\"text-white\"],[1,\"navbar-brand\"],[1,\"col\",\"mt-2\"],[1,\"text-center\"],[1,\"table\",\"table-bordered\",\"table-striped\",\"p-2\"],[1,\"text-right\"],[4,\"ngIf\"],[4,\"ngFor\",\"ngForOf\"],[\"colspan\",\"3\",1,\"text-right\"],[1,\"col\"],[\"routerLink\",\"/store\",1,\"btn\",\"btn-primary\",\"m-1\"],[\"routerLink\",\"/checkout\",1,\"btn\",\"btn-secondary\",\"m-1\",3,\"disabled\"],[\"colspan\",\"4\",1,\"text-center\"],[\"type\",\"number\",1,\"form-control-sm\",2,\"width\",\"5em\",3,\"value\",\"change\"],[1,\"btn\",\"btn-sm\",\"btn-danger\",3,\"click\"]],template:function(e,t){1&e&&(s.Mb(0,\"div\",0),s.Mb(1,\"div\",1),s.Mb(2,\"div\",2),s.Mb(3,\"a\",3),s.hc(4,\"SPORTS STORE\"),s.Lb(),s.Lb(),s.Lb(),s.Mb(5,\"div\",1),s.Mb(6,\"div\",4),s.Mb(7,\"h2\",5),s.hc(8,\"Your Cart\"),s.Lb(),s.Mb(9,\"table\",6),s.Mb(10,\"thead\"),s.Mb(11,\"tr\"),s.Mb(12,\"th\"),s.hc(13,\"Quantity\"),s.Lb(),s.Mb(14,\"th\"),s.hc(15,\"Product\"),s.Lb(),s.Mb(16,\"th\",7),s.hc(17,\"Price\"),s.Lb(),s.Mb(18,\"th\",7),s.hc(19,\"Subtotal\"),s.Lb(),s.Lb(),s.Lb(),s.Mb(20,\"tbody\"),s.gc(21,Ne,3,0,\"tr\",8),s.gc(22,Me,14,14,\"tr\",9),s.Lb(),s.Mb(23,\"tfoot\"),s.Mb(24,\"tr\"),s.Mb(25,\"td\",10),s.hc(26,\"Total:\"),s.Lb(),s.Mb(27,\"td\",7),s.hc(28),s.Xb(29,\"currency\"),s.Lb(),s.Lb(),s.Lb(),s.Lb(),s.Lb(),s.Lb(),s.Mb(30,\"div\",1),s.Mb(31,\"div\",11),s.Mb(32,\"div\",5),s.Mb(33,\"button\",12),s.hc(34,\" Continue Shopping \"),s.Lb(),s.Mb(35,\"button\",13),s.hc(36),s.Lb(),s.Lb(),s.Lb(),s.Lb(),s.Lb()),2&e&&(s.zb(21),s.Zb(\"ngIf\",0==t.cart.lines.length),s.zb(1),s.Zb(\"ngForOf\",t.cart.lines),s.zb(6),s.jc(\" \",s.Yb(29,5,t.cart.cartPrice,\"USD\",\"symbol\",\"2.2-2\"),\" \"),s.zb(7),s.Zb(\"disabled\",0==t.cart.lines.length||!t.connected),s.zb(1),s.jc(\" \",t.connected?\"Checkout\":\"Offline\",\" \"))},directives:[u.j,u.i,Q.c],pipes:[u.c],encapsulation:2}),Le),Ue=((De=function(){function e(t){_classCallCheck(this,e),this.router=t,this.firstNavigation=!0}return _createClass(e,[{key:\"canActivate\",value:function(e,t){return!this.firstNavigation||(this.firstNavigation=!1,e.component==we)||(this.router.navigateByUrl(\"/\"),!1)}}]),e}()).\\u0275fac=function(e){return new(e||De)(s.Qb(Q.b))},De.\\u0275prov=s.Fb({token:De,factory:De.\\u0275fac}),De),Fe=n(\"NXyV\"),He=n(\"HDdC\");function ze(e,t){return new He.a(t?function(n){return t.schedule(qe,0,{error:e,subscriber:n})}:function(t){return t.error(e)})}function qe(e){var t=e.error;e.subscriber.error(t)}var Be=n(\"DH7j\"),Ge=n(\"n6bG\"),We=n(\"lJxs\");function Ze(e,t,n,r){return Object(Ge.a)(n)&&(r=n,n=void 0),r?Ze(e,t,n).pipe(Object(We.a)((function(e){return Object(Be.a)(e)?r.apply(void 0,_toConsumableArray(e)):r(e)}))):new He.a((function(r){!function e(t,n,r,i,o){var a;if(function(e){return e&&\"function\"==typeof e.addEventListener&&\"function\"==typeof e.removeEventListener}(t)){var s=t;t.addEventListener(n,r,o),a=function(){return s.removeEventListener(n,r,o)}}else if(function(e){return e&&\"function\"==typeof e.on&&\"function\"==typeof e.off}(t)){var u=t;t.on(n,r),a=function(){return u.off(n,r)}}else if(function(e){return e&&\"function\"==typeof e.addListener&&\"function\"==typeof e.removeListener}(t)){var c=t;t.addListener(n,r),a=function(){return c.removeListener(n,r)}}else{if(!t||!t.length)throw new TypeError(\"Invalid event target\");for(var l=0,h=t.length;l<h;l++)e(t[l],n,r,i,o)}i.add(a)}(e,t,(function(e){r.next(arguments.length>1?Array.prototype.slice.call(arguments):e)}),r,n)}))}var Qe,Je,Ke,Xe=n(\"LRne\"),$e=n(\"GyhO\"),Ye=n(\"KqfI\"),et=new He.a(Ye.a),tt=n(\"VRyK\"),nt=n(\"pLZG\"),rt=n(\"eIep\"),it=n(\"oB13\"),ot=n(\"IzEk\"),at=n(\"vkgz\"),st=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e,n))).scheduler=e,r.work=n,r.pending=!1,r}return _inherits(t,e),_createClass(t,[{key:\"schedule\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(this.closed)return this;this.state=e;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(r,this.id,t),this}},{key:\"requestAsyncId\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return setInterval(e.flush.bind(e,this),n)}},{key:\"recycleAsyncId\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(null!==n&&this.delay===n&&!1===this.pending)return t;clearInterval(t)}},{key:\"execute\",value:function(e,t){if(this.closed)return new Error(\"executing a cancelled action\");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}},{key:\"_execute\",value:function(e,t){var n=!1,r=void 0;try{this.work(e)}catch(i){n=!0,r=!!i&&i||new Error(i)}if(n)return this.unsubscribe(),r}},{key:\"_unsubscribe\",value:function(){var e=this.id,t=this.scheduler,n=t.actions,r=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==r&&n.splice(r,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null}}]),t}(function(e){function t(e,n){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"schedule\",value:function(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this}}]),t}(n(\"quSY\").a)),ut=function(){var e=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.now;_classCallCheck(this,e),this.SchedulerAction=t,this.now=n}return _createClass(e,[{key:\"schedule\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2?arguments[2]:void 0;return new this.SchedulerAction(this,e).schedule(n,t)}}]),e}();return e.now=function(){return Date.now()},e}(),ct=new(function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ut.now;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e,(function(){return t.delegate&&t.delegate!==_assertThisInitialized(n)?t.delegate.now():r()})))).actions=[],n.active=!1,n.scheduled=void 0,n}return _inherits(t,e),_createClass(t,[{key:\"schedule\",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2?arguments[2]:void 0;return t.delegate&&t.delegate!==this?t.delegate.schedule(e,n,r):_get(_getPrototypeOf(t.prototype),\"schedule\",this).call(this,e,n,r)}},{key:\"flush\",value:function(e){var t=this.actions;if(this.active)t.push(e);else{var n;this.active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}}}]),t}(ut))(st),lt=n(\"7o/Q\"),ht=n(\"EY2u\"),ft=((Qe=function(){function e(t,n,r){_classCallCheck(this,e),this.kind=t,this.value=n,this.error=r,this.hasValue=\"N\"===t}return _createClass(e,[{key:\"observe\",value:function(e){switch(this.kind){case\"N\":return e.next&&e.next(this.value);case\"E\":return e.error&&e.error(this.error);case\"C\":return e.complete&&e.complete()}}},{key:\"do\",value:function(e,t,n){switch(this.kind){case\"N\":return e&&e(this.value);case\"E\":return t&&t(this.error);case\"C\":return n&&n()}}},{key:\"accept\",value:function(e,t,n){return e&&\"function\"==typeof e.next?this.observe(e):this.do(e,t,n)}},{key:\"toObservable\",value:function(){switch(this.kind){case\"N\":return Object(Xe.a)(this.value);case\"E\":return ze(this.error);case\"C\":return Object(ht.b)()}throw new Error(\"unexpected notification kind value\")}}],[{key:\"createNext\",value:function(t){return void 0!==t?new e(\"N\",t):e.undefinedValueNotification}},{key:\"createError\",value:function(t){return new e(\"E\",void 0,t)}},{key:\"createComplete\",value:function(){return e.completeNotification}}]),e}()).completeNotification=new Qe(\"C\"),Qe.undefinedValueNotification=new Qe(\"N\",void 0),Qe),dt=function(){function e(t,n){_classCallCheck(this,e),this.delay=t,this.scheduler=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new vt(e,this.delay,this.scheduler))}}]),e}(),vt=function(e){function t(e,n,r){var i;return _classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).delay=n,i.scheduler=r,i.queue=[],i.active=!1,i.errored=!1,i}return _inherits(t,e),_createClass(t,[{key:\"_schedule\",value:function(e){this.active=!0,this.destination.add(e.schedule(t.dispatch,this.delay,{source:this,destination:this.destination,scheduler:e}))}},{key:\"scheduleNotification\",value:function(e){if(!0!==this.errored){var t=this.scheduler,n=new pt(t.now()+this.delay,e);this.queue.push(n),!1===this.active&&this._schedule(t)}}},{key:\"_next\",value:function(e){this.scheduleNotification(ft.createNext(e))}},{key:\"_error\",value:function(e){this.errored=!0,this.queue=[],this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.scheduleNotification(ft.createComplete()),this.unsubscribe()}}],[{key:\"dispatch\",value:function(e){for(var t=e.source,n=t.queue,r=e.scheduler,i=e.destination;n.length>0&&n[0].time-r.now()<=0;)n.shift().notification.observe(i);if(n.length>0){var o=Math.max(0,n[0].time-r.now());this.schedule(e,o)}else this.unsubscribe(),t.active=!1}}]),t}(lt.a),pt=function e(t,n){_classCallCheck(this,e),this.time=t,this.notification=n},yt=\"Service workers are disabled or not supported by this browser\",gt=function(){function e(t){if(_classCallCheck(this,e),this.serviceWorker=t,t){var n=Ze(t,\"controllerchange\").pipe(Object(We.a)((function(){return t.controller}))),r=Object(Fe.a)((function(){return Object(Xe.a)(t.controller)})),i=Object($e.a)(r,n);this.worker=i.pipe(Object(nt.a)((function(e){return!!e}))),this.registration=this.worker.pipe(Object(rt.a)((function(){return t.getRegistration()})));var o=Ze(t,\"message\").pipe(Object(We.a)((function(e){return e.data}))).pipe(Object(nt.a)((function(e){return e&&e.type}))).pipe(Object(it.a)(new ue.a));o.connect(),this.events=o}else this.worker=this.events=this.registration=Object(Fe.a)((function(){return ze(new Error(\"Service workers are disabled or not supported by this browser\"))}))}return _createClass(e,[{key:\"postMessage\",value:function(e,t){return this.worker.pipe(Object(ot.a)(1),Object(at.a)((function(n){n.postMessage(Object.assign({action:e},t))}))).toPromise().then((function(){}))}},{key:\"postMessageWithStatus\",value:function(e,t,n){var r=this.waitForStatus(n),i=this.postMessage(e,t);return Promise.all([r,i]).then((function(){}))}},{key:\"generateNonce\",value:function(){return Math.round(1e7*Math.random())}},{key:\"eventsOfType\",value:function(e){return this.events.pipe(Object(nt.a)((function(t){return t.type===e})))}},{key:\"nextEventOfType\",value:function(e){return this.eventsOfType(e).pipe(Object(ot.a)(1))}},{key:\"waitForStatus\",value:function(e){return this.eventsOfType(\"STATUS\").pipe(Object(nt.a)((function(t){return t.nonce===e})),Object(ot.a)(1),Object(We.a)((function(e){if(!e.status)throw new Error(e.error)}))).toPromise()}},{key:\"isEnabled\",get:function(){return!!this.serviceWorker}}]),e}(),mt=((Ke=function(){function e(t){if(_classCallCheck(this,e),this.sw=t,this.subscriptionChanges=new ue.a,!t.isEnabled)return this.messages=et,this.notificationClicks=et,void(this.subscription=et);this.messages=this.sw.eventsOfType(\"PUSH\").pipe(Object(We.a)((function(e){return e.data}))),this.notificationClicks=this.sw.eventsOfType(\"NOTIFICATION_CLICK\").pipe(Object(We.a)((function(e){return e.data}))),this.pushManager=this.sw.registration.pipe(Object(We.a)((function(e){return e.pushManager})));var n=this.pushManager.pipe(Object(rt.a)((function(e){return e.getSubscription()})));this.subscription=Object(tt.a)(n,this.subscriptionChanges)}return _createClass(e,[{key:\"requestSubscription\",value:function(e){var t=this;if(!this.sw.isEnabled)return Promise.reject(new Error(yt));for(var n={userVisibleOnly:!0},r=this.decodeBase64(e.serverPublicKey.replace(/_/g,\"/\").replace(/-/g,\"+\")),i=new Uint8Array(new ArrayBuffer(r.length)),o=0;o<r.length;o++)i[o]=r.charCodeAt(o);return n.applicationServerKey=i,this.pushManager.pipe(Object(rt.a)((function(e){return e.subscribe(n)})),Object(ot.a)(1)).toPromise().then((function(e){return t.subscriptionChanges.next(e),e}))}},{key:\"unsubscribe\",value:function(){var e=this;return this.sw.isEnabled?this.subscription.pipe(Object(ot.a)(1),Object(rt.a)((function(t){if(null===t)throw new Error(\"Not subscribed to push notifications.\");return t.unsubscribe().then((function(t){if(!t)throw new Error(\"Unsubscribe failed!\");e.subscriptionChanges.next(null)}))}))).toPromise():Promise.reject(new Error(yt))}},{key:\"decodeBase64\",value:function(e){return atob(e)}},{key:\"isEnabled\",get:function(){return this.sw.isEnabled}}]),e}()).\\u0275fac=function(e){return new(e||Ke)(s.Qb(gt))},Ke.\\u0275prov=s.Fb({token:Ke,factory:Ke.\\u0275fac}),Ke),bt=((Je=function(){function e(t){if(_classCallCheck(this,e),this.sw=t,!t.isEnabled)return this.available=et,void(this.activated=et);this.available=this.sw.eventsOfType(\"UPDATE_AVAILABLE\"),this.activated=this.sw.eventsOfType(\"UPDATE_ACTIVATED\")}return _createClass(e,[{key:\"checkForUpdate\",value:function(){if(!this.sw.isEnabled)return Promise.reject(new Error(yt));var e=this.sw.generateNonce();return this.sw.postMessageWithStatus(\"CHECK_FOR_UPDATES\",{statusNonce:e},e)}},{key:\"activateUpdate\",value:function(){if(!this.sw.isEnabled)return Promise.reject(new Error(yt));var e=this.sw.generateNonce();return this.sw.postMessageWithStatus(\"ACTIVATE_UPDATE\",{statusNonce:e},e)}},{key:\"isEnabled\",get:function(){return this.sw.isEnabled}}]),e}()).\\u0275fac=function(e){return new(e||Je)(s.Qb(gt))},Je.\\u0275prov=s.Fb({token:Je,factory:Je.\\u0275fac}),Je),_t=function e(){_classCallCheck(this,e)},Ct=new s.q(\"NGSW_REGISTER_SCRIPT\");function kt(e,t,n,r){return function(){if(Object(u.n)(r)&&\"serviceWorker\"in navigator&&!1!==n.enabled){var i;if(navigator.serviceWorker.addEventListener(\"controllerchange\",(function(){null!==navigator.serviceWorker.controller&&navigator.serviceWorker.controller.postMessage({action:\"INITIALIZE\"})})),\"function\"==typeof n.registrationStrategy)i=n.registrationStrategy();else{var o=_toArray((n.registrationStrategy||\"registerWhenStable\").split(\":\")),a=o[0],c=o.slice(1);switch(a){case\"registerImmediately\":i=Object(Xe.a)(null);break;case\"registerWithDelay\":i=Object(Xe.a)(null).pipe(function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ct,r=(t=e)instanceof Date&&!isNaN(+t)?+e-n.now():Math.abs(e);return function(e){return e.lift(new dt(r,n))}}(+c[0]||0));break;case\"registerWhenStable\":i=e.get(s.g).isStable.pipe(Object(nt.a)((function(e){return e})));break;default:throw new Error(\"Unknown ServiceWorker registration strategy: \".concat(n.registrationStrategy))}}i.pipe(Object(ot.a)(1)).subscribe((function(){return navigator.serviceWorker.register(t,{scope:n.scope}).catch((function(e){return console.error(\"Service worker registration failed with:\",e)}))}))}}}function wt(e,t){return new gt(Object(u.n)(t)&&!1!==e.enabled?navigator.serviceWorker:void 0)}var Ot,St,Et=((St=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"register\",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{ngModule:e,providers:[{provide:Ct,useValue:t},{provide:_t,useValue:n},{provide:gt,useFactory:wt,deps:[_t,s.B]},{provide:s.d,useFactory:kt,deps:[s.r,Ct,_t,s.B],multi:!0}]}}}]),e}()).\\u0275mod=s.Hb({type:St}),St.\\u0275inj=s.Gb({factory:function(e){return new(e||St)},providers:[mt,bt]}),St),xt=((Ot=function e(){_classCallCheck(this,e)}).\\u0275mod=s.Hb({type:Ot,bootstrap:[J]}),Ot.\\u0275inj=s.Gb({factory:function(e){return new(e||Ot)},providers:[Ue],imports:[[F,he,Q.e.forRoot([{path:\"store\",component:we,canActivate:[Ue]},{path:\"cart\",component:Ve,canActivate:[Ue]},{path:\"checkout\",component:Ie,canActivate:[Ue]},{path:\"admin\",loadChildren:function(){return n.e(5).then(n.bind(null,\"jkDv\")).then((function(e){return e.AdminModule}))},canActivate:[Ue]},{path:\"**\",redirectTo:\"/store\"}]),Et.register(\"ngsw-worker.js\",{enabled:!0})]]}),Ot);Object(s.R)(),V().bootstrapModule(xt).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/manifest.webmanifest",
    "content": "{\n  \"name\": \"SportsStore\",\n  \"short_name\": \"SportsStore\",\n  \"theme_color\": \"#1976d2\",\n  \"background_color\": \"#fafafa\",\n  \"display\": \"standalone\",\n  \"scope\": \"/\",\n  \"start_url\": \"/\",\n  \"icons\": [\n    {\n      \"src\": \"assets/icons/icon-72x72.png\",\n      \"sizes\": \"72x72\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"assets/icons/icon-96x96.png\",\n      \"sizes\": \"96x96\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"assets/icons/icon-128x128.png\",\n      \"sizes\": \"128x128\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"assets/icons/icon-144x144.png\",\n      \"sizes\": \"144x144\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"assets/icons/icon-152x152.png\",\n      \"sizes\": \"152x152\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"assets/icons/icon-192x192.png\",\n      \"sizes\": \"192x192\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"assets/icons/icon-384x384.png\",\n      \"sizes\": \"384x384\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"assets/icons/icon-512x512.png\",\n      \"sizes\": \"512x512\",\n      \"type\": \"image/png\"\n    }\n  ]\n}"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/ngsw-worker.js",
    "content": "(function () {\n    'use strict';\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    /**\n     * Adapts the service worker to its runtime environment.\n     *\n     * Mostly, this is used to mock out identifiers which are otherwise read\n     * from the global scope.\n     */\n    class Adapter {\n        constructor(scope) {\n            // Suffixing `ngsw` with the baseHref to avoid clash of cache names\n            // for SWs with different scopes on the same domain.\n            const baseHref = this.parseUrl(scope.registration.scope).path;\n            this.cacheNamePrefix = 'ngsw:' + baseHref;\n        }\n        /**\n         * Wrapper around the `Request` constructor.\n         */\n        newRequest(input, init) {\n            return new Request(input, init);\n        }\n        /**\n         * Wrapper around the `Response` constructor.\n         */\n        newResponse(body, init) { return new Response(body, init); }\n        /**\n         * Wrapper around the `Headers` constructor.\n         */\n        newHeaders(headers) { return new Headers(headers); }\n        /**\n         * Test if a given object is an instance of `Client`.\n         */\n        isClient(source) { return (source instanceof Client); }\n        /**\n         * Read the current UNIX time in milliseconds.\n         */\n        get time() { return Date.now(); }\n        /**\n         * Extract the pathname of a URL.\n         */\n        parseUrl(url, relativeTo) {\n            // Workaround a Safari bug, see\n            // https://github.com/angular/angular/issues/31061#issuecomment-503637978\n            const parsed = !relativeTo ? new URL(url) : new URL(url, relativeTo);\n            return { origin: parsed.origin, path: parsed.pathname, search: parsed.search };\n        }\n        /**\n         * Wait for a given amount of time before completing a Promise.\n         */\n        timeout(ms) {\n            return new Promise(resolve => { setTimeout(() => resolve(), ms); });\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    /**\n     * An error returned in rejected promises if the given key is not found in the table.\n     */\n    class NotFound {\n        constructor(table, key) {\n            this.table = table;\n            this.key = key;\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    /**\n     * An implementation of a `Database` that uses the `CacheStorage` API to serialize\n     * state within mock `Response` objects.\n     */\n    class CacheDatabase {\n        constructor(scope, adapter) {\n            this.scope = scope;\n            this.adapter = adapter;\n            this.tables = new Map();\n        }\n        'delete'(name) {\n            if (this.tables.has(name)) {\n                this.tables.delete(name);\n            }\n            return this.scope.caches.delete(`${this.adapter.cacheNamePrefix}:db:${name}`);\n        }\n        list() {\n            return this.scope.caches.keys().then(keys => keys.filter(key => key.startsWith(`${this.adapter.cacheNamePrefix}:db:`)));\n        }\n        open(name) {\n            if (!this.tables.has(name)) {\n                const table = this.scope.caches.open(`${this.adapter.cacheNamePrefix}:db:${name}`)\n                    .then(cache => new CacheTable(name, cache, this.adapter));\n                this.tables.set(name, table);\n            }\n            return this.tables.get(name);\n        }\n    }\n    /**\n     * A `Table` backed by a `Cache`.\n     */\n    class CacheTable {\n        constructor(table, cache, adapter) {\n            this.table = table;\n            this.cache = cache;\n            this.adapter = adapter;\n        }\n        request(key) { return this.adapter.newRequest('/' + key); }\n        'delete'(key) { return this.cache.delete(this.request(key)); }\n        keys() {\n            return this.cache.keys().then(requests => requests.map(req => req.url.substr(1)));\n        }\n        read(key) {\n            return this.cache.match(this.request(key)).then(res => {\n                if (res === undefined) {\n                    return Promise.reject(new NotFound(this.table, key));\n                }\n                return res.json();\n            });\n        }\n        write(key, value) {\n            return this.cache.put(this.request(key), this.adapter.newResponse(JSON.stringify(value)));\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    var UpdateCacheStatus;\n    (function (UpdateCacheStatus) {\n        UpdateCacheStatus[UpdateCacheStatus[\"NOT_CACHED\"] = 0] = \"NOT_CACHED\";\n        UpdateCacheStatus[UpdateCacheStatus[\"CACHED_BUT_UNUSED\"] = 1] = \"CACHED_BUT_UNUSED\";\n        UpdateCacheStatus[UpdateCacheStatus[\"CACHED\"] = 2] = \"CACHED\";\n    })(UpdateCacheStatus || (UpdateCacheStatus = {}));\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    class SwCriticalError extends Error {\n        constructor() {\n            super(...arguments);\n            this.isCritical = true;\n        }\n    }\n    function errorToString(error) {\n        if (error instanceof Error) {\n            return `${error.message}\\n${error.stack}`;\n        }\n        else {\n            return `${error}`;\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    /**\n     * Compute the SHA1 of the given string\n     *\n     * see http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf\n     *\n     * WARNING: this function has not been designed not tested with security in mind.\n     *          DO NOT USE IT IN A SECURITY SENSITIVE CONTEXT.\n     *\n     * Borrowed from @angular/compiler/src/i18n/digest.ts\n     */\n    function sha1(str) {\n        const utf8 = str;\n        const words32 = stringToWords32(utf8, Endian.Big);\n        return _sha1(words32, utf8.length * 8);\n    }\n    function sha1Binary(buffer) {\n        const words32 = arrayBufferToWords32(buffer, Endian.Big);\n        return _sha1(words32, buffer.byteLength * 8);\n    }\n    function _sha1(words32, len) {\n        const w = [];\n        let [a, b, c, d, e] = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n        words32[len >> 5] |= 0x80 << (24 - len % 32);\n        words32[((len + 64 >> 9) << 4) + 15] = len;\n        for (let i = 0; i < words32.length; i += 16) {\n            const [h0, h1, h2, h3, h4] = [a, b, c, d, e];\n            for (let j = 0; j < 80; j++) {\n                if (j < 16) {\n                    w[j] = words32[i + j];\n                }\n                else {\n                    w[j] = rol32(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);\n                }\n                const [f, k] = fk(j, b, c, d);\n                const temp = [rol32(a, 5), f, e, k, w[j]].reduce(add32);\n                [e, d, c, b, a] = [d, c, rol32(b, 30), a, temp];\n            }\n            [a, b, c, d, e] = [add32(a, h0), add32(b, h1), add32(c, h2), add32(d, h3), add32(e, h4)];\n        }\n        return byteStringToHexString(words32ToByteString([a, b, c, d, e]));\n    }\n    function add32(a, b) {\n        return add32to64(a, b)[1];\n    }\n    function add32to64(a, b) {\n        const low = (a & 0xffff) + (b & 0xffff);\n        const high = (a >>> 16) + (b >>> 16) + (low >>> 16);\n        return [high >>> 16, (high << 16) | (low & 0xffff)];\n    }\n    // Rotate a 32b number left `count` position\n    function rol32(a, count) {\n        return (a << count) | (a >>> (32 - count));\n    }\n    var Endian;\n    (function (Endian) {\n        Endian[Endian[\"Little\"] = 0] = \"Little\";\n        Endian[Endian[\"Big\"] = 1] = \"Big\";\n    })(Endian || (Endian = {}));\n    function fk(index, b, c, d) {\n        if (index < 20) {\n            return [(b & c) | (~b & d), 0x5a827999];\n        }\n        if (index < 40) {\n            return [b ^ c ^ d, 0x6ed9eba1];\n        }\n        if (index < 60) {\n            return [(b & c) | (b & d) | (c & d), 0x8f1bbcdc];\n        }\n        return [b ^ c ^ d, 0xca62c1d6];\n    }\n    function stringToWords32(str, endian) {\n        const size = (str.length + 3) >>> 2;\n        const words32 = [];\n        for (let i = 0; i < size; i++) {\n            words32[i] = wordAt(str, i * 4, endian);\n        }\n        return words32;\n    }\n    function arrayBufferToWords32(buffer, endian) {\n        const size = (buffer.byteLength + 3) >>> 2;\n        const words32 = [];\n        const view = new Uint8Array(buffer);\n        for (let i = 0; i < size; i++) {\n            words32[i] = wordAt(view, i * 4, endian);\n        }\n        return words32;\n    }\n    function byteAt(str, index) {\n        if (typeof str === 'string') {\n            return index >= str.length ? 0 : str.charCodeAt(index) & 0xff;\n        }\n        else {\n            return index >= str.byteLength ? 0 : str[index] & 0xff;\n        }\n    }\n    function wordAt(str, index, endian) {\n        let word = 0;\n        if (endian === Endian.Big) {\n            for (let i = 0; i < 4; i++) {\n                word += byteAt(str, index + i) << (24 - 8 * i);\n            }\n        }\n        else {\n            for (let i = 0; i < 4; i++) {\n                word += byteAt(str, index + i) << 8 * i;\n            }\n        }\n        return word;\n    }\n    function words32ToByteString(words32) {\n        return words32.reduce((str, word) => str + word32ToByteString(word), '');\n    }\n    function word32ToByteString(word) {\n        let str = '';\n        for (let i = 0; i < 4; i++) {\n            str += String.fromCharCode((word >>> 8 * (3 - i)) & 0xff);\n        }\n        return str;\n    }\n    function byteStringToHexString(str) {\n        let hex = '';\n        for (let i = 0; i < str.length; i++) {\n            const b = byteAt(str, i);\n            hex += (b >>> 4).toString(16) + (b & 0x0f).toString(16);\n        }\n        return hex.toLowerCase();\n    }\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n        function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n        return new (P || (P = Promise))(function (resolve, reject) {\n            function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n            function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n            function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n            step((generator = generator.apply(thisArg, _arguments || [])).next());\n        });\n    };\n    /**\n     * A group of assets that are cached in a `Cache` and managed by a given policy.\n     *\n     * Concrete classes derive from this base and specify the exact caching policy.\n     */\n    class AssetGroup {\n        constructor(scope, adapter, idle, config, hashes, db, prefix) {\n            this.scope = scope;\n            this.adapter = adapter;\n            this.idle = idle;\n            this.config = config;\n            this.hashes = hashes;\n            this.db = db;\n            this.prefix = prefix;\n            /**\n             * A deduplication cache, to make sure the SW never makes two network requests\n             * for the same resource at once. Managed by `fetchAndCacheOnce`.\n             */\n            this.inFlightRequests = new Map();\n            /**\n             * Regular expression patterns.\n             */\n            this.patterns = [];\n            this.name = config.name;\n            // Patterns in the config are regular expressions disguised as strings. Breathe life into them.\n            this.patterns = this.config.patterns.map(pattern => new RegExp(pattern));\n            // This is the primary cache, which holds all of the cached requests for this group. If a\n            // resource\n            // isn't in this cache, it hasn't been fetched yet.\n            this.cache = this.scope.caches.open(`${this.prefix}:${this.config.name}:cache`);\n            // This is the metadata table, which holds specific information for each cached URL, such as\n            // the timestamp of when it was added to the cache.\n            this.metadata = this.db.open(`${this.prefix}:${this.config.name}:meta`);\n            // Determine the origin from the registration scope. This is used to differentiate between\n            // relative and absolute URLs.\n            this.origin = this.adapter.parseUrl(this.scope.registration.scope).origin;\n        }\n        cacheStatus(url) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const cache = yield this.cache;\n                const meta = yield this.metadata;\n                const res = yield cache.match(this.adapter.newRequest(url));\n                if (res === undefined) {\n                    return UpdateCacheStatus.NOT_CACHED;\n                }\n                try {\n                    const data = yield meta.read(url);\n                    if (!data.used) {\n                        return UpdateCacheStatus.CACHED_BUT_UNUSED;\n                    }\n                }\n                catch (_) {\n                    // Error on the side of safety and assume cached.\n                }\n                return UpdateCacheStatus.CACHED;\n            });\n        }\n        /**\n         * Clean up all the cached data for this group.\n         */\n        cleanup() {\n            return __awaiter(this, void 0, void 0, function* () {\n                yield this.scope.caches.delete(`${this.prefix}:${this.config.name}:cache`);\n                yield this.db.delete(`${this.prefix}:${this.config.name}:meta`);\n            });\n        }\n        /**\n         * Process a request for a given resource and return it, or return null if it's not available.\n         */\n        handleFetch(req, ctx) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const url = this.getConfigUrl(req.url);\n                // Either the request matches one of the known resource URLs, one of the patterns for\n                // dynamically matched URLs, or neither. Determine which is the case for this request in\n                // order to decide how to handle it.\n                if (this.config.urls.indexOf(url) !== -1 || this.patterns.some(pattern => pattern.test(url))) {\n                    // This URL matches a known resource. Either it's been cached already or it's missing, in\n                    // which case it needs to be loaded from the network.\n                    // Open the cache to check whether this resource is present.\n                    const cache = yield this.cache;\n                    // Look for a cached response. If one exists, it can be used to resolve the fetch\n                    // operation.\n                    const cachedResponse = yield cache.match(req);\n                    if (cachedResponse !== undefined) {\n                        // A response has already been cached (which presumably matches the hash for this\n                        // resource). Check whether it's safe to serve this resource from cache.\n                        if (this.hashes.has(url)) {\n                            // This resource has a hash, and thus is versioned by the manifest. It's safe to return\n                            // the response.\n                            return cachedResponse;\n                        }\n                        else {\n                            // This resource has no hash, and yet exists in the cache. Check how old this request is\n                            // to make sure it's still usable.\n                            if (yield this.needToRevalidate(req, cachedResponse)) {\n                                this.idle.schedule(`revalidate(${this.prefix}, ${this.config.name}): ${req.url}`, () => __awaiter(this, void 0, void 0, function* () { yield this.fetchAndCacheOnce(req); }));\n                            }\n                            // In either case (revalidation or not), the cached response must be good.\n                            return cachedResponse;\n                        }\n                    }\n                    // No already-cached response exists, so attempt a fetch/cache operation. The original request\n                    // may specify things like credential inclusion, but for assets these are not honored in order\n                    // to avoid issues with opaque responses. The SW requests the data itself.\n                    const res = yield this.fetchAndCacheOnce(this.adapter.newRequest(req.url));\n                    // If this is successful, the response needs to be cloned as it might be used to respond to\n                    // multiple fetch operations at the same time.\n                    return res.clone();\n                }\n                else {\n                    return null;\n                }\n            });\n        }\n        getConfigUrl(url) {\n            // If the URL is relative to the SW's own origin, then only consider the path relative to\n            // the domain root. Determine this by checking the URL's origin against the SW's.\n            const parsed = this.adapter.parseUrl(url, this.scope.registration.scope);\n            if (parsed.origin === this.origin) {\n                // The URL is relative to the SW's origin domain.\n                return parsed.path;\n            }\n            else {\n                return url;\n            }\n        }\n        /**\n         * Some resources are cached without a hash, meaning that their expiration is controlled\n         * by HTTP caching headers. Check whether the given request/response pair is still valid\n         * per the caching headers.\n         */\n        needToRevalidate(req, res) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Three different strategies apply here:\n                // 1) The request has a Cache-Control header, and thus expiration needs to be based on its age.\n                // 2) The request has an Expires header, and expiration is based on the current timestamp.\n                // 3) The request has no applicable caching headers, and must be revalidated.\n                if (res.headers.has('Cache-Control')) {\n                    // Figure out if there is a max-age directive in the Cache-Control header.\n                    const cacheControl = res.headers.get('Cache-Control');\n                    const cacheDirectives = cacheControl\n                        // Directives are comma-separated within the Cache-Control header value.\n                        .split(',')\n                        // Make sure each directive doesn't have extraneous whitespace.\n                        .map(v => v.trim())\n                        // Some directives have values (like maxage and s-maxage)\n                        .map(v => v.split('='));\n                    // Lowercase all the directive names.\n                    cacheDirectives.forEach(v => v[0] = v[0].toLowerCase());\n                    // Find the max-age directive, if one exists.\n                    const maxAgeDirective = cacheDirectives.find(v => v[0] === 'max-age');\n                    const cacheAge = maxAgeDirective ? maxAgeDirective[1] : undefined;\n                    if (!cacheAge) {\n                        // No usable TTL defined. Must assume that the response is stale.\n                        return true;\n                    }\n                    try {\n                        const maxAge = 1000 * parseInt(cacheAge);\n                        // Determine the origin time of this request. If the SW has metadata on the request (which\n                        // it\n                        // should), it will have the time the request was added to the cache. If it doesn't for some\n                        // reason, the request may have a Date header which will serve the same purpose.\n                        let ts;\n                        try {\n                            // Check the metadata table. If a timestamp is there, use it.\n                            const metaTable = yield this.metadata;\n                            ts = (yield metaTable.read(req.url)).ts;\n                        }\n                        catch (_a) {\n                            // Otherwise, look for a Date header.\n                            const date = res.headers.get('Date');\n                            if (date === null) {\n                                // Unable to determine when this response was created. Assume that it's stale, and\n                                // revalidate it.\n                                return true;\n                            }\n                            ts = Date.parse(date);\n                        }\n                        const age = this.adapter.time - ts;\n                        return age < 0 || age > maxAge;\n                    }\n                    catch (_b) {\n                        // Assume stale.\n                        return true;\n                    }\n                }\n                else if (res.headers.has('Expires')) {\n                    // Determine if the expiration time has passed.\n                    const expiresStr = res.headers.get('Expires');\n                    try {\n                        // The request needs to be revalidated if the current time is later than the expiration\n                        // time, if it parses correctly.\n                        return this.adapter.time > Date.parse(expiresStr);\n                    }\n                    catch (_c) {\n                        // The expiration date failed to parse, so revalidate as a precaution.\n                        return true;\n                    }\n                }\n                else {\n                    // No way to evaluate staleness, so assume the response is already stale.\n                    return true;\n                }\n            });\n        }\n        /**\n         * Fetch the complete state of a cached resource, or return null if it's not found.\n         */\n        fetchFromCacheOnly(url) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const cache = yield this.cache;\n                const metaTable = yield this.metadata;\n                // Lookup the response in the cache.\n                const response = yield cache.match(this.adapter.newRequest(url));\n                if (response === undefined) {\n                    // It's not found, return null.\n                    return null;\n                }\n                // Next, lookup the cached metadata.\n                let metadata = undefined;\n                try {\n                    metadata = yield metaTable.read(url);\n                }\n                catch (_a) {\n                    // Do nothing, not found. This shouldn't happen, but it can be handled.\n                }\n                // Return both the response and any available metadata.\n                return { response, metadata };\n            });\n        }\n        /**\n         * Lookup all resources currently stored in the cache which have no associated hash.\n         */\n        unhashedResources() {\n            return __awaiter(this, void 0, void 0, function* () {\n                const cache = yield this.cache;\n                // Start with the set of all cached URLs.\n                return (yield cache.keys())\n                    .map(request => request.url)\n                    // Exclude the URLs which have hashes.\n                    .filter(url => !this.hashes.has(url));\n            });\n        }\n        /**\n         * Fetch the given resource from the network, and cache it if able.\n         */\n        fetchAndCacheOnce(req, used = true) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // The `inFlightRequests` map holds information about which caching operations are currently\n                // underway for known resources. If this request appears there, another \"thread\" is already\n                // in the process of caching it, and this work should not be duplicated.\n                if (this.inFlightRequests.has(req.url)) {\n                    // There is a caching operation already in progress for this request. Wait for it to\n                    // complete, and hopefully it will have yielded a useful response.\n                    return this.inFlightRequests.get(req.url);\n                }\n                // No other caching operation is being attempted for this resource, so it will be owned here.\n                // Go to the network and get the correct version.\n                const fetchOp = this.fetchFromNetwork(req);\n                // Save this operation in `inFlightRequests` so any other \"thread\" attempting to cache it\n                // will block on this chain instead of duplicating effort.\n                this.inFlightRequests.set(req.url, fetchOp);\n                // Make sure this attempt is cleaned up properly on failure.\n                try {\n                    // Wait for a response. If this fails, the request will remain in `inFlightRequests`\n                    // indefinitely.\n                    const res = yield fetchOp;\n                    // It's very important that only successful responses are cached. Unsuccessful responses\n                    // should never be cached as this can completely break applications.\n                    if (!res.ok) {\n                        throw new Error(`Response not Ok (fetchAndCacheOnce): request for ${req.url} returned response ${res.status} ${res.statusText}`);\n                    }\n                    try {\n                        // This response is safe to cache (as long as it's cloned). Wait until the cache operation\n                        // is complete.\n                        const cache = yield this.scope.caches.open(`${this.prefix}:${this.config.name}:cache`);\n                        yield cache.put(req, res.clone());\n                        // If the request is not hashed, update its metadata, especially the timestamp. This is\n                        // needed for future determination of whether this cached response is stale or not.\n                        if (!this.hashes.has(req.url)) {\n                            // Metadata is tracked for requests that are unhashed.\n                            const meta = { ts: this.adapter.time, used };\n                            const metaTable = yield this.metadata;\n                            yield metaTable.write(req.url, meta);\n                        }\n                        return res;\n                    }\n                    catch (err) {\n                        // Among other cases, this can happen when the user clears all data through the DevTools,\n                        // but the SW is still running and serving another tab. In that case, trying to write to the\n                        // caches throws an `Entry was not found` error.\n                        // If this happens the SW can no longer work correctly. This situation is unrecoverable.\n                        throw new SwCriticalError(`Failed to update the caches for request to '${req.url}' (fetchAndCacheOnce): ${errorToString(err)}`);\n                    }\n                }\n                finally {\n                    // Finally, it can be removed from `inFlightRequests`. This might result in a double-remove\n                    // if some other chain was already making this request too, but that won't hurt anything.\n                    this.inFlightRequests.delete(req.url);\n                }\n            });\n        }\n        fetchFromNetwork(req, redirectLimit = 3) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Make a cache-busted request for the resource.\n                const res = yield this.cacheBustedFetchFromNetwork(req);\n                // Check for redirected responses, and follow the redirects.\n                if (res['redirected'] && !!res.url) {\n                    // If the redirect limit is exhausted, fail with an error.\n                    if (redirectLimit === 0) {\n                        throw new SwCriticalError(`Response hit redirect limit (fetchFromNetwork): request redirected too many times, next is ${res.url}`);\n                    }\n                    // Unwrap the redirect directly.\n                    return this.fetchFromNetwork(this.adapter.newRequest(res.url), redirectLimit - 1);\n                }\n                return res;\n            });\n        }\n        /**\n         * Load a particular asset from the network, accounting for hash validation.\n         */\n        cacheBustedFetchFromNetwork(req) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const url = this.getConfigUrl(req.url);\n                // If a hash is available for this resource, then compare the fetched version with the\n                // canonical hash. Otherwise, the network version will have to be trusted.\n                if (this.hashes.has(url)) {\n                    // It turns out this resource does have a hash. Look it up. Unless the fetched version\n                    // matches this hash, it's invalid and the whole manifest may need to be thrown out.\n                    const canonicalHash = this.hashes.get(url);\n                    // Ideally, the resource would be requested with cache-busting to guarantee the SW gets\n                    // the freshest version. However, doing this would eliminate any chance of the response\n                    // being in the HTTP cache. Given that the browser has recently actively loaded the page,\n                    // it's likely that many of the responses the SW needs to cache are in the HTTP cache and\n                    // are fresh enough to use. In the future, this could be done by setting cacheMode to\n                    // *only* check the browser cache for a cached version of the resource, when cacheMode is\n                    // fully supported. For now, the resource is fetched directly, without cache-busting, and\n                    // if the hash test fails a cache-busted request is tried before concluding that the\n                    // resource isn't correct. This gives the benefit of acceleration via the HTTP cache\n                    // without the risk of stale data, at the expense of a duplicate request in the event of\n                    // a stale response.\n                    // Fetch the resource from the network (possibly hitting the HTTP cache).\n                    const networkResult = yield this.safeFetch(req);\n                    // Decide whether a cache-busted request is necessary. It might be for two independent\n                    // reasons: either the non-cache-busted request failed (hopefully transiently) or if the\n                    // hash of the content retrieved does not match the canonical hash from the manifest. It's\n                    // only valid to access the content of the first response if the request was successful.\n                    let makeCacheBustedRequest = networkResult.ok;\n                    if (makeCacheBustedRequest) {\n                        // The request was successful. A cache-busted request is only necessary if the hashes\n                        // don't match. Compare them, making sure to clone the response so it can be used later\n                        // if it proves to be valid.\n                        const fetchedHash = sha1Binary(yield networkResult.clone().arrayBuffer());\n                        makeCacheBustedRequest = (fetchedHash !== canonicalHash);\n                    }\n                    // Make a cache busted request to the network, if necessary.\n                    if (makeCacheBustedRequest) {\n                        // Hash failure, the version that was retrieved under the default URL did not have the\n                        // hash expected. This could be because the HTTP cache got in the way and returned stale\n                        // data, or because the version on the server really doesn't match. A cache-busting\n                        // request will differentiate these two situations.\n                        // TODO: handle case where the URL has parameters already (unlikely for assets).\n                        const cacheBustReq = this.adapter.newRequest(this.cacheBust(req.url));\n                        const cacheBustedResult = yield this.safeFetch(cacheBustReq);\n                        // If the response was unsuccessful, there's nothing more that can be done.\n                        if (!cacheBustedResult.ok) {\n                            throw new SwCriticalError(`Response not Ok (cacheBustedFetchFromNetwork): cache busted request for ${req.url} returned response ${cacheBustedResult.status} ${cacheBustedResult.statusText}`);\n                        }\n                        // Hash the contents.\n                        const cacheBustedHash = sha1Binary(yield cacheBustedResult.clone().arrayBuffer());\n                        // If the cache-busted version doesn't match, then the manifest is not an accurate\n                        // representation of the server's current set of files, and the SW should give up.\n                        if (canonicalHash !== cacheBustedHash) {\n                            throw new SwCriticalError(`Hash mismatch (cacheBustedFetchFromNetwork): ${req.url}: expected ${canonicalHash}, got ${cacheBustedHash} (after cache busting)`);\n                        }\n                        // If it does match, then use the cache-busted result.\n                        return cacheBustedResult;\n                    }\n                    // Excellent, the version from the network matched on the first try, with no need for\n                    // cache-busting. Use it.\n                    return networkResult;\n                }\n                else {\n                    // This URL doesn't exist in our hash database, so it must be requested directly.\n                    return this.safeFetch(req);\n                }\n            });\n        }\n        /**\n         * Possibly update a resource, if it's expired and needs to be updated. A no-op otherwise.\n         */\n        maybeUpdate(updateFrom, req, cache) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const url = this.getConfigUrl(req.url);\n                const meta = yield this.metadata;\n                // Check if this resource is hashed and already exists in the cache of a prior version.\n                if (this.hashes.has(url)) {\n                    const hash = this.hashes.get(url);\n                    // Check the caches of prior versions, using the hash to ensure the correct version of\n                    // the resource is loaded.\n                    const res = yield updateFrom.lookupResourceWithHash(url, hash);\n                    // If a previously cached version was available, copy it over to this cache.\n                    if (res !== null) {\n                        // Copy to this cache.\n                        yield cache.put(req, res);\n                        yield meta.write(req.url, { ts: this.adapter.time, used: false });\n                        // No need to do anything further with this resource, it's now cached properly.\n                        return true;\n                    }\n                }\n                // No up-to-date version of this resource could be found.\n                return false;\n            });\n        }\n        /**\n         * Construct a cache-busting URL for a given URL.\n         */\n        cacheBust(url) {\n            return url + (url.indexOf('?') === -1 ? '?' : '&') + 'ngsw-cache-bust=' + Math.random();\n        }\n        safeFetch(req) {\n            return __awaiter(this, void 0, void 0, function* () {\n                try {\n                    return yield this.scope.fetch(req);\n                }\n                catch (_a) {\n                    return this.adapter.newResponse('', {\n                        status: 504,\n                        statusText: 'Gateway Timeout',\n                    });\n                }\n            });\n        }\n    }\n    /**\n     * An `AssetGroup` that prefetches all of its resources during initialization.\n     */\n    class PrefetchAssetGroup extends AssetGroup {\n        initializeFully(updateFrom) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Open the cache which actually holds requests.\n                const cache = yield this.cache;\n                // Cache all known resources serially. As this reduce proceeds, each Promise waits\n                // on the last before starting the fetch/cache operation for the next request. Any\n                // errors cause fall-through to the final Promise which rejects.\n                yield this.config.urls.reduce((previous, url) => __awaiter(this, void 0, void 0, function* () {\n                    // Wait on all previous operations to complete.\n                    yield previous;\n                    // Construct the Request for this url.\n                    const req = this.adapter.newRequest(url);\n                    // First, check the cache to see if there is already a copy of this resource.\n                    const alreadyCached = (yield cache.match(req)) !== undefined;\n                    // If the resource is in the cache already, it can be skipped.\n                    if (alreadyCached) {\n                        return;\n                    }\n                    // If an update source is available.\n                    if (updateFrom !== undefined && (yield this.maybeUpdate(updateFrom, req, cache))) {\n                        return;\n                    }\n                    // Otherwise, go to the network and hopefully cache the response (if successful).\n                    yield this.fetchAndCacheOnce(req, false);\n                }), Promise.resolve());\n                // Handle updating of unknown (unhashed) resources. This is only possible if there's\n                // a source to update from.\n                if (updateFrom !== undefined) {\n                    const metaTable = yield this.metadata;\n                    // Select all of the previously cached resources. These are cached unhashed resources\n                    // from previous versions of the app, in any asset group.\n                    yield (yield updateFrom.previouslyCachedResources())\n                        // First, narrow down the set of resources to those which are handled by this group.\n                        // Either it's a known URL, or it matches a given pattern.\n                        .filter(url => this.config.urls.some(cacheUrl => cacheUrl === url) ||\n                        this.patterns.some(pattern => pattern.test(url)))\n                        // Finally, process each resource in turn.\n                        .reduce((previous, url) => __awaiter(this, void 0, void 0, function* () {\n                        yield previous;\n                        const req = this.adapter.newRequest(url);\n                        // It's possible that the resource in question is already cached. If so,\n                        // continue to the next one.\n                        const alreadyCached = ((yield cache.match(req)) !== undefined);\n                        if (alreadyCached) {\n                            return;\n                        }\n                        // Get the most recent old version of the resource.\n                        const res = yield updateFrom.lookupResourceWithoutHash(url);\n                        if (res === null || res.metadata === undefined) {\n                            // Unexpected, but not harmful.\n                            return;\n                        }\n                        // Write it into the cache. It may already be expired, but it can still serve\n                        // traffic until it's updated (stale-while-revalidate approach).\n                        yield cache.put(req, res.response);\n                        yield metaTable.write(url, Object.assign(Object.assign({}, res.metadata), { used: false }));\n                    }), Promise.resolve());\n                }\n            });\n        }\n    }\n    class LazyAssetGroup extends AssetGroup {\n        initializeFully(updateFrom) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // No action necessary if no update source is available - resources managed in this group\n                // are all lazily loaded, so there's nothing to initialize.\n                if (updateFrom === undefined) {\n                    return;\n                }\n                // Open the cache which actually holds requests.\n                const cache = yield this.cache;\n                // Loop through the listed resources, caching any which are available.\n                yield this.config.urls.reduce((previous, url) => __awaiter(this, void 0, void 0, function* () {\n                    // Wait on all previous operations to complete.\n                    yield previous;\n                    // Construct the Request for this url.\n                    const req = this.adapter.newRequest(url);\n                    // First, check the cache to see if there is already a copy of this resource.\n                    const alreadyCached = (yield cache.match(req)) !== undefined;\n                    // If the resource is in the cache already, it can be skipped.\n                    if (alreadyCached) {\n                        return;\n                    }\n                    const updated = yield this.maybeUpdate(updateFrom, req, cache);\n                    if (this.config.updateMode === 'prefetch' && !updated) {\n                        // If the resource was not updated, either it was not cached before or\n                        // the previously cached version didn't match the updated hash. In that\n                        // case, prefetch update mode dictates that the resource will be updated,\n                        // except if it was not previously utilized. Check the status of the\n                        // cached resource to see.\n                        const cacheStatus = yield updateFrom.recentCacheStatus(url);\n                        // If the resource is not cached, or was cached but unused, then it will be\n                        // loaded lazily.\n                        if (cacheStatus !== UpdateCacheStatus.CACHED) {\n                            return;\n                        }\n                        // Update from the network.\n                        yield this.fetchAndCacheOnce(req, false);\n                    }\n                }), Promise.resolve());\n            });\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    var __awaiter$1 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n        function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n        return new (P || (P = Promise))(function (resolve, reject) {\n            function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n            function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n            function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n            step((generator = generator.apply(thisArg, _arguments || [])).next());\n        });\n    };\n    /**\n     * Manages an instance of `LruState` and moves URLs to the head of the\n     * chain when requested.\n     */\n    class LruList {\n        constructor(state) {\n            if (state === undefined) {\n                state = {\n                    head: null,\n                    tail: null,\n                    map: {},\n                    count: 0,\n                };\n            }\n            this.state = state;\n        }\n        /**\n         * The current count of URLs in the list.\n         */\n        get size() { return this.state.count; }\n        /**\n         * Remove the tail.\n         */\n        pop() {\n            // If there is no tail, return null.\n            if (this.state.tail === null) {\n                return null;\n            }\n            const url = this.state.tail;\n            this.remove(url);\n            // This URL has been successfully evicted.\n            return url;\n        }\n        remove(url) {\n            const node = this.state.map[url];\n            if (node === undefined) {\n                return false;\n            }\n            // Special case if removing the current head.\n            if (this.state.head === url) {\n                // The node is the current head. Special case the removal.\n                if (node.next === null) {\n                    // This is the only node. Reset the cache to be empty.\n                    this.state.head = null;\n                    this.state.tail = null;\n                    this.state.map = {};\n                    this.state.count = 0;\n                    return true;\n                }\n                // There is at least one other node. Make the next node the new head.\n                const next = this.state.map[node.next];\n                next.previous = null;\n                this.state.head = next.url;\n                node.next = null;\n                delete this.state.map[url];\n                this.state.count--;\n                return true;\n            }\n            // The node is not the head, so it has a previous. It may or may not be the tail.\n            // If it is not, then it has a next. First, grab the previous node.\n            const previous = this.state.map[node.previous];\n            // Fix the forward pointer to skip over node and go directly to node.next.\n            previous.next = node.next;\n            // node.next may or may not be set. If it is, fix the back pointer to skip over node.\n            // If it's not set, then this node happened to be the tail, and the tail needs to be\n            // updated to point to the previous node (removing the tail).\n            if (node.next !== null) {\n                // There is a next node, fix its back pointer to skip this node.\n                this.state.map[node.next].previous = node.previous;\n            }\n            else {\n                // There is no next node - the accessed node must be the tail. Move the tail pointer.\n                this.state.tail = node.previous;\n            }\n            node.next = null;\n            node.previous = null;\n            delete this.state.map[url];\n            // Count the removal.\n            this.state.count--;\n            return true;\n        }\n        accessed(url) {\n            // When a URL is accessed, its node needs to be moved to the head of the chain.\n            // This is accomplished in two steps:\n            //\n            // 1) remove the node from its position within the chain.\n            // 2) insert the node as the new head.\n            //\n            // Sometimes, a URL is accessed which has not been seen before. In this case, step 1 can\n            // be skipped completely (which will grow the chain by one). Of course, if the node is\n            // already the head, this whole operation can be skipped.\n            if (this.state.head === url) {\n                // The URL is already in the head position, accessing it is a no-op.\n                return;\n            }\n            // Look up the node in the map, and construct a new entry if it's\n            const node = this.state.map[url] || { url, next: null, previous: null };\n            // Step 1: remove the node from its position within the chain, if it is in the chain.\n            if (this.state.map[url] !== undefined) {\n                this.remove(url);\n            }\n            // Step 2: insert the node at the head of the chain.\n            // First, check if there's an existing head node. If there is, it has previous: null.\n            // Its previous pointer should be set to the node we're inserting.\n            if (this.state.head !== null) {\n                this.state.map[this.state.head].previous = url;\n            }\n            // The next pointer of the node being inserted gets set to the old head, before the head\n            // pointer is updated to this node.\n            node.next = this.state.head;\n            // The new head is the new node.\n            this.state.head = url;\n            // If there is no tail, then this is the first node, and is both the head and the tail.\n            if (this.state.tail === null) {\n                this.state.tail = url;\n            }\n            // Set the node in the map of nodes (if the URL has been seen before, this is a no-op)\n            // and count the insertion.\n            this.state.map[url] = node;\n            this.state.count++;\n        }\n    }\n    /**\n     * A group of cached resources determined by a set of URL patterns which follow a LRU policy\n     * for caching.\n     */\n    class DataGroup {\n        constructor(scope, adapter, config, db, debugHandler, prefix) {\n            this.scope = scope;\n            this.adapter = adapter;\n            this.config = config;\n            this.db = db;\n            this.debugHandler = debugHandler;\n            this.prefix = prefix;\n            /**\n             * Tracks the LRU state of resources in this cache.\n             */\n            this._lru = null;\n            this.patterns = this.config.patterns.map(pattern => new RegExp(pattern));\n            this.cache = this.scope.caches.open(`${this.prefix}:dynamic:${this.config.name}:cache`);\n            this.lruTable = this.db.open(`${this.prefix}:dynamic:${this.config.name}:lru`);\n            this.ageTable = this.db.open(`${this.prefix}:dynamic:${this.config.name}:age`);\n        }\n        /**\n         * Lazily initialize/load the LRU chain.\n         */\n        lru() {\n            return __awaiter$1(this, void 0, void 0, function* () {\n                if (this._lru === null) {\n                    const table = yield this.lruTable;\n                    try {\n                        this._lru = new LruList(yield table.read('lru'));\n                    }\n                    catch (_a) {\n                        this._lru = new LruList();\n                    }\n                }\n                return this._lru;\n            });\n        }\n        /**\n         * Sync the LRU chain to non-volatile storage.\n         */\n        syncLru() {\n            return __awaiter$1(this, void 0, void 0, function* () {\n                if (this._lru === null) {\n                    return;\n                }\n                const table = yield this.lruTable;\n                try {\n                    return table.write('lru', this._lru.state);\n                }\n                catch (err) {\n                    // Writing lru cache table failed. This could be a result of a full storage.\n                    // Continue serving clients as usual.\n                    this.debugHandler.log(err, `DataGroup(${this.config.name}@${this.config.version}).syncLru()`);\n                    // TODO: Better detect/handle full storage; e.g. using\n                    // [navigator.storage](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorStorage/storage).\n                }\n            });\n        }\n        /**\n         * Process a fetch event and return a `Response` if the resource is covered by this group,\n         * or `null` otherwise.\n         */\n        handleFetch(req, ctx) {\n            return __awaiter$1(this, void 0, void 0, function* () {\n                // Do nothing\n                if (!this.patterns.some(pattern => pattern.test(req.url))) {\n                    return null;\n                }\n                // Lazily initialize the LRU cache.\n                const lru = yield this.lru();\n                // The URL matches this cache. First, check whether this is a mutating request or not.\n                switch (req.method) {\n                    case 'OPTIONS':\n                        // Don't try to cache this - it's non-mutating, but is part of a mutating request.\n                        // Most likely SWs don't even see this, but this guard is here just in case.\n                        return null;\n                    case 'GET':\n                    case 'HEAD':\n                        // Handle the request with whatever strategy was selected.\n                        switch (this.config.strategy) {\n                            case 'freshness':\n                                return this.handleFetchWithFreshness(req, ctx, lru);\n                            case 'performance':\n                                return this.handleFetchWithPerformance(req, ctx, lru);\n                            default:\n                                throw new Error(`Unknown strategy: ${this.config.strategy}`);\n                        }\n                    default:\n                        // This was a mutating request. Assume the cache for this URL is no longer valid.\n                        const wasCached = lru.remove(req.url);\n                        // If there was a cached entry, remove it.\n                        if (wasCached) {\n                            yield this.clearCacheForUrl(req.url);\n                        }\n                        // Sync the LRU chain to non-volatile storage.\n                        yield this.syncLru();\n                        // Finally, fall back on the network.\n                        return this.safeFetch(req);\n                }\n            });\n        }\n        handleFetchWithPerformance(req, ctx, lru) {\n            return __awaiter$1(this, void 0, void 0, function* () {\n                let res = null;\n                // Check the cache first. If the resource exists there (and is not expired), the cached\n                // version can be used.\n                const fromCache = yield this.loadFromCache(req, lru);\n                if (fromCache !== null) {\n                    res = fromCache.res;\n                    // Check the age of the resource.\n                    if (this.config.refreshAheadMs !== undefined && fromCache.age >= this.config.refreshAheadMs) {\n                        ctx.waitUntil(this.safeCacheResponse(req, this.safeFetch(req), lru));\n                    }\n                }\n                if (res !== null) {\n                    return res;\n                }\n                // No match from the cache. Go to the network. Note that this is not an 'await'\n                // call, networkFetch is the actual Promise. This is due to timeout handling.\n                const [timeoutFetch, networkFetch] = this.networkFetchWithTimeout(req);\n                res = yield timeoutFetch;\n                // Since fetch() will always return a response, undefined indicates a timeout.\n                if (res === undefined) {\n                    // The request timed out. Return a Gateway Timeout error.\n                    res = this.adapter.newResponse(null, { status: 504, statusText: 'Gateway Timeout' });\n                    // Cache the network response eventually.\n                    ctx.waitUntil(this.safeCacheResponse(req, networkFetch, lru));\n                }\n                else {\n                    // The request completed in time, so cache it inline with the response flow.\n                    yield this.safeCacheResponse(req, res, lru);\n                }\n                return res;\n            });\n        }\n        handleFetchWithFreshness(req, ctx, lru) {\n            return __awaiter$1(this, void 0, void 0, function* () {\n                // Start with a network fetch.\n                const [timeoutFetch, networkFetch] = this.networkFetchWithTimeout(req);\n                let res;\n                // If that fetch errors, treat it as a timed out request.\n                try {\n                    res = yield timeoutFetch;\n                }\n                catch (_a) {\n                    res = undefined;\n                }\n                // If the network fetch times out or errors, fall back on the cache.\n                if (res === undefined) {\n                    ctx.waitUntil(this.safeCacheResponse(req, networkFetch, lru, true));\n                    // Ignore the age, the network response will be cached anyway due to the\n                    // behavior of freshness.\n                    const fromCache = yield this.loadFromCache(req, lru);\n                    res = (fromCache !== null) ? fromCache.res : null;\n                }\n                else {\n                    yield this.safeCacheResponse(req, res, lru, true);\n                }\n                // Either the network fetch didn't time out, or the cache yielded a usable response.\n                // In either case, use it.\n                if (res !== null) {\n                    return res;\n                }\n                // No response in the cache. No choice but to fall back on the full network fetch.\n                return networkFetch;\n            });\n        }\n        networkFetchWithTimeout(req) {\n            // If there is a timeout configured, race a timeout Promise with the network fetch.\n            // Otherwise, just fetch from the network directly.\n            if (this.config.timeoutMs !== undefined) {\n                const networkFetch = this.scope.fetch(req);\n                const safeNetworkFetch = (() => __awaiter$1(this, void 0, void 0, function* () {\n                    try {\n                        return yield networkFetch;\n                    }\n                    catch (_a) {\n                        return this.adapter.newResponse(null, {\n                            status: 504,\n                            statusText: 'Gateway Timeout',\n                        });\n                    }\n                }))();\n                const networkFetchUndefinedError = (() => __awaiter$1(this, void 0, void 0, function* () {\n                    try {\n                        return yield networkFetch;\n                    }\n                    catch (_b) {\n                        return undefined;\n                    }\n                }))();\n                // Construct a Promise<undefined> for the timeout.\n                const timeout = this.adapter.timeout(this.config.timeoutMs);\n                // Race that with the network fetch. This will either be a Response, or `undefined`\n                // in the event that the request errored or timed out.\n                return [Promise.race([networkFetchUndefinedError, timeout]), safeNetworkFetch];\n            }\n            else {\n                const networkFetch = this.safeFetch(req);\n                // Do a plain fetch.\n                return [networkFetch, networkFetch];\n            }\n        }\n        safeCacheResponse(req, resOrPromise, lru, okToCacheOpaque) {\n            return __awaiter$1(this, void 0, void 0, function* () {\n                try {\n                    const res = yield resOrPromise;\n                    try {\n                        yield this.cacheResponse(req, res, lru, okToCacheOpaque);\n                    }\n                    catch (err) {\n                        // Saving the API response failed. This could be a result of a full storage.\n                        // Since this data is cached lazily and temporarily, continue serving clients as usual.\n                        this.debugHandler.log(err, `DataGroup(${this.config.name}@${this.config.version}).safeCacheResponse(${req.url}, status: ${res.status})`);\n                        // TODO: Better detect/handle full storage; e.g. using\n                        // [navigator.storage](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorStorage/storage).\n                    }\n                }\n                catch (_a) {\n                    // Request failed\n                    // TODO: Handle this error somehow?\n                }\n            });\n        }\n        loadFromCache(req, lru) {\n            return __awaiter$1(this, void 0, void 0, function* () {\n                // Look for a response in the cache. If one exists, return it.\n                const cache = yield this.cache;\n                let res = yield cache.match(req);\n                if (res !== undefined) {\n                    // A response was found in the cache, but its age is not yet known. Look it up.\n                    try {\n                        const ageTable = yield this.ageTable;\n                        const age = this.adapter.time - (yield ageTable.read(req.url)).age;\n                        // If the response is young enough, use it.\n                        if (age <= this.config.maxAge) {\n                            // Successful match from the cache. Use the response, after marking it as having\n                            // been accessed.\n                            lru.accessed(req.url);\n                            return { res, age };\n                        }\n                        // Otherwise, or if there was an error, assume the response is expired, and evict it.\n                    }\n                    catch (_a) {\n                        // Some error getting the age for the response. Assume it's expired.\n                    }\n                    lru.remove(req.url);\n                    yield this.clearCacheForUrl(req.url);\n                    // TODO: avoid duplicate in event of network timeout, maybe.\n                    yield this.syncLru();\n                }\n                return null;\n            });\n        }\n        /**\n         * Operation for caching the response from the server. This has to happen all\n         * at once, so that the cache and LRU tracking remain in sync. If the network request\n         * completes before the timeout, this logic will be run inline with the response flow.\n         * If the request times out on the server, an error will be returned but the real network\n         * request will still be running in the background, to be cached when it completes.\n         */\n        cacheResponse(req, res, lru, okToCacheOpaque = false) {\n            return __awaiter$1(this, void 0, void 0, function* () {\n                // Only cache successful responses.\n                if (!(res.ok || (okToCacheOpaque && res.type === 'opaque'))) {\n                    return;\n                }\n                // If caching this response would make the cache exceed its maximum size, evict something\n                // first.\n                if (lru.size >= this.config.maxSize) {\n                    // The cache is too big, evict something.\n                    const evictedUrl = lru.pop();\n                    if (evictedUrl !== null) {\n                        yield this.clearCacheForUrl(evictedUrl);\n                    }\n                }\n                // TODO: evaluate for possible race conditions during flaky network periods.\n                // Mark this resource as having been accessed recently. This ensures it won't be evicted\n                // until enough other resources are requested that it falls off the end of the LRU chain.\n                lru.accessed(req.url);\n                // Store the response in the cache (cloning because the browser will consume\n                // the body during the caching operation).\n                yield (yield this.cache).put(req, res.clone());\n                // Store the age of the cache.\n                const ageTable = yield this.ageTable;\n                yield ageTable.write(req.url, { age: this.adapter.time });\n                // Sync the LRU chain to non-volatile storage.\n                yield this.syncLru();\n            });\n        }\n        /**\n         * Delete all of the saved state which this group uses to track resources.\n         */\n        cleanup() {\n            return __awaiter$1(this, void 0, void 0, function* () {\n                // Remove both the cache and the database entries which track LRU stats.\n                yield Promise.all([\n                    this.scope.caches.delete(`${this.prefix}:dynamic:${this.config.name}:cache`),\n                    this.db.delete(`${this.prefix}:dynamic:${this.config.name}:age`),\n                    this.db.delete(`${this.prefix}:dynamic:${this.config.name}:lru`),\n                ]);\n            });\n        }\n        /**\n         * Clear the state of the cache for a particular resource.\n         *\n         * This doesn't remove the resource from the LRU table, that is assumed to have\n         * been done already. This clears the GET and HEAD versions of the request from\n         * the cache itself, as well as the metadata stored in the age table.\n         */\n        clearCacheForUrl(url) {\n            return __awaiter$1(this, void 0, void 0, function* () {\n                const [cache, ageTable] = yield Promise.all([this.cache, this.ageTable]);\n                yield Promise.all([\n                    cache.delete(this.adapter.newRequest(url, { method: 'GET' })),\n                    cache.delete(this.adapter.newRequest(url, { method: 'HEAD' })),\n                    ageTable.delete(url),\n                ]);\n            });\n        }\n        safeFetch(req) {\n            return __awaiter$1(this, void 0, void 0, function* () {\n                try {\n                    return this.scope.fetch(req);\n                }\n                catch (_a) {\n                    return this.adapter.newResponse(null, {\n                        status: 504,\n                        statusText: 'Gateway Timeout',\n                    });\n                }\n            });\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    var __awaiter$2 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n        function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n        return new (P || (P = Promise))(function (resolve, reject) {\n            function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n            function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n            function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n            step((generator = generator.apply(thisArg, _arguments || [])).next());\n        });\n    };\n    const BACKWARDS_COMPATIBILITY_NAVIGATION_URLS = [\n        { positive: true, regex: '^/.*$' },\n        { positive: false, regex: '^/.*\\\\.[^/]*$' },\n        { positive: false, regex: '^/.*__' },\n    ];\n    /**\n     * A specific version of the application, identified by a unique manifest\n     * as determined by its hash.\n     *\n     * Each `AppVersion` can be thought of as a published version of the app\n     * that can be installed as an update to any previously installed versions.\n     */\n    class AppVersion {\n        constructor(scope, adapter, database, idle, debugHandler, manifest, manifestHash) {\n            this.scope = scope;\n            this.adapter = adapter;\n            this.database = database;\n            this.idle = idle;\n            this.debugHandler = debugHandler;\n            this.manifest = manifest;\n            this.manifestHash = manifestHash;\n            /**\n             * A Map of absolute URL paths (/foo.txt) to the known hash of their\n             * contents (if available).\n             */\n            this.hashTable = new Map();\n            /**\n             * Tracks whether the manifest has encountered any inconsistencies.\n             */\n            this._okay = true;\n            // The hashTable within the manifest is an Object - convert it to a Map for easier lookups.\n            Object.keys(this.manifest.hashTable).forEach(url => {\n                this.hashTable.set(url, this.manifest.hashTable[url]);\n            });\n            // Process each `AssetGroup` declared in the manifest. Each declared group gets an `AssetGroup`\n            // instance\n            // created for it, of a type that depends on the configuration mode.\n            this.assetGroups = (manifest.assetGroups || []).map(config => {\n                // Every asset group has a cache that's prefixed by the manifest hash and the name of the\n                // group.\n                const prefix = `${adapter.cacheNamePrefix}:${this.manifestHash}:assets`;\n                // Check the caching mode, which determines when resources will be fetched/updated.\n                switch (config.installMode) {\n                    case 'prefetch':\n                        return new PrefetchAssetGroup(this.scope, this.adapter, this.idle, config, this.hashTable, this.database, prefix);\n                    case 'lazy':\n                        return new LazyAssetGroup(this.scope, this.adapter, this.idle, config, this.hashTable, this.database, prefix);\n                }\n            });\n            // Process each `DataGroup` declared in the manifest.\n            this.dataGroups =\n                (manifest.dataGroups || [])\n                    .map(config => new DataGroup(this.scope, this.adapter, config, this.database, this.debugHandler, `${adapter.cacheNamePrefix}:${config.version}:data`));\n            // This keeps backwards compatibility with app versions without navigation urls.\n            // Fix: https://github.com/angular/angular/issues/27209\n            manifest.navigationUrls = manifest.navigationUrls || BACKWARDS_COMPATIBILITY_NAVIGATION_URLS;\n            // Create `include`/`exclude` RegExps for the `navigationUrls` declared in the manifest.\n            const includeUrls = manifest.navigationUrls.filter(spec => spec.positive);\n            const excludeUrls = manifest.navigationUrls.filter(spec => !spec.positive);\n            this.navigationUrls = {\n                include: includeUrls.map(spec => new RegExp(spec.regex)),\n                exclude: excludeUrls.map(spec => new RegExp(spec.regex)),\n            };\n        }\n        get okay() { return this._okay; }\n        /**\n         * Fully initialize this version of the application. If this Promise resolves successfully, all\n         * required\n         * data has been safely downloaded.\n         */\n        initializeFully(updateFrom) {\n            return __awaiter$2(this, void 0, void 0, function* () {\n                try {\n                    // Fully initialize each asset group, in series. Starts with an empty Promise,\n                    // and waits for the previous groups to have been initialized before initializing\n                    // the next one in turn.\n                    yield this.assetGroups.reduce((previous, group) => __awaiter$2(this, void 0, void 0, function* () {\n                        // Wait for the previous groups to complete initialization. If there is a\n                        // failure, this will throw, and each subsequent group will throw, until the\n                        // whole sequence fails.\n                        yield previous;\n                        // Initialize this group.\n                        return group.initializeFully(updateFrom);\n                    }), Promise.resolve());\n                }\n                catch (err) {\n                    this._okay = false;\n                    throw err;\n                }\n            });\n        }\n        handleFetch(req, context) {\n            return __awaiter$2(this, void 0, void 0, function* () {\n                // Check the request against each `AssetGroup` in sequence. If an `AssetGroup` can't handle the\n                // request,\n                // it will return `null`. Thus, the first non-null response is the SW's answer to the request.\n                // So reduce\n                // the group list, keeping track of a possible response. If there is one, it gets passed\n                // through, and if\n                // not the next group is consulted to produce a candidate response.\n                const asset = yield this.assetGroups.reduce((potentialResponse, group) => __awaiter$2(this, void 0, void 0, function* () {\n                    // Wait on the previous potential response. If it's not null, it should just be passed\n                    // through.\n                    const resp = yield potentialResponse;\n                    if (resp !== null) {\n                        return resp;\n                    }\n                    // No response has been found yet. Maybe this group will have one.\n                    return group.handleFetch(req, context);\n                }), Promise.resolve(null));\n                // The result of the above is the asset response, if there is any, or null otherwise. Return the\n                // asset\n                // response if there was one. If not, check with the data caching groups.\n                if (asset !== null) {\n                    return asset;\n                }\n                // Perform the same reduction operation as above, but this time processing\n                // the data caching groups.\n                const data = yield this.dataGroups.reduce((potentialResponse, group) => __awaiter$2(this, void 0, void 0, function* () {\n                    const resp = yield potentialResponse;\n                    if (resp !== null) {\n                        return resp;\n                    }\n                    return group.handleFetch(req, context);\n                }), Promise.resolve(null));\n                // If the data caching group returned a response, go with it.\n                if (data !== null) {\n                    return data;\n                }\n                // Next, check if this is a navigation request for a route. Detect circular\n                // navigations by checking if the request URL is the same as the index URL.\n                if (req.url !== this.manifest.index && this.isNavigationRequest(req)) {\n                    // This was a navigation request. Re-enter `handleFetch` with a request for\n                    // the URL.\n                    return this.handleFetch(this.adapter.newRequest(this.manifest.index), context);\n                }\n                return null;\n            });\n        }\n        /**\n         * Determine whether the request is a navigation request.\n         * Takes into account: Request mode, `Accept` header, `navigationUrls` patterns.\n         */\n        isNavigationRequest(req) {\n            if (req.mode !== 'navigate') {\n                return false;\n            }\n            if (!this.acceptsTextHtml(req)) {\n                return false;\n            }\n            const urlPrefix = this.scope.registration.scope.replace(/\\/$/, '');\n            const url = req.url.startsWith(urlPrefix) ? req.url.substr(urlPrefix.length) : req.url;\n            const urlWithoutQueryOrHash = url.replace(/[?#].*$/, '');\n            return this.navigationUrls.include.some(regex => regex.test(urlWithoutQueryOrHash)) &&\n                !this.navigationUrls.exclude.some(regex => regex.test(urlWithoutQueryOrHash));\n        }\n        /**\n         * Check this version for a given resource with a particular hash.\n         */\n        lookupResourceWithHash(url, hash) {\n            return __awaiter$2(this, void 0, void 0, function* () {\n                // Verify that this version has the requested resource cached. If not,\n                // there's no point in trying.\n                if (!this.hashTable.has(url)) {\n                    return null;\n                }\n                // Next, check whether the resource has the correct hash. If not, any cached\n                // response isn't usable.\n                if (this.hashTable.get(url) !== hash) {\n                    return null;\n                }\n                const cacheState = yield this.lookupResourceWithoutHash(url);\n                return cacheState && cacheState.response;\n            });\n        }\n        /**\n         * Check this version for a given resource regardless of its hash.\n         */\n        lookupResourceWithoutHash(url) {\n            // Limit the search to asset groups, and only scan the cache, don't\n            // load resources from the network.\n            return this.assetGroups.reduce((potentialResponse, group) => __awaiter$2(this, void 0, void 0, function* () {\n                const resp = yield potentialResponse;\n                if (resp !== null) {\n                    return resp;\n                }\n                // fetchFromCacheOnly() avoids any network fetches, and returns the\n                // full set of cache data, not just the Response.\n                return group.fetchFromCacheOnly(url);\n            }), Promise.resolve(null));\n        }\n        /**\n         * List all unhashed resources from all asset groups.\n         */\n        previouslyCachedResources() {\n            return this.assetGroups.reduce((resources, group) => __awaiter$2(this, void 0, void 0, function* () {\n                return (yield resources).concat(yield group.unhashedResources());\n            }), Promise.resolve([]));\n        }\n        recentCacheStatus(url) {\n            return __awaiter$2(this, void 0, void 0, function* () {\n                return this.assetGroups.reduce((current, group) => __awaiter$2(this, void 0, void 0, function* () {\n                    const status = yield current;\n                    if (status === UpdateCacheStatus.CACHED) {\n                        return status;\n                    }\n                    const groupStatus = yield group.cacheStatus(url);\n                    if (groupStatus === UpdateCacheStatus.NOT_CACHED) {\n                        return status;\n                    }\n                    return groupStatus;\n                }), Promise.resolve(UpdateCacheStatus.NOT_CACHED));\n            });\n        }\n        /**\n         * Erase this application version, by cleaning up all the caches.\n         */\n        cleanup() {\n            return __awaiter$2(this, void 0, void 0, function* () {\n                yield Promise.all(this.assetGroups.map(group => group.cleanup()));\n                yield Promise.all(this.dataGroups.map(group => group.cleanup()));\n            });\n        }\n        /**\n         * Get the opaque application data which was provided with the manifest.\n         */\n        get appData() { return this.manifest.appData || null; }\n        /**\n         * Check whether a request accepts `text/html` (based on the `Accept` header).\n         */\n        acceptsTextHtml(req) {\n            const accept = req.headers.get('Accept');\n            if (accept === null) {\n                return false;\n            }\n            const values = accept.split(',');\n            return values.some(value => value.trim().toLowerCase() === 'text/html');\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    var __awaiter$3 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n        function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n        return new (P || (P = Promise))(function (resolve, reject) {\n            function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n            function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n            function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n            step((generator = generator.apply(thisArg, _arguments || [])).next());\n        });\n    };\n    const DEBUG_LOG_BUFFER_SIZE = 100;\n    class DebugHandler {\n        constructor(driver, adapter) {\n            this.driver = driver;\n            this.adapter = adapter;\n            // There are two debug log message arrays. debugLogA records new debugging messages.\n            // Once it reaches DEBUG_LOG_BUFFER_SIZE, the array is moved to debugLogB and a new\n            // array is assigned to debugLogA. This ensures that insertion to the debug log is\n            // always O(1) no matter the number of logged messages, and that the total number\n            // of messages in the log never exceeds 2 * DEBUG_LOG_BUFFER_SIZE.\n            this.debugLogA = [];\n            this.debugLogB = [];\n        }\n        handleFetch(req) {\n            return __awaiter$3(this, void 0, void 0, function* () {\n                const [state, versions, idle] = yield Promise.all([\n                    this.driver.debugState(),\n                    this.driver.debugVersions(),\n                    this.driver.debugIdleState(),\n                ]);\n                const msgState = `NGSW Debug Info:\n\nDriver state: ${state.state} (${state.why})\nLatest manifest hash: ${state.latestHash || 'none'}\nLast update check: ${this.since(state.lastUpdateCheck)}`;\n                const msgVersions = versions\n                    .map(version => `=== Version ${version.hash} ===\n\nClients: ${version.clients.join(', ')}`)\n                    .join('\\n\\n');\n                const msgIdle = `=== Idle Task Queue ===\nLast update tick: ${this.since(idle.lastTrigger)}\nLast update run: ${this.since(idle.lastRun)}\nTask queue:\n${idle.queue.map(v => ' * ' + v).join('\\n')}\n\nDebug log:\n${this.formatDebugLog(this.debugLogB)}\n${this.formatDebugLog(this.debugLogA)}\n`;\n                return this.adapter.newResponse(`${msgState}\n\n${msgVersions}\n\n${msgIdle}`, { headers: this.adapter.newHeaders({ 'Content-Type': 'text/plain' }) });\n            });\n        }\n        since(time) {\n            if (time === null) {\n                return 'never';\n            }\n            let age = this.adapter.time - time;\n            const days = Math.floor(age / 86400000);\n            age = age % 86400000;\n            const hours = Math.floor(age / 3600000);\n            age = age % 3600000;\n            const minutes = Math.floor(age / 60000);\n            age = age % 60000;\n            const seconds = Math.floor(age / 1000);\n            const millis = age % 1000;\n            return '' + (days > 0 ? `${days}d` : '') + (hours > 0 ? `${hours}h` : '') +\n                (minutes > 0 ? `${minutes}m` : '') + (seconds > 0 ? `${seconds}s` : '') +\n                (millis > 0 ? `${millis}u` : '');\n        }\n        log(value, context = '') {\n            // Rotate the buffers if debugLogA has grown too large.\n            if (this.debugLogA.length === DEBUG_LOG_BUFFER_SIZE) {\n                this.debugLogB = this.debugLogA;\n                this.debugLogA = [];\n            }\n            // Convert errors to string for logging.\n            if (typeof value !== 'string') {\n                value = this.errorToString(value);\n            }\n            // Log the message.\n            this.debugLogA.push({ value, time: this.adapter.time, context });\n        }\n        errorToString(err) { return `${err.name}(${err.message}, ${err.stack})`; }\n        formatDebugLog(log) {\n            return log.map(entry => `[${this.since(entry.time)}] ${entry.value} ${entry.context}`)\n                .join('\\n');\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    var __awaiter$4 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n        function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n        return new (P || (P = Promise))(function (resolve, reject) {\n            function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n            function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n            function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n            step((generator = generator.apply(thisArg, _arguments || [])).next());\n        });\n    };\n    class IdleScheduler {\n        constructor(adapter, threshold, debug) {\n            this.adapter = adapter;\n            this.threshold = threshold;\n            this.debug = debug;\n            this.queue = [];\n            this.scheduled = null;\n            this.empty = Promise.resolve();\n            this.emptyResolve = null;\n            this.lastTrigger = null;\n            this.lastRun = null;\n        }\n        trigger() {\n            return __awaiter$4(this, void 0, void 0, function* () {\n                this.lastTrigger = this.adapter.time;\n                if (this.queue.length === 0) {\n                    return;\n                }\n                if (this.scheduled !== null) {\n                    this.scheduled.cancel = true;\n                }\n                const scheduled = {\n                    cancel: false,\n                };\n                this.scheduled = scheduled;\n                yield this.adapter.timeout(this.threshold);\n                if (scheduled.cancel) {\n                    return;\n                }\n                this.scheduled = null;\n                yield this.execute();\n            });\n        }\n        execute() {\n            return __awaiter$4(this, void 0, void 0, function* () {\n                this.lastRun = this.adapter.time;\n                while (this.queue.length > 0) {\n                    const queue = this.queue;\n                    this.queue = [];\n                    yield queue.reduce((previous, task) => __awaiter$4(this, void 0, void 0, function* () {\n                        yield previous;\n                        try {\n                            yield task.run();\n                        }\n                        catch (err) {\n                            this.debug.log(err, `while running idle task ${task.desc}`);\n                        }\n                    }), Promise.resolve());\n                }\n                if (this.emptyResolve !== null) {\n                    this.emptyResolve();\n                    this.emptyResolve = null;\n                }\n                this.empty = Promise.resolve();\n            });\n        }\n        schedule(desc, run) {\n            this.queue.push({ desc, run });\n            if (this.emptyResolve === null) {\n                this.empty = new Promise(resolve => { this.emptyResolve = resolve; });\n            }\n        }\n        get size() { return this.queue.length; }\n        get taskDescriptions() { return this.queue.map(task => task.desc); }\n    }\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    function hashManifest(manifest) {\n        return sha1(JSON.stringify(manifest));\n    }\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    function isMsgCheckForUpdates(msg) {\n        return msg.action === 'CHECK_FOR_UPDATES';\n    }\n    function isMsgActivateUpdate(msg) {\n        return msg.action === 'ACTIVATE_UPDATE';\n    }\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    var __awaiter$5 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n        function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n        return new (P || (P = Promise))(function (resolve, reject) {\n            function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n            function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n            function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n            step((generator = generator.apply(thisArg, _arguments || [])).next());\n        });\n    };\n    const IDLE_THRESHOLD = 5000;\n    const SUPPORTED_CONFIG_VERSION = 1;\n    const NOTIFICATION_OPTION_NAMES = [\n        'actions', 'badge', 'body', 'data', 'dir', 'icon', 'image', 'lang', 'renotify',\n        'requireInteraction', 'silent', 'tag', 'timestamp', 'title', 'vibrate'\n    ];\n    var DriverReadyState;\n    (function (DriverReadyState) {\n        // The SW is operating in a normal mode, responding to all traffic.\n        DriverReadyState[DriverReadyState[\"NORMAL\"] = 0] = \"NORMAL\";\n        // The SW does not have a clean installation of the latest version of the app, but older\n        // cached versions are safe to use so long as they don't try to fetch new dependencies.\n        // This is a degraded state.\n        DriverReadyState[DriverReadyState[\"EXISTING_CLIENTS_ONLY\"] = 1] = \"EXISTING_CLIENTS_ONLY\";\n        // The SW has decided that caching is completely unreliable, and is forgoing request\n        // handling until the next restart.\n        DriverReadyState[DriverReadyState[\"SAFE_MODE\"] = 2] = \"SAFE_MODE\";\n    })(DriverReadyState || (DriverReadyState = {}));\n    class Driver {\n        constructor(scope, adapter, db) {\n            // Set up all the event handlers that the SW needs.\n            this.scope = scope;\n            this.adapter = adapter;\n            this.db = db;\n            /**\n             * Tracks the current readiness condition under which the SW is operating. This controls\n             * whether the SW attempts to respond to some or all requests.\n             */\n            this.state = DriverReadyState.NORMAL;\n            this.stateMessage = '(nominal)';\n            /**\n             * Tracks whether the SW is in an initialized state or not. Before initialization,\n             * it's not legal to respond to requests.\n             */\n            this.initialized = null;\n            /**\n             * Maps client IDs to the manifest hash of the application version being used to serve\n             * them. If a client ID is not present here, it has not yet been assigned a version.\n             *\n             * If a ManifestHash appears here, it is also present in the `versions` map below.\n             */\n            this.clientVersionMap = new Map();\n            /**\n             * Maps manifest hashes to instances of `AppVersion` for those manifests.\n             */\n            this.versions = new Map();\n            /**\n             * The latest version fetched from the server.\n             *\n             * Valid after initialization has completed.\n             */\n            this.latestHash = null;\n            this.lastUpdateCheck = null;\n            /**\n             * Whether there is a check for updates currently scheduled due to navigation.\n             */\n            this.scheduledNavUpdateCheck = false;\n            /**\n             * Keep track of whether we have logged an invalid `only-if-cached` request.\n             * (See `.onFetch()` for details.)\n             */\n            this.loggedInvalidOnlyIfCachedRequest = false;\n            // The install event is triggered when the service worker is first installed.\n            this.scope.addEventListener('install', (event) => {\n                // SW code updates are separate from application updates, so code updates are\n                // almost as straightforward as restarting the SW. Because of this, it's always\n                // safe to skip waiting until application tabs are closed, and activate the new\n                // SW version immediately.\n                event.waitUntil(this.scope.skipWaiting());\n            });\n            // The activate event is triggered when this version of the service worker is\n            // first activated.\n            this.scope.addEventListener('activate', (event) => {\n                event.waitUntil((() => __awaiter$5(this, void 0, void 0, function* () {\n                    // As above, it's safe to take over from existing clients immediately, since the new SW\n                    // version will continue to serve the old application.\n                    yield this.scope.clients.claim();\n                    // Once all clients have been taken over, we can delete caches used by old versions of\n                    // `@angular/service-worker`, which are no longer needed. This can happen in the background.\n                    this.idle.schedule('activate: cleanup-old-sw-caches', () => __awaiter$5(this, void 0, void 0, function* () {\n                        try {\n                            yield this.cleanupOldSwCaches();\n                        }\n                        catch (err) {\n                            // Nothing to do - cleanup failed. Just log it.\n                            this.debugger.log(err, 'cleanupOldSwCaches @ activate: cleanup-old-sw-caches');\n                        }\n                    }));\n                }))());\n                // Rather than wait for the first fetch event, which may not arrive until\n                // the next time the application is loaded, the SW takes advantage of the\n                // activation event to schedule initialization. However, if this were run\n                // in the context of the 'activate' event, waitUntil() here would cause fetch\n                // events to block until initialization completed. Thus, the SW does a\n                // postMessage() to itself, to schedule a new event loop iteration with an\n                // entirely separate event context. The SW will be kept alive by waitUntil()\n                // within that separate context while initialization proceeds, while at the\n                // same time the activation event is allowed to resolve and traffic starts\n                // being served.\n                if (this.scope.registration.active !== null) {\n                    this.scope.registration.active.postMessage({ action: 'INITIALIZE' });\n                }\n            });\n            // Handle the fetch, message, and push events.\n            this.scope.addEventListener('fetch', (event) => this.onFetch(event));\n            this.scope.addEventListener('message', (event) => this.onMessage(event));\n            this.scope.addEventListener('push', (event) => this.onPush(event));\n            this.scope.addEventListener('notificationclick', (event) => this.onClick(event));\n            // The debugger generates debug pages in response to debugging requests.\n            this.debugger = new DebugHandler(this, this.adapter);\n            // The IdleScheduler will execute idle tasks after a given delay.\n            this.idle = new IdleScheduler(this.adapter, IDLE_THRESHOLD, this.debugger);\n        }\n        /**\n         * The handler for fetch events.\n         *\n         * This is the transition point between the synchronous event handler and the\n         * asynchronous execution that eventually resolves for respondWith() and waitUntil().\n         */\n        onFetch(event) {\n            const req = event.request;\n            const scopeUrl = this.scope.registration.scope;\n            const requestUrlObj = this.adapter.parseUrl(req.url, scopeUrl);\n            if (req.headers.has('ngsw-bypass') || /[?&]ngsw-bypass(?:[=&]|$)/i.test(requestUrlObj.search)) {\n                return;\n            }\n            // The only thing that is served unconditionally is the debug page.\n            if (requestUrlObj.path === '/ngsw/state') {\n                // Allow the debugger to handle the request, but don't affect SW state in any other way.\n                event.respondWith(this.debugger.handleFetch(req));\n                return;\n            }\n            // If the SW is in a broken state where it's not safe to handle requests at all,\n            // returning causes the request to fall back on the network. This is preferred over\n            // `respondWith(fetch(req))` because the latter still shows in DevTools that the\n            // request was handled by the SW.\n            if (this.state === DriverReadyState.SAFE_MODE) {\n                // Even though the worker is in safe mode, idle tasks still need to happen so\n                // things like update checks, etc. can take place.\n                event.waitUntil(this.idle.trigger());\n                return;\n            }\n            // Although \"passive mixed content\" (like images) only produces a warning without a\n            // ServiceWorker, fetching it via a ServiceWorker results in an error. Let such requests be\n            // handled by the browser, since handling with the ServiceWorker would fail anyway.\n            // See https://github.com/angular/angular/issues/23012#issuecomment-376430187 for more details.\n            if (requestUrlObj.origin.startsWith('http:') && scopeUrl.startsWith('https:')) {\n                // Still, log the incident for debugging purposes.\n                this.debugger.log(`Ignoring passive mixed content request: Driver.fetch(${req.url})`);\n                return;\n            }\n            // When opening DevTools in Chrome, a request is made for the current URL (and possibly related\n            // resources, e.g. scripts) with `cache: 'only-if-cached'` and `mode: 'no-cors'`. These request\n            // will eventually fail, because `only-if-cached` is only allowed to be used with\n            // `mode: 'same-origin'`.\n            // This is likely a bug in Chrome DevTools. Avoid handling such requests.\n            // (See also https://github.com/angular/angular/issues/22362.)\n            // TODO(gkalpak): Remove once no longer necessary (i.e. fixed in Chrome DevTools).\n            if (req.cache === 'only-if-cached' && req.mode !== 'same-origin') {\n                // Log the incident only the first time it happens, to avoid spamming the logs.\n                if (!this.loggedInvalidOnlyIfCachedRequest) {\n                    this.loggedInvalidOnlyIfCachedRequest = true;\n                    this.debugger.log(`Ignoring invalid request: 'only-if-cached' can be set only with 'same-origin' mode`, `Driver.fetch(${req.url}, cache: ${req.cache}, mode: ${req.mode})`);\n                }\n                return;\n            }\n            // Past this point, the SW commits to handling the request itself. This could still\n            // fail (and result in `state` being set to `SAFE_MODE`), but even in that case the\n            // SW will still deliver a response.\n            event.respondWith(this.handleFetch(event));\n        }\n        /**\n         * The handler for message events.\n         */\n        onMessage(event) {\n            // Ignore message events when the SW is in safe mode, for now.\n            if (this.state === DriverReadyState.SAFE_MODE) {\n                return;\n            }\n            // If the message doesn't have the expected signature, ignore it.\n            const data = event.data;\n            if (!data || !data.action) {\n                return;\n            }\n            event.waitUntil((() => __awaiter$5(this, void 0, void 0, function* () {\n                // Initialization is the only event which is sent directly from the SW to itself, and thus\n                // `event.source` is not a `Client`. Handle it here, before the check for `Client` sources.\n                if (data.action === 'INITIALIZE') {\n                    return this.ensureInitialized(event);\n                }\n                // Only messages from true clients are accepted past this point.\n                // This is essentially a typecast.\n                if (!this.adapter.isClient(event.source)) {\n                    return;\n                }\n                // Handle the message and keep the SW alive until it's handled.\n                yield this.ensureInitialized(event);\n                yield this.handleMessage(data, event.source);\n            }))());\n        }\n        onPush(msg) {\n            // Push notifications without data have no effect.\n            if (!msg.data) {\n                return;\n            }\n            // Handle the push and keep the SW alive until it's handled.\n            msg.waitUntil(this.handlePush(msg.data.json()));\n        }\n        onClick(event) {\n            // Handle the click event and keep the SW alive until it's handled.\n            event.waitUntil(this.handleClick(event.notification, event.action));\n        }\n        ensureInitialized(event) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                // Since the SW may have just been started, it may or may not have been initialized already.\n                // `this.initialized` will be `null` if initialization has not yet been attempted, or will be a\n                // `Promise` which will resolve (successfully or unsuccessfully) if it has.\n                if (this.initialized !== null) {\n                    return this.initialized;\n                }\n                // Initialization has not yet been attempted, so attempt it. This should only ever happen once\n                // per SW instantiation.\n                try {\n                    this.initialized = this.initialize();\n                    yield this.initialized;\n                }\n                catch (error) {\n                    // If initialization fails, the SW needs to enter a safe state, where it declines to respond\n                    // to network requests.\n                    this.state = DriverReadyState.SAFE_MODE;\n                    this.stateMessage = `Initialization failed due to error: ${errorToString(error)}`;\n                    throw error;\n                }\n                finally {\n                    // Regardless if initialization succeeded, background tasks still need to happen.\n                    event.waitUntil(this.idle.trigger());\n                }\n            });\n        }\n        handleMessage(msg, from) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                if (isMsgCheckForUpdates(msg)) {\n                    const action = (() => __awaiter$5(this, void 0, void 0, function* () { yield this.checkForUpdate(); }))();\n                    yield this.reportStatus(from, action, msg.statusNonce);\n                }\n                else if (isMsgActivateUpdate(msg)) {\n                    yield this.reportStatus(from, this.updateClient(from), msg.statusNonce);\n                }\n            });\n        }\n        handlePush(data) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                yield this.broadcast({\n                    type: 'PUSH',\n                    data,\n                });\n                if (!data.notification || !data.notification.title) {\n                    return;\n                }\n                const desc = data.notification;\n                let options = {};\n                NOTIFICATION_OPTION_NAMES.filter(name => desc.hasOwnProperty(name))\n                    .forEach(name => options[name] = desc[name]);\n                yield this.scope.registration.showNotification(desc['title'], options);\n            });\n        }\n        handleClick(notification, action) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                notification.close();\n                const options = {};\n                // The filter uses `name in notification` because the properties are on the prototype so\n                // hasOwnProperty does not work here\n                NOTIFICATION_OPTION_NAMES.filter(name => name in notification)\n                    .forEach(name => options[name] = notification[name]);\n                yield this.broadcast({\n                    type: 'NOTIFICATION_CLICK',\n                    data: { action, notification: options },\n                });\n            });\n        }\n        reportStatus(client, promise, nonce) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                const response = { type: 'STATUS', nonce, status: true };\n                try {\n                    yield promise;\n                    client.postMessage(response);\n                }\n                catch (e) {\n                    client.postMessage(Object.assign(Object.assign({}, response), { status: false, error: e.toString() }));\n                }\n            });\n        }\n        updateClient(client) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                // Figure out which version the client is on. If it's not on the latest,\n                // it needs to be moved.\n                const existing = this.clientVersionMap.get(client.id);\n                if (existing === this.latestHash) {\n                    // Nothing to do, this client is already on the latest version.\n                    return;\n                }\n                // Switch the client over.\n                let previous = undefined;\n                // Look up the application data associated with the existing version. If there\n                // isn't any, fall back on using the hash.\n                if (existing !== undefined) {\n                    const existingVersion = this.versions.get(existing);\n                    previous = this.mergeHashWithAppData(existingVersion.manifest, existing);\n                }\n                // Set the current version used by the client, and sync the mapping to disk.\n                this.clientVersionMap.set(client.id, this.latestHash);\n                yield this.sync();\n                // Notify the client about this activation.\n                const current = this.versions.get(this.latestHash);\n                const notice = {\n                    type: 'UPDATE_ACTIVATED',\n                    previous,\n                    current: this.mergeHashWithAppData(current.manifest, this.latestHash),\n                };\n                client.postMessage(notice);\n            });\n        }\n        handleFetch(event) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                try {\n                    // Ensure the SW instance has been initialized.\n                    yield this.ensureInitialized(event);\n                }\n                catch (_a) {\n                    // Since the SW is already committed to responding to the currently active request,\n                    // respond with a network fetch.\n                    return this.safeFetch(event.request);\n                }\n                // On navigation requests, check for new updates.\n                if (event.request.mode === 'navigate' && !this.scheduledNavUpdateCheck) {\n                    this.scheduledNavUpdateCheck = true;\n                    this.idle.schedule('check-updates-on-navigation', () => __awaiter$5(this, void 0, void 0, function* () {\n                        this.scheduledNavUpdateCheck = false;\n                        yield this.checkForUpdate();\n                    }));\n                }\n                // Decide which version of the app to use to serve this request. This is asynchronous as in\n                // some cases, a record will need to be written to disk about the assignment that is made.\n                const appVersion = yield this.assignVersion(event);\n                // Bail out\n                if (appVersion === null) {\n                    event.waitUntil(this.idle.trigger());\n                    return this.safeFetch(event.request);\n                }\n                let res = null;\n                try {\n                    // Handle the request. First try the AppVersion. If that doesn't work, fall back on the\n                    // network.\n                    res = yield appVersion.handleFetch(event.request, event);\n                }\n                catch (err) {\n                    if (err.isCritical) {\n                        // Something went wrong with the activation of this version.\n                        yield this.versionFailed(appVersion, err);\n                        event.waitUntil(this.idle.trigger());\n                        return this.safeFetch(event.request);\n                    }\n                    throw err;\n                }\n                // The AppVersion will only return null if the manifest doesn't specify what to do about this\n                // request. In that case, just fall back on the network.\n                if (res === null) {\n                    event.waitUntil(this.idle.trigger());\n                    return this.safeFetch(event.request);\n                }\n                // Trigger the idle scheduling system. The Promise returned by trigger() will resolve after\n                // a specific amount of time has passed. If trigger() hasn't been called again by then (e.g.\n                // on a subsequent request), the idle task queue will be drained and the Promise won't resolve\n                // until that operation is complete as well.\n                event.waitUntil(this.idle.trigger());\n                // The AppVersion returned a usable response, so return it.\n                return res;\n            });\n        }\n        /**\n         * Attempt to quickly reach a state where it's safe to serve responses.\n         */\n        initialize() {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                // On initialization, all of the serialized state is read out of the 'control'\n                // table. This includes:\n                // - map of hashes to manifests of currently loaded application versions\n                // - map of client IDs to their pinned versions\n                // - record of the most recently fetched manifest hash\n                //\n                // If these values don't exist in the DB, then this is the either the first time\n                // the SW has run or the DB state has been wiped or is inconsistent. In that case,\n                // load a fresh copy of the manifest and reset the state from scratch.\n                // Open up the DB table.\n                const table = yield this.db.open('control');\n                // Attempt to load the needed state from the DB. If this fails, the catch {} block\n                // will populate these variables with freshly constructed values.\n                let manifests, assignments, latest;\n                try {\n                    // Read them from the DB simultaneously.\n                    [manifests, assignments, latest] = yield Promise.all([\n                        table.read('manifests'),\n                        table.read('assignments'),\n                        table.read('latest'),\n                    ]);\n                    // Successfully loaded from saved state. This implies a manifest exists, so\n                    // the update check needs to happen in the background.\n                    this.idle.schedule('init post-load (update, cleanup)', () => __awaiter$5(this, void 0, void 0, function* () {\n                        yield this.checkForUpdate();\n                        try {\n                            yield this.cleanupCaches();\n                        }\n                        catch (err) {\n                            // Nothing to do - cleanup failed. Just log it.\n                            this.debugger.log(err, 'cleanupCaches @ init post-load');\n                        }\n                    }));\n                }\n                catch (_) {\n                    // Something went wrong. Try to start over by fetching a new manifest from the\n                    // server and building up an empty initial state.\n                    const manifest = yield this.fetchLatestManifest();\n                    const hash = hashManifest(manifest);\n                    manifests = {};\n                    manifests[hash] = manifest;\n                    assignments = {};\n                    latest = { latest: hash };\n                    // Save the initial state to the DB.\n                    yield Promise.all([\n                        table.write('manifests', manifests),\n                        table.write('assignments', assignments),\n                        table.write('latest', latest),\n                    ]);\n                }\n                // At this point, either the state has been loaded successfully, or fresh state\n                // with a new copy of the manifest has been produced. At this point, the `Driver`\n                // can have its internals hydrated from the state.\n                // Initialize the `versions` map by setting each hash to a new `AppVersion` instance\n                // for that manifest.\n                Object.keys(manifests).forEach((hash) => {\n                    const manifest = manifests[hash];\n                    // If the manifest is newly initialized, an AppVersion may have already been\n                    // created for it.\n                    if (!this.versions.has(hash)) {\n                        this.versions.set(hash, new AppVersion(this.scope, this.adapter, this.db, this.idle, this.debugger, manifest, hash));\n                    }\n                });\n                // Map each client ID to its associated hash. Along the way, verify that the hash\n                // is still valid for that client ID. It should not be possible for a client to\n                // still be associated with a hash that was since removed from the state.\n                Object.keys(assignments).forEach((clientId) => {\n                    const hash = assignments[clientId];\n                    if (this.versions.has(hash)) {\n                        this.clientVersionMap.set(clientId, hash);\n                    }\n                    else {\n                        this.clientVersionMap.set(clientId, latest.latest);\n                        this.debugger.log(`Unknown version ${hash} mapped for client ${clientId}, using latest instead`, `initialize: map assignments`);\n                    }\n                });\n                // Set the latest version.\n                this.latestHash = latest.latest;\n                // Finally, assert that the latest version is in fact loaded.\n                if (!this.versions.has(latest.latest)) {\n                    throw new Error(`Invariant violated (initialize): latest hash ${latest.latest} has no known manifest`);\n                }\n                // Finally, wait for the scheduling of initialization of all versions in the\n                // manifest. Ordinarily this just schedules the initializations to happen during\n                // the next idle period, but in development mode this might actually wait for the\n                // full initialization.\n                // If any of these initializations fail, versionFailed() will be called either\n                // synchronously or asynchronously to handle the failure and re-map clients.\n                yield Promise.all(Object.keys(manifests).map((hash) => __awaiter$5(this, void 0, void 0, function* () {\n                    try {\n                        // Attempt to schedule or initialize this version. If this operation is\n                        // successful, then initialization either succeeded or was scheduled. If\n                        // it fails, then full initialization was attempted and failed.\n                        yield this.scheduleInitialization(this.versions.get(hash));\n                    }\n                    catch (err) {\n                        this.debugger.log(err, `initialize: schedule init of ${hash}`);\n                        return false;\n                    }\n                })));\n            });\n        }\n        lookupVersionByHash(hash, debugName = 'lookupVersionByHash') {\n            // The version should exist, but check just in case.\n            if (!this.versions.has(hash)) {\n                throw new Error(`Invariant violated (${debugName}): want AppVersion for ${hash} but not loaded`);\n            }\n            return this.versions.get(hash);\n        }\n        /**\n         * Decide which version of the manifest to use for the event.\n         */\n        assignVersion(event) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                // First, check whether the event has a (non empty) client ID. If it does, the version may\n                // already be associated.\n                const clientId = event.clientId;\n                if (clientId) {\n                    // Check if there is an assigned client id.\n                    if (this.clientVersionMap.has(clientId)) {\n                        // There is an assignment for this client already.\n                        const hash = this.clientVersionMap.get(clientId);\n                        let appVersion = this.lookupVersionByHash(hash, 'assignVersion');\n                        // Ordinarily, this client would be served from its assigned version. But, if this\n                        // request is a navigation request, this client can be updated to the latest\n                        // version immediately.\n                        if (this.state === DriverReadyState.NORMAL && hash !== this.latestHash &&\n                            appVersion.isNavigationRequest(event.request)) {\n                            // Update this client to the latest version immediately.\n                            if (this.latestHash === null) {\n                                throw new Error(`Invariant violated (assignVersion): latestHash was null`);\n                            }\n                            const client = yield this.scope.clients.get(clientId);\n                            yield this.updateClient(client);\n                            appVersion = this.lookupVersionByHash(this.latestHash, 'assignVersion');\n                        }\n                        // TODO: make sure the version is valid.\n                        return appVersion;\n                    }\n                    else {\n                        // This is the first time this client ID has been seen. Whether the SW is in a\n                        // state to handle new clients depends on the current readiness state, so check\n                        // that first.\n                        if (this.state !== DriverReadyState.NORMAL) {\n                            // It's not safe to serve new clients in the current state. It's possible that\n                            // this is an existing client which has not been mapped yet (see below) but\n                            // even if that is the case, it's invalid to make an assignment to a known\n                            // invalid version, even if that assignment was previously implicit. Return\n                            // undefined here to let the caller know that no assignment is possible at\n                            // this time.\n                            return null;\n                        }\n                        // It's safe to handle this request. Two cases apply. Either:\n                        // 1) the browser assigned a client ID at the time of the navigation request, and\n                        //    this is truly the first time seeing this client, or\n                        // 2) a navigation request came previously from the same client, but with no client\n                        //    ID attached. Browsers do this to avoid creating a client under the origin in\n                        //    the event the navigation request is just redirected.\n                        //\n                        // In case 1, the latest version can safely be used.\n                        // In case 2, the latest version can be used, with the assumption that the previous\n                        // navigation request was answered under the same version. This assumption relies\n                        // on the fact that it's unlikely an update will come in between the navigation\n                        // request and requests for subsequent resources on that page.\n                        // First validate the current state.\n                        if (this.latestHash === null) {\n                            throw new Error(`Invariant violated (assignVersion): latestHash was null`);\n                        }\n                        // Pin this client ID to the current latest version, indefinitely.\n                        this.clientVersionMap.set(clientId, this.latestHash);\n                        yield this.sync();\n                        // Return the latest `AppVersion`.\n                        return this.lookupVersionByHash(this.latestHash, 'assignVersion');\n                    }\n                }\n                else {\n                    // No client ID was associated with the request. This must be a navigation request\n                    // for a new client. First check that the SW is accepting new clients.\n                    if (this.state !== DriverReadyState.NORMAL) {\n                        return null;\n                    }\n                    // Serve it with the latest version, and assume that the client will actually get\n                    // associated with that version on the next request.\n                    // First validate the current state.\n                    if (this.latestHash === null) {\n                        throw new Error(`Invariant violated (assignVersion): latestHash was null`);\n                    }\n                    // Return the latest `AppVersion`.\n                    return this.lookupVersionByHash(this.latestHash, 'assignVersion');\n                }\n            });\n        }\n        fetchLatestManifest(ignoreOfflineError = false) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                const res = yield this.safeFetch(this.adapter.newRequest('ngsw.json?ngsw-cache-bust=' + Math.random()));\n                if (!res.ok) {\n                    if (res.status === 404) {\n                        yield this.deleteAllCaches();\n                        yield this.scope.registration.unregister();\n                    }\n                    else if (res.status === 504 && ignoreOfflineError) {\n                        return null;\n                    }\n                    throw new Error(`Manifest fetch failed! (status: ${res.status})`);\n                }\n                this.lastUpdateCheck = this.adapter.time;\n                return res.json();\n            });\n        }\n        deleteAllCaches() {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                yield (yield this.scope.caches.keys())\n                    .filter(key => key.startsWith(`${this.adapter.cacheNamePrefix}:`))\n                    .reduce((previous, key) => __awaiter$5(this, void 0, void 0, function* () {\n                    yield Promise.all([\n                        previous,\n                        this.scope.caches.delete(key),\n                    ]);\n                }), Promise.resolve());\n            });\n        }\n        /**\n         * Schedule the SW's attempt to reach a fully prefetched state for the given AppVersion\n         * when the SW is not busy and has connectivity. This returns a Promise which must be\n         * awaited, as under some conditions the AppVersion might be initialized immediately.\n         */\n        scheduleInitialization(appVersion) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                const initialize = () => __awaiter$5(this, void 0, void 0, function* () {\n                    try {\n                        yield appVersion.initializeFully();\n                    }\n                    catch (err) {\n                        this.debugger.log(err, `initializeFully for ${appVersion.manifestHash}`);\n                        yield this.versionFailed(appVersion, err);\n                    }\n                });\n                // TODO: better logic for detecting localhost.\n                if (this.scope.registration.scope.indexOf('://localhost') > -1) {\n                    return initialize();\n                }\n                this.idle.schedule(`initialization(${appVersion.manifestHash})`, initialize);\n            });\n        }\n        versionFailed(appVersion, err) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                // This particular AppVersion is broken. First, find the manifest hash.\n                const broken = Array.from(this.versions.entries()).find(([hash, version]) => version === appVersion);\n                if (broken === undefined) {\n                    // This version is no longer in use anyway, so nobody cares.\n                    return;\n                }\n                const brokenHash = broken[0];\n                const affectedClients = Array.from(this.clientVersionMap.entries())\n                    .filter(([clientId, hash]) => hash === brokenHash)\n                    .map(([clientId]) => clientId);\n                // TODO: notify affected apps.\n                // The action taken depends on whether the broken manifest is the active (latest) or not.\n                // If so, the SW cannot accept new clients, but can continue to service old ones.\n                if (this.latestHash === brokenHash) {\n                    // The latest manifest is broken. This means that new clients are at the mercy of the\n                    // network, but caches continue to be valid for previous versions. This is\n                    // unfortunate but unavoidable.\n                    this.state = DriverReadyState.EXISTING_CLIENTS_ONLY;\n                    this.stateMessage = `Degraded due to: ${errorToString(err)}`;\n                    // Cancel the binding for the affected clients.\n                    affectedClients.forEach(clientId => this.clientVersionMap.delete(clientId));\n                }\n                else {\n                    // The latest version is viable, but this older version isn't. The only\n                    // possible remedy is to stop serving the older version and go to the network.\n                    // Put the affected clients on the latest version.\n                    affectedClients.forEach(clientId => this.clientVersionMap.set(clientId, this.latestHash));\n                }\n                try {\n                    yield this.sync();\n                }\n                catch (err2) {\n                    // We are already in a bad state. No need to make things worse.\n                    // Just log the error and move on.\n                    this.debugger.log(err2, `Driver.versionFailed(${err.message || err})`);\n                }\n            });\n        }\n        setupUpdate(manifest, hash) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                const newVersion = new AppVersion(this.scope, this.adapter, this.db, this.idle, this.debugger, manifest, hash);\n                // Firstly, check if the manifest version is correct.\n                if (manifest.configVersion !== SUPPORTED_CONFIG_VERSION) {\n                    yield this.deleteAllCaches();\n                    yield this.scope.registration.unregister();\n                    throw new Error(`Invalid config version: expected ${SUPPORTED_CONFIG_VERSION}, got ${manifest.configVersion}.`);\n                }\n                // Cause the new version to become fully initialized. If this fails, then the\n                // version will not be available for use.\n                yield newVersion.initializeFully(this);\n                // Install this as an active version of the app.\n                this.versions.set(hash, newVersion);\n                // Future new clients will use this hash as the latest version.\n                this.latestHash = hash;\n                // If we are in `EXISTING_CLIENTS_ONLY` mode (meaning we didn't have a clean copy of the last\n                // latest version), we can now recover to `NORMAL` mode and start accepting new clients.\n                if (this.state === DriverReadyState.EXISTING_CLIENTS_ONLY) {\n                    this.state = DriverReadyState.NORMAL;\n                    this.stateMessage = '(nominal)';\n                }\n                yield this.sync();\n                yield this.notifyClientsAboutUpdate(newVersion);\n            });\n        }\n        checkForUpdate() {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                let hash = '(unknown)';\n                try {\n                    const manifest = yield this.fetchLatestManifest(true);\n                    if (manifest === null) {\n                        // Client or server offline. Unable to check for updates at this time.\n                        // Continue to service clients (existing and new).\n                        this.debugger.log('Check for update aborted. (Client or server offline.)');\n                        return false;\n                    }\n                    hash = hashManifest(manifest);\n                    // Check whether this is really an update.\n                    if (this.versions.has(hash)) {\n                        return false;\n                    }\n                    yield this.setupUpdate(manifest, hash);\n                    return true;\n                }\n                catch (err) {\n                    this.debugger.log(err, `Error occurred while updating to manifest ${hash}`);\n                    this.state = DriverReadyState.EXISTING_CLIENTS_ONLY;\n                    this.stateMessage = `Degraded due to failed initialization: ${errorToString(err)}`;\n                    return false;\n                }\n            });\n        }\n        /**\n         * Synchronize the existing state to the underlying database.\n         */\n        sync() {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                // Open up the DB table.\n                const table = yield this.db.open('control');\n                // Construct a serializable map of hashes to manifests.\n                const manifests = {};\n                this.versions.forEach((version, hash) => { manifests[hash] = version.manifest; });\n                // Construct a serializable map of client ids to version hashes.\n                const assignments = {};\n                this.clientVersionMap.forEach((hash, clientId) => { assignments[clientId] = hash; });\n                // Record the latest entry. Since this is a sync which is necessarily happening after\n                // initialization, latestHash should always be valid.\n                const latest = {\n                    latest: this.latestHash,\n                };\n                // Synchronize all of these.\n                yield Promise.all([\n                    table.write('manifests', manifests),\n                    table.write('assignments', assignments),\n                    table.write('latest', latest),\n                ]);\n            });\n        }\n        cleanupCaches() {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                // Query for all currently active clients, and list the client ids. This may skip\n                // some clients in the browser back-forward cache, but not much can be done about\n                // that.\n                const activeClients = (yield this.scope.clients.matchAll()).map(client => client.id);\n                // A simple list of client ids that the SW has kept track of. Subtracting\n                // activeClients from this list will result in the set of client ids which are\n                // being tracked but are no longer used in the browser, and thus can be cleaned up.\n                const knownClients = Array.from(this.clientVersionMap.keys());\n                // Remove clients in the clientVersionMap that are no longer active.\n                knownClients.filter(id => activeClients.indexOf(id) === -1)\n                    .forEach(id => this.clientVersionMap.delete(id));\n                // Next, determine the set of versions which are still used. All others can be\n                // removed.\n                const usedVersions = new Set();\n                this.clientVersionMap.forEach((version, _) => usedVersions.add(version));\n                // Collect all obsolete versions by filtering out used versions from the set of all versions.\n                const obsoleteVersions = Array.from(this.versions.keys())\n                    .filter(version => !usedVersions.has(version) && version !== this.latestHash);\n                // Remove all the versions which are no longer used.\n                yield obsoleteVersions.reduce((previous, version) => __awaiter$5(this, void 0, void 0, function* () {\n                    // Wait for the other cleanup operations to complete.\n                    yield previous;\n                    // Try to get past the failure of one particular version to clean up (this\n                    // shouldn't happen, but handle it just in case).\n                    try {\n                        // Get ahold of the AppVersion for this particular hash.\n                        const instance = this.versions.get(version);\n                        // Delete it from the canonical map.\n                        this.versions.delete(version);\n                        // Clean it up.\n                        yield instance.cleanup();\n                    }\n                    catch (err) {\n                        // Oh well? Not much that can be done here. These caches will be removed when\n                        // the SW revs its format version, which happens from time to time.\n                        this.debugger.log(err, `cleanupCaches - cleanup ${version}`);\n                    }\n                }), Promise.resolve());\n                // Commit all the changes to the saved state.\n                yield this.sync();\n            });\n        }\n        /**\n         * Delete caches that were used by older versions of `@angular/service-worker` to avoid running\n         * into storage quota limitations imposed by browsers.\n         * (Since at this point the SW has claimed all clients, it is safe to remove those caches.)\n         */\n        cleanupOldSwCaches() {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                const cacheNames = yield this.scope.caches.keys();\n                const oldSwCacheNames = cacheNames.filter(name => /^ngsw:(?!\\/)/.test(name));\n                yield Promise.all(oldSwCacheNames.map(name => this.scope.caches.delete(name)));\n            });\n        }\n        /**\n         * Determine if a specific version of the given resource is cached anywhere within the SW,\n         * and fetch it if so.\n         */\n        lookupResourceWithHash(url, hash) {\n            return Array\n                // Scan through the set of all cached versions, valid or otherwise. It's safe to do such\n                // lookups even for invalid versions as the cached version of a resource will have the\n                // same hash regardless.\n                .from(this.versions.values())\n                // Reduce the set of versions to a single potential result. At any point along the\n                // reduction, if a response has already been identified, then pass it through, as no\n                // future operation could change the response. If no response has been found yet, keep\n                // checking versions until one is or until all versions have been exhausted.\n                .reduce((prev, version) => __awaiter$5(this, void 0, void 0, function* () {\n                // First, check the previous result. If a non-null result has been found already, just\n                // return it.\n                if ((yield prev) !== null) {\n                    return prev;\n                }\n                // No result has been found yet. Try the next `AppVersion`.\n                return version.lookupResourceWithHash(url, hash);\n            }), Promise.resolve(null));\n        }\n        lookupResourceWithoutHash(url) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                yield this.initialized;\n                const version = this.versions.get(this.latestHash);\n                return version ? version.lookupResourceWithoutHash(url) : null;\n            });\n        }\n        previouslyCachedResources() {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                yield this.initialized;\n                const version = this.versions.get(this.latestHash);\n                return version ? version.previouslyCachedResources() : [];\n            });\n        }\n        recentCacheStatus(url) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                const version = this.versions.get(this.latestHash);\n                return version ? version.recentCacheStatus(url) : UpdateCacheStatus.NOT_CACHED;\n            });\n        }\n        mergeHashWithAppData(manifest, hash) {\n            return {\n                hash,\n                appData: manifest.appData,\n            };\n        }\n        notifyClientsAboutUpdate(next) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                yield this.initialized;\n                const clients = yield this.scope.clients.matchAll();\n                yield clients.reduce((previous, client) => __awaiter$5(this, void 0, void 0, function* () {\n                    yield previous;\n                    // Firstly, determine which version this client is on.\n                    const version = this.clientVersionMap.get(client.id);\n                    if (version === undefined) {\n                        // Unmapped client - assume it's the latest.\n                        return;\n                    }\n                    if (version === this.latestHash) {\n                        // Client is already on the latest version, no need for a notification.\n                        return;\n                    }\n                    const current = this.versions.get(version);\n                    // Send a notice.\n                    const notice = {\n                        type: 'UPDATE_AVAILABLE',\n                        current: this.mergeHashWithAppData(current.manifest, version),\n                        available: this.mergeHashWithAppData(next.manifest, this.latestHash),\n                    };\n                    client.postMessage(notice);\n                }), Promise.resolve());\n            });\n        }\n        broadcast(msg) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                const clients = yield this.scope.clients.matchAll();\n                clients.forEach(client => { client.postMessage(msg); });\n            });\n        }\n        debugState() {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                return {\n                    state: DriverReadyState[this.state],\n                    why: this.stateMessage,\n                    latestHash: this.latestHash,\n                    lastUpdateCheck: this.lastUpdateCheck,\n                };\n            });\n        }\n        debugVersions() {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                // Build list of versions.\n                return Array.from(this.versions.keys()).map(hash => {\n                    const version = this.versions.get(hash);\n                    const clients = Array.from(this.clientVersionMap.entries())\n                        .filter(([clientId, version]) => version === hash)\n                        .map(([clientId, version]) => clientId);\n                    return {\n                        hash,\n                        manifest: version.manifest, clients,\n                        status: '',\n                    };\n                });\n            });\n        }\n        debugIdleState() {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                return {\n                    queue: this.idle.taskDescriptions,\n                    lastTrigger: this.idle.lastTrigger,\n                    lastRun: this.idle.lastRun,\n                };\n            });\n        }\n        safeFetch(req) {\n            return __awaiter$5(this, void 0, void 0, function* () {\n                try {\n                    return yield this.scope.fetch(req);\n                }\n                catch (err) {\n                    this.debugger.log(err, `Driver.fetch(${req.url})`);\n                    return this.adapter.newResponse(null, {\n                        status: 504,\n                        statusText: 'Gateway Timeout',\n                    });\n                }\n            });\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google Inc. All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    const scope = self;\n    const adapter = new Adapter(scope);\n    const driver = new Driver(scope, adapter, new CacheDatabase(scope, adapter));\n\n}());\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/ngsw.json",
    "content": "{\n  \"configVersion\": 1,\n  \"timestamp\": 1582635186642,\n  \"index\": \"/index.html\",\n  \"assetGroups\": [\n    {\n      \"name\": \"app\",\n      \"installMode\": \"prefetch\",\n      \"updateMode\": \"prefetch\",\n      \"urls\": [\n        \"/5-es2015.b2d2985f67757f20fa32.js\",\n        \"/5-es5.b2d2985f67757f20fa32.js\",\n        \"/favicon.ico\",\n        \"/index.html\",\n        \"/main-es2015.17a65f3ef96068aef242.js\",\n        \"/main-es5.17a65f3ef96068aef242.js\",\n        \"/polyfills-es2015.ca64e4516afbb1b890d5.js\",\n        \"/polyfills-es5.277e2e1d6fb2daf91a5c.js\",\n        \"/runtime-es2015.ef57c12ac0fc432d4c88.js\",\n        \"/runtime-es5.ef57c12ac0fc432d4c88.js\",\n        \"/styles.87fc5b77face4b6618ed.css\"\n      ],\n      \"patterns\": []\n    },\n    {\n      \"name\": \"assets\",\n      \"installMode\": \"lazy\",\n      \"updateMode\": \"prefetch\",\n      \"urls\": [\n        \"/assets/icons/icon-128x128.png\",\n        \"/assets/icons/icon-144x144.png\",\n        \"/assets/icons/icon-152x152.png\",\n        \"/assets/icons/icon-192x192.png\",\n        \"/assets/icons/icon-384x384.png\",\n        \"/assets/icons/icon-512x512.png\",\n        \"/assets/icons/icon-72x72.png\",\n        \"/assets/icons/icon-96x96.png\"\n      ],\n      \"patterns\": []\n    }\n  ],\n  \"dataGroups\": [\n    {\n      \"name\": \"api-product\",\n      \"patterns\": [\n        \"\\\\/api\\\\/products\"\n      ],\n      \"strategy\": \"performance\",\n      \"maxSize\": 100,\n      \"maxAge\": 432000000,\n      \"version\": 1\n    }\n  ],\n  \"hashTable\": {\n    \"/5-es2015.b2d2985f67757f20fa32.js\": \"62cb94c7ea980524d6e9ce1ad12337597833ded8\",\n    \"/5-es5.b2d2985f67757f20fa32.js\": \"6a4ea2bc855faa5bc1db9d04329dcbbd46f08b11\",\n    \"/assets/icons/icon-128x128.png\": \"dae3b6ed49bdaf4327b92531d4b5b4a5d30c7532\",\n    \"/assets/icons/icon-144x144.png\": \"b0bd89982e08f9bd2b642928f5391915b74799a7\",\n    \"/assets/icons/icon-152x152.png\": \"7479a9477815dfd9668d60f8b3b2fba709b91310\",\n    \"/assets/icons/icon-192x192.png\": \"1abd80d431a237a853ce38147d8c63752f10933b\",\n    \"/assets/icons/icon-384x384.png\": \"329749cd6393768d3131ed6304c136b1ca05f2fd\",\n    \"/assets/icons/icon-512x512.png\": \"559d9c4318b45a1f2b10596bbb4c960fe521dbcc\",\n    \"/assets/icons/icon-72x72.png\": \"c457e56089a36952cd67156f9996bc4ce54a5ed9\",\n    \"/assets/icons/icon-96x96.png\": \"3914125a4b445bf111c5627875fc190f560daa41\",\n    \"/favicon.ico\": \"22f6a4a3bcaafafb0254e0f2fa4ceb89e505e8b2\",\n    \"/index.html\": \"d34c276b7dd19d1a364ad09fdc2633d877e43885\",\n    \"/main-es2015.17a65f3ef96068aef242.js\": \"b77df3e544cf6bc998f130f0e6163408dc51cf7d\",\n    \"/main-es5.17a65f3ef96068aef242.js\": \"256d6e2a83a7d5afe3cafb99de96b39abb2f2bc7\",\n    \"/polyfills-es2015.ca64e4516afbb1b890d5.js\": \"8779ed8d9bf0580e1b50b352a9b8fd520be24433\",\n    \"/polyfills-es5.277e2e1d6fb2daf91a5c.js\": \"8d03638471d7374e81cf33adfdea439f84ac3873\",\n    \"/runtime-es2015.ef57c12ac0fc432d4c88.js\": \"d1f16cdec13619b75a31caef12cb495bec6b708c\",\n    \"/runtime-es5.ef57c12ac0fc432d4c88.js\": \"c0669a55eba309b7d3b9e15cdc42202dc58a8702\",\n    \"/styles.87fc5b77face4b6618ed.css\": \"1ad2ae04dbcddc1f20d382ad3a81e0f0bbb3e5e9\"\n  },\n  \"navigationUrls\": [\n    {\n      \"positive\": true,\n      \"regex\": \"^\\\\/.*$\"\n    }\n  ]\n}"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/runtime-es2015.ef57c12ac0fc432d4c88.js",
    "content": "!function(e){function r(r){for(var n,i,a=r[0],c=r[1],f=r[2],p=0,s=[];p<a.length;p++)i=a[p],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(l&&l(r);s.length;)s.shift()();return u.push.apply(u,f||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++)0!==o[t[a]]&&(n=!1);n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={0:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,a=document.createElement(\"script\");a.charset=\"utf-8\",a.timeout=120,i.nc&&a.setAttribute(\"nonce\",i.nc),a.src=function(e){return i.p+\"\"+({}[e]||e)+\"-es2015.\"+{5:\"b2d2985f67757f20fa32\"}[e]+\".js\"}(e);var c=new Error;u=function(r){a.onerror=a.onload=null,clearTimeout(f);var t=o[e];if(0!==t){if(t){var n=r&&(\"load\"===r.type?\"missing\":r.type),u=r&&r.target&&r.target.src;c.message=\"Loading chunk \"+e+\" failed.\\n(\"+n+\": \"+u+\")\",c.name=\"ChunkLoadError\",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var f=setTimeout((function(){u({type:\"timeout\",target:a})}),12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(r)},i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)i.d(t,n,(function(r){return e[r]}).bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,\"a\",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p=\"\",i.oe=function(e){throw console.error(e),e};var a=window.webpackJsonp=window.webpackJsonp||[],c=a.push.bind(a);a.push=r,a=a.slice();for(var f=0;f<a.length;f++)r(a[f]);var l=c;t()}([]);"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/runtime-es5.ef57c12ac0fc432d4c88.js",
    "content": "!function(e){function r(r){for(var n,i,a=r[0],c=r[1],f=r[2],p=0,s=[];p<a.length;p++)i=a[p],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(l&&l(r);s.length;)s.shift()();return u.push.apply(u,f||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++)0!==o[t[a]]&&(n=!1);n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={0:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,a=document.createElement(\"script\");a.charset=\"utf-8\",a.timeout=120,i.nc&&a.setAttribute(\"nonce\",i.nc),a.src=function(e){return i.p+\"\"+({}[e]||e)+\"-es5.\"+{5:\"b2d2985f67757f20fa32\"}[e]+\".js\"}(e);var c=new Error;u=function(r){a.onerror=a.onload=null,clearTimeout(f);var t=o[e];if(0!==t){if(t){var n=r&&(\"load\"===r.type?\"missing\":r.type),u=r&&r.target&&r.target.src;c.message=\"Loading chunk \"+e+\" failed.\\n(\"+n+\": \"+u+\")\",c.name=\"ChunkLoadError\",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var f=setTimeout((function(){u({type:\"timeout\",target:a})}),12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(r)},i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)i.d(t,n,(function(r){return e[r]}).bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,\"a\",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p=\"\",i.oe=function(e){throw console.error(e),e};var a=window.webpackJsonp=window.webpackJsonp||[],c=a.push.bind(a);a.push=r,a=a.slice();for(var f=0;f<a.length;f++)r(a[f]);var l=c;t()}([]);"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/safety-worker.js",
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// tslint:disable:no-console\n\nself.addEventListener('install', event => { self.skipWaiting(); });\n\nself.addEventListener('activate', event => {\n  event.waitUntil(self.clients.claim());\n  self.registration.unregister().then(\n      () => { console.log('NGSW Safety Worker - unregistered old service worker'); });\n});\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/dist/SportsStore/styles.87fc5b77face4b6618ed.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{white-space:nowrap}.sr-only-focusable:active,.sr-only-focusable:focus{white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}\n/*!\n * Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:\"\\f26e\"}.fa-accessible-icon:before{content:\"\\f368\"}.fa-accusoft:before{content:\"\\f369\"}.fa-acquisitions-incorporated:before{content:\"\\f6af\"}.fa-ad:before{content:\"\\f641\"}.fa-address-book:before{content:\"\\f2b9\"}.fa-address-card:before{content:\"\\f2bb\"}.fa-adjust:before{content:\"\\f042\"}.fa-adn:before{content:\"\\f170\"}.fa-adobe:before{content:\"\\f778\"}.fa-adversal:before{content:\"\\f36a\"}.fa-affiliatetheme:before{content:\"\\f36b\"}.fa-air-freshener:before{content:\"\\f5d0\"}.fa-airbnb:before{content:\"\\f834\"}.fa-algolia:before{content:\"\\f36c\"}.fa-align-center:before{content:\"\\f037\"}.fa-align-justify:before{content:\"\\f039\"}.fa-align-left:before{content:\"\\f036\"}.fa-align-right:before{content:\"\\f038\"}.fa-alipay:before{content:\"\\f642\"}.fa-allergies:before{content:\"\\f461\"}.fa-amazon:before{content:\"\\f270\"}.fa-amazon-pay:before{content:\"\\f42c\"}.fa-ambulance:before{content:\"\\f0f9\"}.fa-american-sign-language-interpreting:before{content:\"\\f2a3\"}.fa-amilia:before{content:\"\\f36d\"}.fa-anchor:before{content:\"\\f13d\"}.fa-android:before{content:\"\\f17b\"}.fa-angellist:before{content:\"\\f209\"}.fa-angle-double-down:before{content:\"\\f103\"}.fa-angle-double-left:before{content:\"\\f100\"}.fa-angle-double-right:before{content:\"\\f101\"}.fa-angle-double-up:before{content:\"\\f102\"}.fa-angle-down:before{content:\"\\f107\"}.fa-angle-left:before{content:\"\\f104\"}.fa-angle-right:before{content:\"\\f105\"}.fa-angle-up:before{content:\"\\f106\"}.fa-angry:before{content:\"\\f556\"}.fa-angrycreative:before{content:\"\\f36e\"}.fa-angular:before{content:\"\\f420\"}.fa-ankh:before{content:\"\\f644\"}.fa-app-store:before{content:\"\\f36f\"}.fa-app-store-ios:before{content:\"\\f370\"}.fa-apper:before{content:\"\\f371\"}.fa-apple:before{content:\"\\f179\"}.fa-apple-alt:before{content:\"\\f5d1\"}.fa-apple-pay:before{content:\"\\f415\"}.fa-archive:before{content:\"\\f187\"}.fa-archway:before{content:\"\\f557\"}.fa-arrow-alt-circle-down:before{content:\"\\f358\"}.fa-arrow-alt-circle-left:before{content:\"\\f359\"}.fa-arrow-alt-circle-right:before{content:\"\\f35a\"}.fa-arrow-alt-circle-up:before{content:\"\\f35b\"}.fa-arrow-circle-down:before{content:\"\\f0ab\"}.fa-arrow-circle-left:before{content:\"\\f0a8\"}.fa-arrow-circle-right:before{content:\"\\f0a9\"}.fa-arrow-circle-up:before{content:\"\\f0aa\"}.fa-arrow-down:before{content:\"\\f063\"}.fa-arrow-left:before{content:\"\\f060\"}.fa-arrow-right:before{content:\"\\f061\"}.fa-arrow-up:before{content:\"\\f062\"}.fa-arrows-alt:before{content:\"\\f0b2\"}.fa-arrows-alt-h:before{content:\"\\f337\"}.fa-arrows-alt-v:before{content:\"\\f338\"}.fa-artstation:before{content:\"\\f77a\"}.fa-assistive-listening-systems:before{content:\"\\f2a2\"}.fa-asterisk:before{content:\"\\f069\"}.fa-asymmetrik:before{content:\"\\f372\"}.fa-at:before{content:\"\\f1fa\"}.fa-atlas:before{content:\"\\f558\"}.fa-atlassian:before{content:\"\\f77b\"}.fa-atom:before{content:\"\\f5d2\"}.fa-audible:before{content:\"\\f373\"}.fa-audio-description:before{content:\"\\f29e\"}.fa-autoprefixer:before{content:\"\\f41c\"}.fa-avianex:before{content:\"\\f374\"}.fa-aviato:before{content:\"\\f421\"}.fa-award:before{content:\"\\f559\"}.fa-aws:before{content:\"\\f375\"}.fa-baby:before{content:\"\\f77c\"}.fa-baby-carriage:before{content:\"\\f77d\"}.fa-backspace:before{content:\"\\f55a\"}.fa-backward:before{content:\"\\f04a\"}.fa-bacon:before{content:\"\\f7e5\"}.fa-bahai:before{content:\"\\f666\"}.fa-balance-scale:before{content:\"\\f24e\"}.fa-balance-scale-left:before{content:\"\\f515\"}.fa-balance-scale-right:before{content:\"\\f516\"}.fa-ban:before{content:\"\\f05e\"}.fa-band-aid:before{content:\"\\f462\"}.fa-bandcamp:before{content:\"\\f2d5\"}.fa-barcode:before{content:\"\\f02a\"}.fa-bars:before{content:\"\\f0c9\"}.fa-baseball-ball:before{content:\"\\f433\"}.fa-basketball-ball:before{content:\"\\f434\"}.fa-bath:before{content:\"\\f2cd\"}.fa-battery-empty:before{content:\"\\f244\"}.fa-battery-full:before{content:\"\\f240\"}.fa-battery-half:before{content:\"\\f242\"}.fa-battery-quarter:before{content:\"\\f243\"}.fa-battery-three-quarters:before{content:\"\\f241\"}.fa-battle-net:before{content:\"\\f835\"}.fa-bed:before{content:\"\\f236\"}.fa-beer:before{content:\"\\f0fc\"}.fa-behance:before{content:\"\\f1b4\"}.fa-behance-square:before{content:\"\\f1b5\"}.fa-bell:before{content:\"\\f0f3\"}.fa-bell-slash:before{content:\"\\f1f6\"}.fa-bezier-curve:before{content:\"\\f55b\"}.fa-bible:before{content:\"\\f647\"}.fa-bicycle:before{content:\"\\f206\"}.fa-biking:before{content:\"\\f84a\"}.fa-bimobject:before{content:\"\\f378\"}.fa-binoculars:before{content:\"\\f1e5\"}.fa-biohazard:before{content:\"\\f780\"}.fa-birthday-cake:before{content:\"\\f1fd\"}.fa-bitbucket:before{content:\"\\f171\"}.fa-bitcoin:before{content:\"\\f379\"}.fa-bity:before{content:\"\\f37a\"}.fa-black-tie:before{content:\"\\f27e\"}.fa-blackberry:before{content:\"\\f37b\"}.fa-blender:before{content:\"\\f517\"}.fa-blender-phone:before{content:\"\\f6b6\"}.fa-blind:before{content:\"\\f29d\"}.fa-blog:before{content:\"\\f781\"}.fa-blogger:before{content:\"\\f37c\"}.fa-blogger-b:before{content:\"\\f37d\"}.fa-bluetooth:before{content:\"\\f293\"}.fa-bluetooth-b:before{content:\"\\f294\"}.fa-bold:before{content:\"\\f032\"}.fa-bolt:before{content:\"\\f0e7\"}.fa-bomb:before{content:\"\\f1e2\"}.fa-bone:before{content:\"\\f5d7\"}.fa-bong:before{content:\"\\f55c\"}.fa-book:before{content:\"\\f02d\"}.fa-book-dead:before{content:\"\\f6b7\"}.fa-book-medical:before{content:\"\\f7e6\"}.fa-book-open:before{content:\"\\f518\"}.fa-book-reader:before{content:\"\\f5da\"}.fa-bookmark:before{content:\"\\f02e\"}.fa-bootstrap:before{content:\"\\f836\"}.fa-border-all:before{content:\"\\f84c\"}.fa-border-none:before{content:\"\\f850\"}.fa-border-style:before{content:\"\\f853\"}.fa-bowling-ball:before{content:\"\\f436\"}.fa-box:before{content:\"\\f466\"}.fa-box-open:before{content:\"\\f49e\"}.fa-boxes:before{content:\"\\f468\"}.fa-braille:before{content:\"\\f2a1\"}.fa-brain:before{content:\"\\f5dc\"}.fa-bread-slice:before{content:\"\\f7ec\"}.fa-briefcase:before{content:\"\\f0b1\"}.fa-briefcase-medical:before{content:\"\\f469\"}.fa-broadcast-tower:before{content:\"\\f519\"}.fa-broom:before{content:\"\\f51a\"}.fa-brush:before{content:\"\\f55d\"}.fa-btc:before{content:\"\\f15a\"}.fa-buffer:before{content:\"\\f837\"}.fa-bug:before{content:\"\\f188\"}.fa-building:before{content:\"\\f1ad\"}.fa-bullhorn:before{content:\"\\f0a1\"}.fa-bullseye:before{content:\"\\f140\"}.fa-burn:before{content:\"\\f46a\"}.fa-buromobelexperte:before{content:\"\\f37f\"}.fa-bus:before{content:\"\\f207\"}.fa-bus-alt:before{content:\"\\f55e\"}.fa-business-time:before{content:\"\\f64a\"}.fa-buy-n-large:before{content:\"\\f8a6\"}.fa-buysellads:before{content:\"\\f20d\"}.fa-calculator:before{content:\"\\f1ec\"}.fa-calendar:before{content:\"\\f133\"}.fa-calendar-alt:before{content:\"\\f073\"}.fa-calendar-check:before{content:\"\\f274\"}.fa-calendar-day:before{content:\"\\f783\"}.fa-calendar-minus:before{content:\"\\f272\"}.fa-calendar-plus:before{content:\"\\f271\"}.fa-calendar-times:before{content:\"\\f273\"}.fa-calendar-week:before{content:\"\\f784\"}.fa-camera:before{content:\"\\f030\"}.fa-camera-retro:before{content:\"\\f083\"}.fa-campground:before{content:\"\\f6bb\"}.fa-canadian-maple-leaf:before{content:\"\\f785\"}.fa-candy-cane:before{content:\"\\f786\"}.fa-cannabis:before{content:\"\\f55f\"}.fa-capsules:before{content:\"\\f46b\"}.fa-car:before{content:\"\\f1b9\"}.fa-car-alt:before{content:\"\\f5de\"}.fa-car-battery:before{content:\"\\f5df\"}.fa-car-crash:before{content:\"\\f5e1\"}.fa-car-side:before{content:\"\\f5e4\"}.fa-caravan:before{content:\"\\f8ff\"}.fa-caret-down:before{content:\"\\f0d7\"}.fa-caret-left:before{content:\"\\f0d9\"}.fa-caret-right:before{content:\"\\f0da\"}.fa-caret-square-down:before{content:\"\\f150\"}.fa-caret-square-left:before{content:\"\\f191\"}.fa-caret-square-right:before{content:\"\\f152\"}.fa-caret-square-up:before{content:\"\\f151\"}.fa-caret-up:before{content:\"\\f0d8\"}.fa-carrot:before{content:\"\\f787\"}.fa-cart-arrow-down:before{content:\"\\f218\"}.fa-cart-plus:before{content:\"\\f217\"}.fa-cash-register:before{content:\"\\f788\"}.fa-cat:before{content:\"\\f6be\"}.fa-cc-amazon-pay:before{content:\"\\f42d\"}.fa-cc-amex:before{content:\"\\f1f3\"}.fa-cc-apple-pay:before{content:\"\\f416\"}.fa-cc-diners-club:before{content:\"\\f24c\"}.fa-cc-discover:before{content:\"\\f1f2\"}.fa-cc-jcb:before{content:\"\\f24b\"}.fa-cc-mastercard:before{content:\"\\f1f1\"}.fa-cc-paypal:before{content:\"\\f1f4\"}.fa-cc-stripe:before{content:\"\\f1f5\"}.fa-cc-visa:before{content:\"\\f1f0\"}.fa-centercode:before{content:\"\\f380\"}.fa-centos:before{content:\"\\f789\"}.fa-certificate:before{content:\"\\f0a3\"}.fa-chair:before{content:\"\\f6c0\"}.fa-chalkboard:before{content:\"\\f51b\"}.fa-chalkboard-teacher:before{content:\"\\f51c\"}.fa-charging-station:before{content:\"\\f5e7\"}.fa-chart-area:before{content:\"\\f1fe\"}.fa-chart-bar:before{content:\"\\f080\"}.fa-chart-line:before{content:\"\\f201\"}.fa-chart-pie:before{content:\"\\f200\"}.fa-check:before{content:\"\\f00c\"}.fa-check-circle:before{content:\"\\f058\"}.fa-check-double:before{content:\"\\f560\"}.fa-check-square:before{content:\"\\f14a\"}.fa-cheese:before{content:\"\\f7ef\"}.fa-chess:before{content:\"\\f439\"}.fa-chess-bishop:before{content:\"\\f43a\"}.fa-chess-board:before{content:\"\\f43c\"}.fa-chess-king:before{content:\"\\f43f\"}.fa-chess-knight:before{content:\"\\f441\"}.fa-chess-pawn:before{content:\"\\f443\"}.fa-chess-queen:before{content:\"\\f445\"}.fa-chess-rook:before{content:\"\\f447\"}.fa-chevron-circle-down:before{content:\"\\f13a\"}.fa-chevron-circle-left:before{content:\"\\f137\"}.fa-chevron-circle-right:before{content:\"\\f138\"}.fa-chevron-circle-up:before{content:\"\\f139\"}.fa-chevron-down:before{content:\"\\f078\"}.fa-chevron-left:before{content:\"\\f053\"}.fa-chevron-right:before{content:\"\\f054\"}.fa-chevron-up:before{content:\"\\f077\"}.fa-child:before{content:\"\\f1ae\"}.fa-chrome:before{content:\"\\f268\"}.fa-chromecast:before{content:\"\\f838\"}.fa-church:before{content:\"\\f51d\"}.fa-circle:before{content:\"\\f111\"}.fa-circle-notch:before{content:\"\\f1ce\"}.fa-city:before{content:\"\\f64f\"}.fa-clinic-medical:before{content:\"\\f7f2\"}.fa-clipboard:before{content:\"\\f328\"}.fa-clipboard-check:before{content:\"\\f46c\"}.fa-clipboard-list:before{content:\"\\f46d\"}.fa-clock:before{content:\"\\f017\"}.fa-clone:before{content:\"\\f24d\"}.fa-closed-captioning:before{content:\"\\f20a\"}.fa-cloud:before{content:\"\\f0c2\"}.fa-cloud-download-alt:before{content:\"\\f381\"}.fa-cloud-meatball:before{content:\"\\f73b\"}.fa-cloud-moon:before{content:\"\\f6c3\"}.fa-cloud-moon-rain:before{content:\"\\f73c\"}.fa-cloud-rain:before{content:\"\\f73d\"}.fa-cloud-showers-heavy:before{content:\"\\f740\"}.fa-cloud-sun:before{content:\"\\f6c4\"}.fa-cloud-sun-rain:before{content:\"\\f743\"}.fa-cloud-upload-alt:before{content:\"\\f382\"}.fa-cloudscale:before{content:\"\\f383\"}.fa-cloudsmith:before{content:\"\\f384\"}.fa-cloudversify:before{content:\"\\f385\"}.fa-cocktail:before{content:\"\\f561\"}.fa-code:before{content:\"\\f121\"}.fa-code-branch:before{content:\"\\f126\"}.fa-codepen:before{content:\"\\f1cb\"}.fa-codiepie:before{content:\"\\f284\"}.fa-coffee:before{content:\"\\f0f4\"}.fa-cog:before{content:\"\\f013\"}.fa-cogs:before{content:\"\\f085\"}.fa-coins:before{content:\"\\f51e\"}.fa-columns:before{content:\"\\f0db\"}.fa-comment:before{content:\"\\f075\"}.fa-comment-alt:before{content:\"\\f27a\"}.fa-comment-dollar:before{content:\"\\f651\"}.fa-comment-dots:before{content:\"\\f4ad\"}.fa-comment-medical:before{content:\"\\f7f5\"}.fa-comment-slash:before{content:\"\\f4b3\"}.fa-comments:before{content:\"\\f086\"}.fa-comments-dollar:before{content:\"\\f653\"}.fa-compact-disc:before{content:\"\\f51f\"}.fa-compass:before{content:\"\\f14e\"}.fa-compress:before{content:\"\\f066\"}.fa-compress-alt:before{content:\"\\f422\"}.fa-compress-arrows-alt:before{content:\"\\f78c\"}.fa-concierge-bell:before{content:\"\\f562\"}.fa-confluence:before{content:\"\\f78d\"}.fa-connectdevelop:before{content:\"\\f20e\"}.fa-contao:before{content:\"\\f26d\"}.fa-cookie:before{content:\"\\f563\"}.fa-cookie-bite:before{content:\"\\f564\"}.fa-copy:before{content:\"\\f0c5\"}.fa-copyright:before{content:\"\\f1f9\"}.fa-cotton-bureau:before{content:\"\\f89e\"}.fa-couch:before{content:\"\\f4b8\"}.fa-cpanel:before{content:\"\\f388\"}.fa-creative-commons:before{content:\"\\f25e\"}.fa-creative-commons-by:before{content:\"\\f4e7\"}.fa-creative-commons-nc:before{content:\"\\f4e8\"}.fa-creative-commons-nc-eu:before{content:\"\\f4e9\"}.fa-creative-commons-nc-jp:before{content:\"\\f4ea\"}.fa-creative-commons-nd:before{content:\"\\f4eb\"}.fa-creative-commons-pd:before{content:\"\\f4ec\"}.fa-creative-commons-pd-alt:before{content:\"\\f4ed\"}.fa-creative-commons-remix:before{content:\"\\f4ee\"}.fa-creative-commons-sa:before{content:\"\\f4ef\"}.fa-creative-commons-sampling:before{content:\"\\f4f0\"}.fa-creative-commons-sampling-plus:before{content:\"\\f4f1\"}.fa-creative-commons-share:before{content:\"\\f4f2\"}.fa-creative-commons-zero:before{content:\"\\f4f3\"}.fa-credit-card:before{content:\"\\f09d\"}.fa-critical-role:before{content:\"\\f6c9\"}.fa-crop:before{content:\"\\f125\"}.fa-crop-alt:before{content:\"\\f565\"}.fa-cross:before{content:\"\\f654\"}.fa-crosshairs:before{content:\"\\f05b\"}.fa-crow:before{content:\"\\f520\"}.fa-crown:before{content:\"\\f521\"}.fa-crutch:before{content:\"\\f7f7\"}.fa-css3:before{content:\"\\f13c\"}.fa-css3-alt:before{content:\"\\f38b\"}.fa-cube:before{content:\"\\f1b2\"}.fa-cubes:before{content:\"\\f1b3\"}.fa-cut:before{content:\"\\f0c4\"}.fa-cuttlefish:before{content:\"\\f38c\"}.fa-d-and-d:before{content:\"\\f38d\"}.fa-d-and-d-beyond:before{content:\"\\f6ca\"}.fa-dailymotion:before{content:\"\\f952\"}.fa-dashcube:before{content:\"\\f210\"}.fa-database:before{content:\"\\f1c0\"}.fa-deaf:before{content:\"\\f2a4\"}.fa-delicious:before{content:\"\\f1a5\"}.fa-democrat:before{content:\"\\f747\"}.fa-deploydog:before{content:\"\\f38e\"}.fa-deskpro:before{content:\"\\f38f\"}.fa-desktop:before{content:\"\\f108\"}.fa-dev:before{content:\"\\f6cc\"}.fa-deviantart:before{content:\"\\f1bd\"}.fa-dharmachakra:before{content:\"\\f655\"}.fa-dhl:before{content:\"\\f790\"}.fa-diagnoses:before{content:\"\\f470\"}.fa-diaspora:before{content:\"\\f791\"}.fa-dice:before{content:\"\\f522\"}.fa-dice-d20:before{content:\"\\f6cf\"}.fa-dice-d6:before{content:\"\\f6d1\"}.fa-dice-five:before{content:\"\\f523\"}.fa-dice-four:before{content:\"\\f524\"}.fa-dice-one:before{content:\"\\f525\"}.fa-dice-six:before{content:\"\\f526\"}.fa-dice-three:before{content:\"\\f527\"}.fa-dice-two:before{content:\"\\f528\"}.fa-digg:before{content:\"\\f1a6\"}.fa-digital-ocean:before{content:\"\\f391\"}.fa-digital-tachograph:before{content:\"\\f566\"}.fa-directions:before{content:\"\\f5eb\"}.fa-discord:before{content:\"\\f392\"}.fa-discourse:before{content:\"\\f393\"}.fa-divide:before{content:\"\\f529\"}.fa-dizzy:before{content:\"\\f567\"}.fa-dna:before{content:\"\\f471\"}.fa-dochub:before{content:\"\\f394\"}.fa-docker:before{content:\"\\f395\"}.fa-dog:before{content:\"\\f6d3\"}.fa-dollar-sign:before{content:\"\\f155\"}.fa-dolly:before{content:\"\\f472\"}.fa-dolly-flatbed:before{content:\"\\f474\"}.fa-donate:before{content:\"\\f4b9\"}.fa-door-closed:before{content:\"\\f52a\"}.fa-door-open:before{content:\"\\f52b\"}.fa-dot-circle:before{content:\"\\f192\"}.fa-dove:before{content:\"\\f4ba\"}.fa-download:before{content:\"\\f019\"}.fa-draft2digital:before{content:\"\\f396\"}.fa-drafting-compass:before{content:\"\\f568\"}.fa-dragon:before{content:\"\\f6d5\"}.fa-draw-polygon:before{content:\"\\f5ee\"}.fa-dribbble:before{content:\"\\f17d\"}.fa-dribbble-square:before{content:\"\\f397\"}.fa-dropbox:before{content:\"\\f16b\"}.fa-drum:before{content:\"\\f569\"}.fa-drum-steelpan:before{content:\"\\f56a\"}.fa-drumstick-bite:before{content:\"\\f6d7\"}.fa-drupal:before{content:\"\\f1a9\"}.fa-dumbbell:before{content:\"\\f44b\"}.fa-dumpster:before{content:\"\\f793\"}.fa-dumpster-fire:before{content:\"\\f794\"}.fa-dungeon:before{content:\"\\f6d9\"}.fa-dyalog:before{content:\"\\f399\"}.fa-earlybirds:before{content:\"\\f39a\"}.fa-ebay:before{content:\"\\f4f4\"}.fa-edge:before{content:\"\\f282\"}.fa-edit:before{content:\"\\f044\"}.fa-egg:before{content:\"\\f7fb\"}.fa-eject:before{content:\"\\f052\"}.fa-elementor:before{content:\"\\f430\"}.fa-ellipsis-h:before{content:\"\\f141\"}.fa-ellipsis-v:before{content:\"\\f142\"}.fa-ello:before{content:\"\\f5f1\"}.fa-ember:before{content:\"\\f423\"}.fa-empire:before{content:\"\\f1d1\"}.fa-envelope:before{content:\"\\f0e0\"}.fa-envelope-open:before{content:\"\\f2b6\"}.fa-envelope-open-text:before{content:\"\\f658\"}.fa-envelope-square:before{content:\"\\f199\"}.fa-envira:before{content:\"\\f299\"}.fa-equals:before{content:\"\\f52c\"}.fa-eraser:before{content:\"\\f12d\"}.fa-erlang:before{content:\"\\f39d\"}.fa-ethereum:before{content:\"\\f42e\"}.fa-ethernet:before{content:\"\\f796\"}.fa-etsy:before{content:\"\\f2d7\"}.fa-euro-sign:before{content:\"\\f153\"}.fa-evernote:before{content:\"\\f839\"}.fa-exchange-alt:before{content:\"\\f362\"}.fa-exclamation:before{content:\"\\f12a\"}.fa-exclamation-circle:before{content:\"\\f06a\"}.fa-exclamation-triangle:before{content:\"\\f071\"}.fa-expand:before{content:\"\\f065\"}.fa-expand-alt:before{content:\"\\f424\"}.fa-expand-arrows-alt:before{content:\"\\f31e\"}.fa-expeditedssl:before{content:\"\\f23e\"}.fa-external-link-alt:before{content:\"\\f35d\"}.fa-external-link-square-alt:before{content:\"\\f360\"}.fa-eye:before{content:\"\\f06e\"}.fa-eye-dropper:before{content:\"\\f1fb\"}.fa-eye-slash:before{content:\"\\f070\"}.fa-facebook:before{content:\"\\f09a\"}.fa-facebook-f:before{content:\"\\f39e\"}.fa-facebook-messenger:before{content:\"\\f39f\"}.fa-facebook-square:before{content:\"\\f082\"}.fa-fan:before{content:\"\\f863\"}.fa-fantasy-flight-games:before{content:\"\\f6dc\"}.fa-fast-backward:before{content:\"\\f049\"}.fa-fast-forward:before{content:\"\\f050\"}.fa-fax:before{content:\"\\f1ac\"}.fa-feather:before{content:\"\\f52d\"}.fa-feather-alt:before{content:\"\\f56b\"}.fa-fedex:before{content:\"\\f797\"}.fa-fedora:before{content:\"\\f798\"}.fa-female:before{content:\"\\f182\"}.fa-fighter-jet:before{content:\"\\f0fb\"}.fa-figma:before{content:\"\\f799\"}.fa-file:before{content:\"\\f15b\"}.fa-file-alt:before{content:\"\\f15c\"}.fa-file-archive:before{content:\"\\f1c6\"}.fa-file-audio:before{content:\"\\f1c7\"}.fa-file-code:before{content:\"\\f1c9\"}.fa-file-contract:before{content:\"\\f56c\"}.fa-file-csv:before{content:\"\\f6dd\"}.fa-file-download:before{content:\"\\f56d\"}.fa-file-excel:before{content:\"\\f1c3\"}.fa-file-export:before{content:\"\\f56e\"}.fa-file-image:before{content:\"\\f1c5\"}.fa-file-import:before{content:\"\\f56f\"}.fa-file-invoice:before{content:\"\\f570\"}.fa-file-invoice-dollar:before{content:\"\\f571\"}.fa-file-medical:before{content:\"\\f477\"}.fa-file-medical-alt:before{content:\"\\f478\"}.fa-file-pdf:before{content:\"\\f1c1\"}.fa-file-powerpoint:before{content:\"\\f1c4\"}.fa-file-prescription:before{content:\"\\f572\"}.fa-file-signature:before{content:\"\\f573\"}.fa-file-upload:before{content:\"\\f574\"}.fa-file-video:before{content:\"\\f1c8\"}.fa-file-word:before{content:\"\\f1c2\"}.fa-fill:before{content:\"\\f575\"}.fa-fill-drip:before{content:\"\\f576\"}.fa-film:before{content:\"\\f008\"}.fa-filter:before{content:\"\\f0b0\"}.fa-fingerprint:before{content:\"\\f577\"}.fa-fire:before{content:\"\\f06d\"}.fa-fire-alt:before{content:\"\\f7e4\"}.fa-fire-extinguisher:before{content:\"\\f134\"}.fa-firefox:before{content:\"\\f269\"}.fa-firefox-browser:before{content:\"\\f907\"}.fa-first-aid:before{content:\"\\f479\"}.fa-first-order:before{content:\"\\f2b0\"}.fa-first-order-alt:before{content:\"\\f50a\"}.fa-firstdraft:before{content:\"\\f3a1\"}.fa-fish:before{content:\"\\f578\"}.fa-fist-raised:before{content:\"\\f6de\"}.fa-flag:before{content:\"\\f024\"}.fa-flag-checkered:before{content:\"\\f11e\"}.fa-flag-usa:before{content:\"\\f74d\"}.fa-flask:before{content:\"\\f0c3\"}.fa-flickr:before{content:\"\\f16e\"}.fa-flipboard:before{content:\"\\f44d\"}.fa-flushed:before{content:\"\\f579\"}.fa-fly:before{content:\"\\f417\"}.fa-folder:before{content:\"\\f07b\"}.fa-folder-minus:before{content:\"\\f65d\"}.fa-folder-open:before{content:\"\\f07c\"}.fa-folder-plus:before{content:\"\\f65e\"}.fa-font:before{content:\"\\f031\"}.fa-font-awesome:before{content:\"\\f2b4\"}.fa-font-awesome-alt:before{content:\"\\f35c\"}.fa-font-awesome-flag:before{content:\"\\f425\"}.fa-font-awesome-logo-full:before{content:\"\\f4e6\"}.fa-fonticons:before{content:\"\\f280\"}.fa-fonticons-fi:before{content:\"\\f3a2\"}.fa-football-ball:before{content:\"\\f44e\"}.fa-fort-awesome:before{content:\"\\f286\"}.fa-fort-awesome-alt:before{content:\"\\f3a3\"}.fa-forumbee:before{content:\"\\f211\"}.fa-forward:before{content:\"\\f04e\"}.fa-foursquare:before{content:\"\\f180\"}.fa-free-code-camp:before{content:\"\\f2c5\"}.fa-freebsd:before{content:\"\\f3a4\"}.fa-frog:before{content:\"\\f52e\"}.fa-frown:before{content:\"\\f119\"}.fa-frown-open:before{content:\"\\f57a\"}.fa-fulcrum:before{content:\"\\f50b\"}.fa-funnel-dollar:before{content:\"\\f662\"}.fa-futbol:before{content:\"\\f1e3\"}.fa-galactic-republic:before{content:\"\\f50c\"}.fa-galactic-senate:before{content:\"\\f50d\"}.fa-gamepad:before{content:\"\\f11b\"}.fa-gas-pump:before{content:\"\\f52f\"}.fa-gavel:before{content:\"\\f0e3\"}.fa-gem:before{content:\"\\f3a5\"}.fa-genderless:before{content:\"\\f22d\"}.fa-get-pocket:before{content:\"\\f265\"}.fa-gg:before{content:\"\\f260\"}.fa-gg-circle:before{content:\"\\f261\"}.fa-ghost:before{content:\"\\f6e2\"}.fa-gift:before{content:\"\\f06b\"}.fa-gifts:before{content:\"\\f79c\"}.fa-git:before{content:\"\\f1d3\"}.fa-git-alt:before{content:\"\\f841\"}.fa-git-square:before{content:\"\\f1d2\"}.fa-github:before{content:\"\\f09b\"}.fa-github-alt:before{content:\"\\f113\"}.fa-github-square:before{content:\"\\f092\"}.fa-gitkraken:before{content:\"\\f3a6\"}.fa-gitlab:before{content:\"\\f296\"}.fa-gitter:before{content:\"\\f426\"}.fa-glass-cheers:before{content:\"\\f79f\"}.fa-glass-martini:before{content:\"\\f000\"}.fa-glass-martini-alt:before{content:\"\\f57b\"}.fa-glass-whiskey:before{content:\"\\f7a0\"}.fa-glasses:before{content:\"\\f530\"}.fa-glide:before{content:\"\\f2a5\"}.fa-glide-g:before{content:\"\\f2a6\"}.fa-globe:before{content:\"\\f0ac\"}.fa-globe-africa:before{content:\"\\f57c\"}.fa-globe-americas:before{content:\"\\f57d\"}.fa-globe-asia:before{content:\"\\f57e\"}.fa-globe-europe:before{content:\"\\f7a2\"}.fa-gofore:before{content:\"\\f3a7\"}.fa-golf-ball:before{content:\"\\f450\"}.fa-goodreads:before{content:\"\\f3a8\"}.fa-goodreads-g:before{content:\"\\f3a9\"}.fa-google:before{content:\"\\f1a0\"}.fa-google-drive:before{content:\"\\f3aa\"}.fa-google-play:before{content:\"\\f3ab\"}.fa-google-plus:before{content:\"\\f2b3\"}.fa-google-plus-g:before{content:\"\\f0d5\"}.fa-google-plus-square:before{content:\"\\f0d4\"}.fa-google-wallet:before{content:\"\\f1ee\"}.fa-gopuram:before{content:\"\\f664\"}.fa-graduation-cap:before{content:\"\\f19d\"}.fa-gratipay:before{content:\"\\f184\"}.fa-grav:before{content:\"\\f2d6\"}.fa-greater-than:before{content:\"\\f531\"}.fa-greater-than-equal:before{content:\"\\f532\"}.fa-grimace:before{content:\"\\f57f\"}.fa-grin:before{content:\"\\f580\"}.fa-grin-alt:before{content:\"\\f581\"}.fa-grin-beam:before{content:\"\\f582\"}.fa-grin-beam-sweat:before{content:\"\\f583\"}.fa-grin-hearts:before{content:\"\\f584\"}.fa-grin-squint:before{content:\"\\f585\"}.fa-grin-squint-tears:before{content:\"\\f586\"}.fa-grin-stars:before{content:\"\\f587\"}.fa-grin-tears:before{content:\"\\f588\"}.fa-grin-tongue:before{content:\"\\f589\"}.fa-grin-tongue-squint:before{content:\"\\f58a\"}.fa-grin-tongue-wink:before{content:\"\\f58b\"}.fa-grin-wink:before{content:\"\\f58c\"}.fa-grip-horizontal:before{content:\"\\f58d\"}.fa-grip-lines:before{content:\"\\f7a4\"}.fa-grip-lines-vertical:before{content:\"\\f7a5\"}.fa-grip-vertical:before{content:\"\\f58e\"}.fa-gripfire:before{content:\"\\f3ac\"}.fa-grunt:before{content:\"\\f3ad\"}.fa-guitar:before{content:\"\\f7a6\"}.fa-gulp:before{content:\"\\f3ae\"}.fa-h-square:before{content:\"\\f0fd\"}.fa-hacker-news:before{content:\"\\f1d4\"}.fa-hacker-news-square:before{content:\"\\f3af\"}.fa-hackerrank:before{content:\"\\f5f7\"}.fa-hamburger:before{content:\"\\f805\"}.fa-hammer:before{content:\"\\f6e3\"}.fa-hamsa:before{content:\"\\f665\"}.fa-hand-holding:before{content:\"\\f4bd\"}.fa-hand-holding-heart:before{content:\"\\f4be\"}.fa-hand-holding-usd:before{content:\"\\f4c0\"}.fa-hand-lizard:before{content:\"\\f258\"}.fa-hand-middle-finger:before{content:\"\\f806\"}.fa-hand-paper:before{content:\"\\f256\"}.fa-hand-peace:before{content:\"\\f25b\"}.fa-hand-point-down:before{content:\"\\f0a7\"}.fa-hand-point-left:before{content:\"\\f0a5\"}.fa-hand-point-right:before{content:\"\\f0a4\"}.fa-hand-point-up:before{content:\"\\f0a6\"}.fa-hand-pointer:before{content:\"\\f25a\"}.fa-hand-rock:before{content:\"\\f255\"}.fa-hand-scissors:before{content:\"\\f257\"}.fa-hand-spock:before{content:\"\\f259\"}.fa-hands:before{content:\"\\f4c2\"}.fa-hands-helping:before{content:\"\\f4c4\"}.fa-handshake:before{content:\"\\f2b5\"}.fa-hanukiah:before{content:\"\\f6e6\"}.fa-hard-hat:before{content:\"\\f807\"}.fa-hashtag:before{content:\"\\f292\"}.fa-hat-cowboy:before{content:\"\\f8c0\"}.fa-hat-cowboy-side:before{content:\"\\f8c1\"}.fa-hat-wizard:before{content:\"\\f6e8\"}.fa-hdd:before{content:\"\\f0a0\"}.fa-heading:before{content:\"\\f1dc\"}.fa-headphones:before{content:\"\\f025\"}.fa-headphones-alt:before{content:\"\\f58f\"}.fa-headset:before{content:\"\\f590\"}.fa-heart:before{content:\"\\f004\"}.fa-heart-broken:before{content:\"\\f7a9\"}.fa-heartbeat:before{content:\"\\f21e\"}.fa-helicopter:before{content:\"\\f533\"}.fa-highlighter:before{content:\"\\f591\"}.fa-hiking:before{content:\"\\f6ec\"}.fa-hippo:before{content:\"\\f6ed\"}.fa-hips:before{content:\"\\f452\"}.fa-hire-a-helper:before{content:\"\\f3b0\"}.fa-history:before{content:\"\\f1da\"}.fa-hockey-puck:before{content:\"\\f453\"}.fa-holly-berry:before{content:\"\\f7aa\"}.fa-home:before{content:\"\\f015\"}.fa-hooli:before{content:\"\\f427\"}.fa-hornbill:before{content:\"\\f592\"}.fa-horse:before{content:\"\\f6f0\"}.fa-horse-head:before{content:\"\\f7ab\"}.fa-hospital:before{content:\"\\f0f8\"}.fa-hospital-alt:before{content:\"\\f47d\"}.fa-hospital-symbol:before{content:\"\\f47e\"}.fa-hot-tub:before{content:\"\\f593\"}.fa-hotdog:before{content:\"\\f80f\"}.fa-hotel:before{content:\"\\f594\"}.fa-hotjar:before{content:\"\\f3b1\"}.fa-hourglass:before{content:\"\\f254\"}.fa-hourglass-end:before{content:\"\\f253\"}.fa-hourglass-half:before{content:\"\\f252\"}.fa-hourglass-start:before{content:\"\\f251\"}.fa-house-damage:before{content:\"\\f6f1\"}.fa-houzz:before{content:\"\\f27c\"}.fa-hryvnia:before{content:\"\\f6f2\"}.fa-html5:before{content:\"\\f13b\"}.fa-hubspot:before{content:\"\\f3b2\"}.fa-i-cursor:before{content:\"\\f246\"}.fa-ice-cream:before{content:\"\\f810\"}.fa-icicles:before{content:\"\\f7ad\"}.fa-icons:before{content:\"\\f86d\"}.fa-id-badge:before{content:\"\\f2c1\"}.fa-id-card:before{content:\"\\f2c2\"}.fa-id-card-alt:before{content:\"\\f47f\"}.fa-ideal:before{content:\"\\f913\"}.fa-igloo:before{content:\"\\f7ae\"}.fa-image:before{content:\"\\f03e\"}.fa-images:before{content:\"\\f302\"}.fa-imdb:before{content:\"\\f2d8\"}.fa-inbox:before{content:\"\\f01c\"}.fa-indent:before{content:\"\\f03c\"}.fa-industry:before{content:\"\\f275\"}.fa-infinity:before{content:\"\\f534\"}.fa-info:before{content:\"\\f129\"}.fa-info-circle:before{content:\"\\f05a\"}.fa-instagram:before{content:\"\\f16d\"}.fa-instagram-square:before{content:\"\\f955\"}.fa-intercom:before{content:\"\\f7af\"}.fa-internet-explorer:before{content:\"\\f26b\"}.fa-invision:before{content:\"\\f7b0\"}.fa-ioxhost:before{content:\"\\f208\"}.fa-italic:before{content:\"\\f033\"}.fa-itch-io:before{content:\"\\f83a\"}.fa-itunes:before{content:\"\\f3b4\"}.fa-itunes-note:before{content:\"\\f3b5\"}.fa-java:before{content:\"\\f4e4\"}.fa-jedi:before{content:\"\\f669\"}.fa-jedi-order:before{content:\"\\f50e\"}.fa-jenkins:before{content:\"\\f3b6\"}.fa-jira:before{content:\"\\f7b1\"}.fa-joget:before{content:\"\\f3b7\"}.fa-joint:before{content:\"\\f595\"}.fa-joomla:before{content:\"\\f1aa\"}.fa-journal-whills:before{content:\"\\f66a\"}.fa-js:before{content:\"\\f3b8\"}.fa-js-square:before{content:\"\\f3b9\"}.fa-jsfiddle:before{content:\"\\f1cc\"}.fa-kaaba:before{content:\"\\f66b\"}.fa-kaggle:before{content:\"\\f5fa\"}.fa-key:before{content:\"\\f084\"}.fa-keybase:before{content:\"\\f4f5\"}.fa-keyboard:before{content:\"\\f11c\"}.fa-keycdn:before{content:\"\\f3ba\"}.fa-khanda:before{content:\"\\f66d\"}.fa-kickstarter:before{content:\"\\f3bb\"}.fa-kickstarter-k:before{content:\"\\f3bc\"}.fa-kiss:before{content:\"\\f596\"}.fa-kiss-beam:before{content:\"\\f597\"}.fa-kiss-wink-heart:before{content:\"\\f598\"}.fa-kiwi-bird:before{content:\"\\f535\"}.fa-korvue:before{content:\"\\f42f\"}.fa-landmark:before{content:\"\\f66f\"}.fa-language:before{content:\"\\f1ab\"}.fa-laptop:before{content:\"\\f109\"}.fa-laptop-code:before{content:\"\\f5fc\"}.fa-laptop-medical:before{content:\"\\f812\"}.fa-laravel:before{content:\"\\f3bd\"}.fa-lastfm:before{content:\"\\f202\"}.fa-lastfm-square:before{content:\"\\f203\"}.fa-laugh:before{content:\"\\f599\"}.fa-laugh-beam:before{content:\"\\f59a\"}.fa-laugh-squint:before{content:\"\\f59b\"}.fa-laugh-wink:before{content:\"\\f59c\"}.fa-layer-group:before{content:\"\\f5fd\"}.fa-leaf:before{content:\"\\f06c\"}.fa-leanpub:before{content:\"\\f212\"}.fa-lemon:before{content:\"\\f094\"}.fa-less:before{content:\"\\f41d\"}.fa-less-than:before{content:\"\\f536\"}.fa-less-than-equal:before{content:\"\\f537\"}.fa-level-down-alt:before{content:\"\\f3be\"}.fa-level-up-alt:before{content:\"\\f3bf\"}.fa-life-ring:before{content:\"\\f1cd\"}.fa-lightbulb:before{content:\"\\f0eb\"}.fa-line:before{content:\"\\f3c0\"}.fa-link:before{content:\"\\f0c1\"}.fa-linkedin:before{content:\"\\f08c\"}.fa-linkedin-in:before{content:\"\\f0e1\"}.fa-linode:before{content:\"\\f2b8\"}.fa-linux:before{content:\"\\f17c\"}.fa-lira-sign:before{content:\"\\f195\"}.fa-list:before{content:\"\\f03a\"}.fa-list-alt:before{content:\"\\f022\"}.fa-list-ol:before{content:\"\\f0cb\"}.fa-list-ul:before{content:\"\\f0ca\"}.fa-location-arrow:before{content:\"\\f124\"}.fa-lock:before{content:\"\\f023\"}.fa-lock-open:before{content:\"\\f3c1\"}.fa-long-arrow-alt-down:before{content:\"\\f309\"}.fa-long-arrow-alt-left:before{content:\"\\f30a\"}.fa-long-arrow-alt-right:before{content:\"\\f30b\"}.fa-long-arrow-alt-up:before{content:\"\\f30c\"}.fa-low-vision:before{content:\"\\f2a8\"}.fa-luggage-cart:before{content:\"\\f59d\"}.fa-lyft:before{content:\"\\f3c3\"}.fa-magento:before{content:\"\\f3c4\"}.fa-magic:before{content:\"\\f0d0\"}.fa-magnet:before{content:\"\\f076\"}.fa-mail-bulk:before{content:\"\\f674\"}.fa-mailchimp:before{content:\"\\f59e\"}.fa-male:before{content:\"\\f183\"}.fa-mandalorian:before{content:\"\\f50f\"}.fa-map:before{content:\"\\f279\"}.fa-map-marked:before{content:\"\\f59f\"}.fa-map-marked-alt:before{content:\"\\f5a0\"}.fa-map-marker:before{content:\"\\f041\"}.fa-map-marker-alt:before{content:\"\\f3c5\"}.fa-map-pin:before{content:\"\\f276\"}.fa-map-signs:before{content:\"\\f277\"}.fa-markdown:before{content:\"\\f60f\"}.fa-marker:before{content:\"\\f5a1\"}.fa-mars:before{content:\"\\f222\"}.fa-mars-double:before{content:\"\\f227\"}.fa-mars-stroke:before{content:\"\\f229\"}.fa-mars-stroke-h:before{content:\"\\f22b\"}.fa-mars-stroke-v:before{content:\"\\f22a\"}.fa-mask:before{content:\"\\f6fa\"}.fa-mastodon:before{content:\"\\f4f6\"}.fa-maxcdn:before{content:\"\\f136\"}.fa-mdb:before{content:\"\\f8ca\"}.fa-medal:before{content:\"\\f5a2\"}.fa-medapps:before{content:\"\\f3c6\"}.fa-medium:before{content:\"\\f23a\"}.fa-medium-m:before{content:\"\\f3c7\"}.fa-medkit:before{content:\"\\f0fa\"}.fa-medrt:before{content:\"\\f3c8\"}.fa-meetup:before{content:\"\\f2e0\"}.fa-megaport:before{content:\"\\f5a3\"}.fa-meh:before{content:\"\\f11a\"}.fa-meh-blank:before{content:\"\\f5a4\"}.fa-meh-rolling-eyes:before{content:\"\\f5a5\"}.fa-memory:before{content:\"\\f538\"}.fa-mendeley:before{content:\"\\f7b3\"}.fa-menorah:before{content:\"\\f676\"}.fa-mercury:before{content:\"\\f223\"}.fa-meteor:before{content:\"\\f753\"}.fa-microblog:before{content:\"\\f91a\"}.fa-microchip:before{content:\"\\f2db\"}.fa-microphone:before{content:\"\\f130\"}.fa-microphone-alt:before{content:\"\\f3c9\"}.fa-microphone-alt-slash:before{content:\"\\f539\"}.fa-microphone-slash:before{content:\"\\f131\"}.fa-microscope:before{content:\"\\f610\"}.fa-microsoft:before{content:\"\\f3ca\"}.fa-minus:before{content:\"\\f068\"}.fa-minus-circle:before{content:\"\\f056\"}.fa-minus-square:before{content:\"\\f146\"}.fa-mitten:before{content:\"\\f7b5\"}.fa-mix:before{content:\"\\f3cb\"}.fa-mixcloud:before{content:\"\\f289\"}.fa-mixer:before{content:\"\\f956\"}.fa-mizuni:before{content:\"\\f3cc\"}.fa-mobile:before{content:\"\\f10b\"}.fa-mobile-alt:before{content:\"\\f3cd\"}.fa-modx:before{content:\"\\f285\"}.fa-monero:before{content:\"\\f3d0\"}.fa-money-bill:before{content:\"\\f0d6\"}.fa-money-bill-alt:before{content:\"\\f3d1\"}.fa-money-bill-wave:before{content:\"\\f53a\"}.fa-money-bill-wave-alt:before{content:\"\\f53b\"}.fa-money-check:before{content:\"\\f53c\"}.fa-money-check-alt:before{content:\"\\f53d\"}.fa-monument:before{content:\"\\f5a6\"}.fa-moon:before{content:\"\\f186\"}.fa-mortar-pestle:before{content:\"\\f5a7\"}.fa-mosque:before{content:\"\\f678\"}.fa-motorcycle:before{content:\"\\f21c\"}.fa-mountain:before{content:\"\\f6fc\"}.fa-mouse:before{content:\"\\f8cc\"}.fa-mouse-pointer:before{content:\"\\f245\"}.fa-mug-hot:before{content:\"\\f7b6\"}.fa-music:before{content:\"\\f001\"}.fa-napster:before{content:\"\\f3d2\"}.fa-neos:before{content:\"\\f612\"}.fa-network-wired:before{content:\"\\f6ff\"}.fa-neuter:before{content:\"\\f22c\"}.fa-newspaper:before{content:\"\\f1ea\"}.fa-nimblr:before{content:\"\\f5a8\"}.fa-node:before{content:\"\\f419\"}.fa-node-js:before{content:\"\\f3d3\"}.fa-not-equal:before{content:\"\\f53e\"}.fa-notes-medical:before{content:\"\\f481\"}.fa-npm:before{content:\"\\f3d4\"}.fa-ns8:before{content:\"\\f3d5\"}.fa-nutritionix:before{content:\"\\f3d6\"}.fa-object-group:before{content:\"\\f247\"}.fa-object-ungroup:before{content:\"\\f248\"}.fa-odnoklassniki:before{content:\"\\f263\"}.fa-odnoklassniki-square:before{content:\"\\f264\"}.fa-oil-can:before{content:\"\\f613\"}.fa-old-republic:before{content:\"\\f510\"}.fa-om:before{content:\"\\f679\"}.fa-opencart:before{content:\"\\f23d\"}.fa-openid:before{content:\"\\f19b\"}.fa-opera:before{content:\"\\f26a\"}.fa-optin-monster:before{content:\"\\f23c\"}.fa-orcid:before{content:\"\\f8d2\"}.fa-osi:before{content:\"\\f41a\"}.fa-otter:before{content:\"\\f700\"}.fa-outdent:before{content:\"\\f03b\"}.fa-page4:before{content:\"\\f3d7\"}.fa-pagelines:before{content:\"\\f18c\"}.fa-pager:before{content:\"\\f815\"}.fa-paint-brush:before{content:\"\\f1fc\"}.fa-paint-roller:before{content:\"\\f5aa\"}.fa-palette:before{content:\"\\f53f\"}.fa-palfed:before{content:\"\\f3d8\"}.fa-pallet:before{content:\"\\f482\"}.fa-paper-plane:before{content:\"\\f1d8\"}.fa-paperclip:before{content:\"\\f0c6\"}.fa-parachute-box:before{content:\"\\f4cd\"}.fa-paragraph:before{content:\"\\f1dd\"}.fa-parking:before{content:\"\\f540\"}.fa-passport:before{content:\"\\f5ab\"}.fa-pastafarianism:before{content:\"\\f67b\"}.fa-paste:before{content:\"\\f0ea\"}.fa-patreon:before{content:\"\\f3d9\"}.fa-pause:before{content:\"\\f04c\"}.fa-pause-circle:before{content:\"\\f28b\"}.fa-paw:before{content:\"\\f1b0\"}.fa-paypal:before{content:\"\\f1ed\"}.fa-peace:before{content:\"\\f67c\"}.fa-pen:before{content:\"\\f304\"}.fa-pen-alt:before{content:\"\\f305\"}.fa-pen-fancy:before{content:\"\\f5ac\"}.fa-pen-nib:before{content:\"\\f5ad\"}.fa-pen-square:before{content:\"\\f14b\"}.fa-pencil-alt:before{content:\"\\f303\"}.fa-pencil-ruler:before{content:\"\\f5ae\"}.fa-penny-arcade:before{content:\"\\f704\"}.fa-people-carry:before{content:\"\\f4ce\"}.fa-pepper-hot:before{content:\"\\f816\"}.fa-percent:before{content:\"\\f295\"}.fa-percentage:before{content:\"\\f541\"}.fa-periscope:before{content:\"\\f3da\"}.fa-person-booth:before{content:\"\\f756\"}.fa-phabricator:before{content:\"\\f3db\"}.fa-phoenix-framework:before{content:\"\\f3dc\"}.fa-phoenix-squadron:before{content:\"\\f511\"}.fa-phone:before{content:\"\\f095\"}.fa-phone-alt:before{content:\"\\f879\"}.fa-phone-slash:before{content:\"\\f3dd\"}.fa-phone-square:before{content:\"\\f098\"}.fa-phone-square-alt:before{content:\"\\f87b\"}.fa-phone-volume:before{content:\"\\f2a0\"}.fa-photo-video:before{content:\"\\f87c\"}.fa-php:before{content:\"\\f457\"}.fa-pied-piper:before{content:\"\\f2ae\"}.fa-pied-piper-alt:before{content:\"\\f1a8\"}.fa-pied-piper-hat:before{content:\"\\f4e5\"}.fa-pied-piper-pp:before{content:\"\\f1a7\"}.fa-pied-piper-square:before{content:\"\\f91e\"}.fa-piggy-bank:before{content:\"\\f4d3\"}.fa-pills:before{content:\"\\f484\"}.fa-pinterest:before{content:\"\\f0d2\"}.fa-pinterest-p:before{content:\"\\f231\"}.fa-pinterest-square:before{content:\"\\f0d3\"}.fa-pizza-slice:before{content:\"\\f818\"}.fa-place-of-worship:before{content:\"\\f67f\"}.fa-plane:before{content:\"\\f072\"}.fa-plane-arrival:before{content:\"\\f5af\"}.fa-plane-departure:before{content:\"\\f5b0\"}.fa-play:before{content:\"\\f04b\"}.fa-play-circle:before{content:\"\\f144\"}.fa-playstation:before{content:\"\\f3df\"}.fa-plug:before{content:\"\\f1e6\"}.fa-plus:before{content:\"\\f067\"}.fa-plus-circle:before{content:\"\\f055\"}.fa-plus-square:before{content:\"\\f0fe\"}.fa-podcast:before{content:\"\\f2ce\"}.fa-poll:before{content:\"\\f681\"}.fa-poll-h:before{content:\"\\f682\"}.fa-poo:before{content:\"\\f2fe\"}.fa-poo-storm:before{content:\"\\f75a\"}.fa-poop:before{content:\"\\f619\"}.fa-portrait:before{content:\"\\f3e0\"}.fa-pound-sign:before{content:\"\\f154\"}.fa-power-off:before{content:\"\\f011\"}.fa-pray:before{content:\"\\f683\"}.fa-praying-hands:before{content:\"\\f684\"}.fa-prescription:before{content:\"\\f5b1\"}.fa-prescription-bottle:before{content:\"\\f485\"}.fa-prescription-bottle-alt:before{content:\"\\f486\"}.fa-print:before{content:\"\\f02f\"}.fa-procedures:before{content:\"\\f487\"}.fa-product-hunt:before{content:\"\\f288\"}.fa-project-diagram:before{content:\"\\f542\"}.fa-pushed:before{content:\"\\f3e1\"}.fa-puzzle-piece:before{content:\"\\f12e\"}.fa-python:before{content:\"\\f3e2\"}.fa-qq:before{content:\"\\f1d6\"}.fa-qrcode:before{content:\"\\f029\"}.fa-question:before{content:\"\\f128\"}.fa-question-circle:before{content:\"\\f059\"}.fa-quidditch:before{content:\"\\f458\"}.fa-quinscape:before{content:\"\\f459\"}.fa-quora:before{content:\"\\f2c4\"}.fa-quote-left:before{content:\"\\f10d\"}.fa-quote-right:before{content:\"\\f10e\"}.fa-quran:before{content:\"\\f687\"}.fa-r-project:before{content:\"\\f4f7\"}.fa-radiation:before{content:\"\\f7b9\"}.fa-radiation-alt:before{content:\"\\f7ba\"}.fa-rainbow:before{content:\"\\f75b\"}.fa-random:before{content:\"\\f074\"}.fa-raspberry-pi:before{content:\"\\f7bb\"}.fa-ravelry:before{content:\"\\f2d9\"}.fa-react:before{content:\"\\f41b\"}.fa-reacteurope:before{content:\"\\f75d\"}.fa-readme:before{content:\"\\f4d5\"}.fa-rebel:before{content:\"\\f1d0\"}.fa-receipt:before{content:\"\\f543\"}.fa-record-vinyl:before{content:\"\\f8d9\"}.fa-recycle:before{content:\"\\f1b8\"}.fa-red-river:before{content:\"\\f3e3\"}.fa-reddit:before{content:\"\\f1a1\"}.fa-reddit-alien:before{content:\"\\f281\"}.fa-reddit-square:before{content:\"\\f1a2\"}.fa-redhat:before{content:\"\\f7bc\"}.fa-redo:before{content:\"\\f01e\"}.fa-redo-alt:before{content:\"\\f2f9\"}.fa-registered:before{content:\"\\f25d\"}.fa-remove-format:before{content:\"\\f87d\"}.fa-renren:before{content:\"\\f18b\"}.fa-reply:before{content:\"\\f3e5\"}.fa-reply-all:before{content:\"\\f122\"}.fa-replyd:before{content:\"\\f3e6\"}.fa-republican:before{content:\"\\f75e\"}.fa-researchgate:before{content:\"\\f4f8\"}.fa-resolving:before{content:\"\\f3e7\"}.fa-restroom:before{content:\"\\f7bd\"}.fa-retweet:before{content:\"\\f079\"}.fa-rev:before{content:\"\\f5b2\"}.fa-ribbon:before{content:\"\\f4d6\"}.fa-ring:before{content:\"\\f70b\"}.fa-road:before{content:\"\\f018\"}.fa-robot:before{content:\"\\f544\"}.fa-rocket:before{content:\"\\f135\"}.fa-rocketchat:before{content:\"\\f3e8\"}.fa-rockrms:before{content:\"\\f3e9\"}.fa-route:before{content:\"\\f4d7\"}.fa-rss:before{content:\"\\f09e\"}.fa-rss-square:before{content:\"\\f143\"}.fa-ruble-sign:before{content:\"\\f158\"}.fa-ruler:before{content:\"\\f545\"}.fa-ruler-combined:before{content:\"\\f546\"}.fa-ruler-horizontal:before{content:\"\\f547\"}.fa-ruler-vertical:before{content:\"\\f548\"}.fa-running:before{content:\"\\f70c\"}.fa-rupee-sign:before{content:\"\\f156\"}.fa-sad-cry:before{content:\"\\f5b3\"}.fa-sad-tear:before{content:\"\\f5b4\"}.fa-safari:before{content:\"\\f267\"}.fa-salesforce:before{content:\"\\f83b\"}.fa-sass:before{content:\"\\f41e\"}.fa-satellite:before{content:\"\\f7bf\"}.fa-satellite-dish:before{content:\"\\f7c0\"}.fa-save:before{content:\"\\f0c7\"}.fa-schlix:before{content:\"\\f3ea\"}.fa-school:before{content:\"\\f549\"}.fa-screwdriver:before{content:\"\\f54a\"}.fa-scribd:before{content:\"\\f28a\"}.fa-scroll:before{content:\"\\f70e\"}.fa-sd-card:before{content:\"\\f7c2\"}.fa-search:before{content:\"\\f002\"}.fa-search-dollar:before{content:\"\\f688\"}.fa-search-location:before{content:\"\\f689\"}.fa-search-minus:before{content:\"\\f010\"}.fa-search-plus:before{content:\"\\f00e\"}.fa-searchengin:before{content:\"\\f3eb\"}.fa-seedling:before{content:\"\\f4d8\"}.fa-sellcast:before{content:\"\\f2da\"}.fa-sellsy:before{content:\"\\f213\"}.fa-server:before{content:\"\\f233\"}.fa-servicestack:before{content:\"\\f3ec\"}.fa-shapes:before{content:\"\\f61f\"}.fa-share:before{content:\"\\f064\"}.fa-share-alt:before{content:\"\\f1e0\"}.fa-share-alt-square:before{content:\"\\f1e1\"}.fa-share-square:before{content:\"\\f14d\"}.fa-shekel-sign:before{content:\"\\f20b\"}.fa-shield-alt:before{content:\"\\f3ed\"}.fa-ship:before{content:\"\\f21a\"}.fa-shipping-fast:before{content:\"\\f48b\"}.fa-shirtsinbulk:before{content:\"\\f214\"}.fa-shoe-prints:before{content:\"\\f54b\"}.fa-shopify:before{content:\"\\f957\"}.fa-shopping-bag:before{content:\"\\f290\"}.fa-shopping-basket:before{content:\"\\f291\"}.fa-shopping-cart:before{content:\"\\f07a\"}.fa-shopware:before{content:\"\\f5b5\"}.fa-shower:before{content:\"\\f2cc\"}.fa-shuttle-van:before{content:\"\\f5b6\"}.fa-sign:before{content:\"\\f4d9\"}.fa-sign-in-alt:before{content:\"\\f2f6\"}.fa-sign-language:before{content:\"\\f2a7\"}.fa-sign-out-alt:before{content:\"\\f2f5\"}.fa-signal:before{content:\"\\f012\"}.fa-signature:before{content:\"\\f5b7\"}.fa-sim-card:before{content:\"\\f7c4\"}.fa-simplybuilt:before{content:\"\\f215\"}.fa-sistrix:before{content:\"\\f3ee\"}.fa-sitemap:before{content:\"\\f0e8\"}.fa-sith:before{content:\"\\f512\"}.fa-skating:before{content:\"\\f7c5\"}.fa-sketch:before{content:\"\\f7c6\"}.fa-skiing:before{content:\"\\f7c9\"}.fa-skiing-nordic:before{content:\"\\f7ca\"}.fa-skull:before{content:\"\\f54c\"}.fa-skull-crossbones:before{content:\"\\f714\"}.fa-skyatlas:before{content:\"\\f216\"}.fa-skype:before{content:\"\\f17e\"}.fa-slack:before{content:\"\\f198\"}.fa-slack-hash:before{content:\"\\f3ef\"}.fa-slash:before{content:\"\\f715\"}.fa-sleigh:before{content:\"\\f7cc\"}.fa-sliders-h:before{content:\"\\f1de\"}.fa-slideshare:before{content:\"\\f1e7\"}.fa-smile:before{content:\"\\f118\"}.fa-smile-beam:before{content:\"\\f5b8\"}.fa-smile-wink:before{content:\"\\f4da\"}.fa-smog:before{content:\"\\f75f\"}.fa-smoking:before{content:\"\\f48d\"}.fa-smoking-ban:before{content:\"\\f54d\"}.fa-sms:before{content:\"\\f7cd\"}.fa-snapchat:before{content:\"\\f2ab\"}.fa-snapchat-ghost:before{content:\"\\f2ac\"}.fa-snapchat-square:before{content:\"\\f2ad\"}.fa-snowboarding:before{content:\"\\f7ce\"}.fa-snowflake:before{content:\"\\f2dc\"}.fa-snowman:before{content:\"\\f7d0\"}.fa-snowplow:before{content:\"\\f7d2\"}.fa-socks:before{content:\"\\f696\"}.fa-solar-panel:before{content:\"\\f5ba\"}.fa-sort:before{content:\"\\f0dc\"}.fa-sort-alpha-down:before{content:\"\\f15d\"}.fa-sort-alpha-down-alt:before{content:\"\\f881\"}.fa-sort-alpha-up:before{content:\"\\f15e\"}.fa-sort-alpha-up-alt:before{content:\"\\f882\"}.fa-sort-amount-down:before{content:\"\\f160\"}.fa-sort-amount-down-alt:before{content:\"\\f884\"}.fa-sort-amount-up:before{content:\"\\f161\"}.fa-sort-amount-up-alt:before{content:\"\\f885\"}.fa-sort-down:before{content:\"\\f0dd\"}.fa-sort-numeric-down:before{content:\"\\f162\"}.fa-sort-numeric-down-alt:before{content:\"\\f886\"}.fa-sort-numeric-up:before{content:\"\\f163\"}.fa-sort-numeric-up-alt:before{content:\"\\f887\"}.fa-sort-up:before{content:\"\\f0de\"}.fa-soundcloud:before{content:\"\\f1be\"}.fa-sourcetree:before{content:\"\\f7d3\"}.fa-spa:before{content:\"\\f5bb\"}.fa-space-shuttle:before{content:\"\\f197\"}.fa-speakap:before{content:\"\\f3f3\"}.fa-speaker-deck:before{content:\"\\f83c\"}.fa-spell-check:before{content:\"\\f891\"}.fa-spider:before{content:\"\\f717\"}.fa-spinner:before{content:\"\\f110\"}.fa-splotch:before{content:\"\\f5bc\"}.fa-spotify:before{content:\"\\f1bc\"}.fa-spray-can:before{content:\"\\f5bd\"}.fa-square:before{content:\"\\f0c8\"}.fa-square-full:before{content:\"\\f45c\"}.fa-square-root-alt:before{content:\"\\f698\"}.fa-squarespace:before{content:\"\\f5be\"}.fa-stack-exchange:before{content:\"\\f18d\"}.fa-stack-overflow:before{content:\"\\f16c\"}.fa-stackpath:before{content:\"\\f842\"}.fa-stamp:before{content:\"\\f5bf\"}.fa-star:before{content:\"\\f005\"}.fa-star-and-crescent:before{content:\"\\f699\"}.fa-star-half:before{content:\"\\f089\"}.fa-star-half-alt:before{content:\"\\f5c0\"}.fa-star-of-david:before{content:\"\\f69a\"}.fa-star-of-life:before{content:\"\\f621\"}.fa-staylinked:before{content:\"\\f3f5\"}.fa-steam:before{content:\"\\f1b6\"}.fa-steam-square:before{content:\"\\f1b7\"}.fa-steam-symbol:before{content:\"\\f3f6\"}.fa-step-backward:before{content:\"\\f048\"}.fa-step-forward:before{content:\"\\f051\"}.fa-stethoscope:before{content:\"\\f0f1\"}.fa-sticker-mule:before{content:\"\\f3f7\"}.fa-sticky-note:before{content:\"\\f249\"}.fa-stop:before{content:\"\\f04d\"}.fa-stop-circle:before{content:\"\\f28d\"}.fa-stopwatch:before{content:\"\\f2f2\"}.fa-store:before{content:\"\\f54e\"}.fa-store-alt:before{content:\"\\f54f\"}.fa-strava:before{content:\"\\f428\"}.fa-stream:before{content:\"\\f550\"}.fa-street-view:before{content:\"\\f21d\"}.fa-strikethrough:before{content:\"\\f0cc\"}.fa-stripe:before{content:\"\\f429\"}.fa-stripe-s:before{content:\"\\f42a\"}.fa-stroopwafel:before{content:\"\\f551\"}.fa-studiovinari:before{content:\"\\f3f8\"}.fa-stumbleupon:before{content:\"\\f1a4\"}.fa-stumbleupon-circle:before{content:\"\\f1a3\"}.fa-subscript:before{content:\"\\f12c\"}.fa-subway:before{content:\"\\f239\"}.fa-suitcase:before{content:\"\\f0f2\"}.fa-suitcase-rolling:before{content:\"\\f5c1\"}.fa-sun:before{content:\"\\f185\"}.fa-superpowers:before{content:\"\\f2dd\"}.fa-superscript:before{content:\"\\f12b\"}.fa-supple:before{content:\"\\f3f9\"}.fa-surprise:before{content:\"\\f5c2\"}.fa-suse:before{content:\"\\f7d6\"}.fa-swatchbook:before{content:\"\\f5c3\"}.fa-swift:before{content:\"\\f8e1\"}.fa-swimmer:before{content:\"\\f5c4\"}.fa-swimming-pool:before{content:\"\\f5c5\"}.fa-symfony:before{content:\"\\f83d\"}.fa-synagogue:before{content:\"\\f69b\"}.fa-sync:before{content:\"\\f021\"}.fa-sync-alt:before{content:\"\\f2f1\"}.fa-syringe:before{content:\"\\f48e\"}.fa-table:before{content:\"\\f0ce\"}.fa-table-tennis:before{content:\"\\f45d\"}.fa-tablet:before{content:\"\\f10a\"}.fa-tablet-alt:before{content:\"\\f3fa\"}.fa-tablets:before{content:\"\\f490\"}.fa-tachometer-alt:before{content:\"\\f3fd\"}.fa-tag:before{content:\"\\f02b\"}.fa-tags:before{content:\"\\f02c\"}.fa-tape:before{content:\"\\f4db\"}.fa-tasks:before{content:\"\\f0ae\"}.fa-taxi:before{content:\"\\f1ba\"}.fa-teamspeak:before{content:\"\\f4f9\"}.fa-teeth:before{content:\"\\f62e\"}.fa-teeth-open:before{content:\"\\f62f\"}.fa-telegram:before{content:\"\\f2c6\"}.fa-telegram-plane:before{content:\"\\f3fe\"}.fa-temperature-high:before{content:\"\\f769\"}.fa-temperature-low:before{content:\"\\f76b\"}.fa-tencent-weibo:before{content:\"\\f1d5\"}.fa-tenge:before{content:\"\\f7d7\"}.fa-terminal:before{content:\"\\f120\"}.fa-text-height:before{content:\"\\f034\"}.fa-text-width:before{content:\"\\f035\"}.fa-th:before{content:\"\\f00a\"}.fa-th-large:before{content:\"\\f009\"}.fa-th-list:before{content:\"\\f00b\"}.fa-the-red-yeti:before{content:\"\\f69d\"}.fa-theater-masks:before{content:\"\\f630\"}.fa-themeco:before{content:\"\\f5c6\"}.fa-themeisle:before{content:\"\\f2b2\"}.fa-thermometer:before{content:\"\\f491\"}.fa-thermometer-empty:before{content:\"\\f2cb\"}.fa-thermometer-full:before{content:\"\\f2c7\"}.fa-thermometer-half:before{content:\"\\f2c9\"}.fa-thermometer-quarter:before{content:\"\\f2ca\"}.fa-thermometer-three-quarters:before{content:\"\\f2c8\"}.fa-think-peaks:before{content:\"\\f731\"}.fa-thumbs-down:before{content:\"\\f165\"}.fa-thumbs-up:before{content:\"\\f164\"}.fa-thumbtack:before{content:\"\\f08d\"}.fa-ticket-alt:before{content:\"\\f3ff\"}.fa-times:before{content:\"\\f00d\"}.fa-times-circle:before{content:\"\\f057\"}.fa-tint:before{content:\"\\f043\"}.fa-tint-slash:before{content:\"\\f5c7\"}.fa-tired:before{content:\"\\f5c8\"}.fa-toggle-off:before{content:\"\\f204\"}.fa-toggle-on:before{content:\"\\f205\"}.fa-toilet:before{content:\"\\f7d8\"}.fa-toilet-paper:before{content:\"\\f71e\"}.fa-toolbox:before{content:\"\\f552\"}.fa-tools:before{content:\"\\f7d9\"}.fa-tooth:before{content:\"\\f5c9\"}.fa-torah:before{content:\"\\f6a0\"}.fa-torii-gate:before{content:\"\\f6a1\"}.fa-tractor:before{content:\"\\f722\"}.fa-trade-federation:before{content:\"\\f513\"}.fa-trademark:before{content:\"\\f25c\"}.fa-traffic-light:before{content:\"\\f637\"}.fa-trailer:before{content:\"\\f941\"}.fa-train:before{content:\"\\f238\"}.fa-tram:before{content:\"\\f7da\"}.fa-transgender:before{content:\"\\f224\"}.fa-transgender-alt:before{content:\"\\f225\"}.fa-trash:before{content:\"\\f1f8\"}.fa-trash-alt:before{content:\"\\f2ed\"}.fa-trash-restore:before{content:\"\\f829\"}.fa-trash-restore-alt:before{content:\"\\f82a\"}.fa-tree:before{content:\"\\f1bb\"}.fa-trello:before{content:\"\\f181\"}.fa-tripadvisor:before{content:\"\\f262\"}.fa-trophy:before{content:\"\\f091\"}.fa-truck:before{content:\"\\f0d1\"}.fa-truck-loading:before{content:\"\\f4de\"}.fa-truck-monster:before{content:\"\\f63b\"}.fa-truck-moving:before{content:\"\\f4df\"}.fa-truck-pickup:before{content:\"\\f63c\"}.fa-tshirt:before{content:\"\\f553\"}.fa-tty:before{content:\"\\f1e4\"}.fa-tumblr:before{content:\"\\f173\"}.fa-tumblr-square:before{content:\"\\f174\"}.fa-tv:before{content:\"\\f26c\"}.fa-twitch:before{content:\"\\f1e8\"}.fa-twitter:before{content:\"\\f099\"}.fa-twitter-square:before{content:\"\\f081\"}.fa-typo3:before{content:\"\\f42b\"}.fa-uber:before{content:\"\\f402\"}.fa-ubuntu:before{content:\"\\f7df\"}.fa-uikit:before{content:\"\\f403\"}.fa-umbraco:before{content:\"\\f8e8\"}.fa-umbrella:before{content:\"\\f0e9\"}.fa-umbrella-beach:before{content:\"\\f5ca\"}.fa-underline:before{content:\"\\f0cd\"}.fa-undo:before{content:\"\\f0e2\"}.fa-undo-alt:before{content:\"\\f2ea\"}.fa-uniregistry:before{content:\"\\f404\"}.fa-unity:before{content:\"\\f949\"}.fa-universal-access:before{content:\"\\f29a\"}.fa-university:before{content:\"\\f19c\"}.fa-unlink:before{content:\"\\f127\"}.fa-unlock:before{content:\"\\f09c\"}.fa-unlock-alt:before{content:\"\\f13e\"}.fa-untappd:before{content:\"\\f405\"}.fa-upload:before{content:\"\\f093\"}.fa-ups:before{content:\"\\f7e0\"}.fa-usb:before{content:\"\\f287\"}.fa-user:before{content:\"\\f007\"}.fa-user-alt:before{content:\"\\f406\"}.fa-user-alt-slash:before{content:\"\\f4fa\"}.fa-user-astronaut:before{content:\"\\f4fb\"}.fa-user-check:before{content:\"\\f4fc\"}.fa-user-circle:before{content:\"\\f2bd\"}.fa-user-clock:before{content:\"\\f4fd\"}.fa-user-cog:before{content:\"\\f4fe\"}.fa-user-edit:before{content:\"\\f4ff\"}.fa-user-friends:before{content:\"\\f500\"}.fa-user-graduate:before{content:\"\\f501\"}.fa-user-injured:before{content:\"\\f728\"}.fa-user-lock:before{content:\"\\f502\"}.fa-user-md:before{content:\"\\f0f0\"}.fa-user-minus:before{content:\"\\f503\"}.fa-user-ninja:before{content:\"\\f504\"}.fa-user-nurse:before{content:\"\\f82f\"}.fa-user-plus:before{content:\"\\f234\"}.fa-user-secret:before{content:\"\\f21b\"}.fa-user-shield:before{content:\"\\f505\"}.fa-user-slash:before{content:\"\\f506\"}.fa-user-tag:before{content:\"\\f507\"}.fa-user-tie:before{content:\"\\f508\"}.fa-user-times:before{content:\"\\f235\"}.fa-users:before{content:\"\\f0c0\"}.fa-users-cog:before{content:\"\\f509\"}.fa-usps:before{content:\"\\f7e1\"}.fa-ussunnah:before{content:\"\\f407\"}.fa-utensil-spoon:before{content:\"\\f2e5\"}.fa-utensils:before{content:\"\\f2e7\"}.fa-vaadin:before{content:\"\\f408\"}.fa-vector-square:before{content:\"\\f5cb\"}.fa-venus:before{content:\"\\f221\"}.fa-venus-double:before{content:\"\\f226\"}.fa-venus-mars:before{content:\"\\f228\"}.fa-viacoin:before{content:\"\\f237\"}.fa-viadeo:before{content:\"\\f2a9\"}.fa-viadeo-square:before{content:\"\\f2aa\"}.fa-vial:before{content:\"\\f492\"}.fa-vials:before{content:\"\\f493\"}.fa-viber:before{content:\"\\f409\"}.fa-video:before{content:\"\\f03d\"}.fa-video-slash:before{content:\"\\f4e2\"}.fa-vihara:before{content:\"\\f6a7\"}.fa-vimeo:before{content:\"\\f40a\"}.fa-vimeo-square:before{content:\"\\f194\"}.fa-vimeo-v:before{content:\"\\f27d\"}.fa-vine:before{content:\"\\f1ca\"}.fa-vk:before{content:\"\\f189\"}.fa-vnv:before{content:\"\\f40b\"}.fa-voicemail:before{content:\"\\f897\"}.fa-volleyball-ball:before{content:\"\\f45f\"}.fa-volume-down:before{content:\"\\f027\"}.fa-volume-mute:before{content:\"\\f6a9\"}.fa-volume-off:before{content:\"\\f026\"}.fa-volume-up:before{content:\"\\f028\"}.fa-vote-yea:before{content:\"\\f772\"}.fa-vr-cardboard:before{content:\"\\f729\"}.fa-vuejs:before{content:\"\\f41f\"}.fa-walking:before{content:\"\\f554\"}.fa-wallet:before{content:\"\\f555\"}.fa-warehouse:before{content:\"\\f494\"}.fa-water:before{content:\"\\f773\"}.fa-wave-square:before{content:\"\\f83e\"}.fa-waze:before{content:\"\\f83f\"}.fa-weebly:before{content:\"\\f5cc\"}.fa-weibo:before{content:\"\\f18a\"}.fa-weight:before{content:\"\\f496\"}.fa-weight-hanging:before{content:\"\\f5cd\"}.fa-weixin:before{content:\"\\f1d7\"}.fa-whatsapp:before{content:\"\\f232\"}.fa-whatsapp-square:before{content:\"\\f40c\"}.fa-wheelchair:before{content:\"\\f193\"}.fa-whmcs:before{content:\"\\f40d\"}.fa-wifi:before{content:\"\\f1eb\"}.fa-wikipedia-w:before{content:\"\\f266\"}.fa-wind:before{content:\"\\f72e\"}.fa-window-close:before{content:\"\\f410\"}.fa-window-maximize:before{content:\"\\f2d0\"}.fa-window-minimize:before{content:\"\\f2d1\"}.fa-window-restore:before{content:\"\\f2d2\"}.fa-windows:before{content:\"\\f17a\"}.fa-wine-bottle:before{content:\"\\f72f\"}.fa-wine-glass:before{content:\"\\f4e3\"}.fa-wine-glass-alt:before{content:\"\\f5ce\"}.fa-wix:before{content:\"\\f5cf\"}.fa-wizards-of-the-coast:before{content:\"\\f730\"}.fa-wolf-pack-battalion:before{content:\"\\f514\"}.fa-won-sign:before{content:\"\\f159\"}.fa-wordpress:before{content:\"\\f19a\"}.fa-wordpress-simple:before{content:\"\\f411\"}.fa-wpbeginner:before{content:\"\\f297\"}.fa-wpexplorer:before{content:\"\\f2de\"}.fa-wpforms:before{content:\"\\f298\"}.fa-wpressr:before{content:\"\\f3e4\"}.fa-wrench:before{content:\"\\f0ad\"}.fa-x-ray:before{content:\"\\f497\"}.fa-xbox:before{content:\"\\f412\"}.fa-xing:before{content:\"\\f168\"}.fa-xing-square:before{content:\"\\f169\"}.fa-y-combinator:before{content:\"\\f23b\"}.fa-yahoo:before{content:\"\\f19e\"}.fa-yammer:before{content:\"\\f840\"}.fa-yandex:before{content:\"\\f413\"}.fa-yandex-international:before{content:\"\\f414\"}.fa-yarn:before{content:\"\\f7e3\"}.fa-yelp:before{content:\"\\f1e9\"}.fa-yen-sign:before{content:\"\\f157\"}.fa-yin-yang:before{content:\"\\f6ad\"}.fa-yoast:before{content:\"\\f2b1\"}.fa-youtube:before{content:\"\\f167\"}.fa-youtube-square:before{content:\"\\f431\"}.fa-zhihu:before{content:\"\\f63f\"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:Font Awesome\\ 5 Brands;font-style:normal;font-weight:400;font-display:auto;src:url(fa-brands-400.57dcda6f368ea90179f7.eot);src:url(fa-brands-400.57dcda6f368ea90179f7.eot?#iefix) format(\"embedded-opentype\"),url(fa-brands-400.067595ad77ecc0db9c81.woff2) format(\"woff2\"),url(fa-brands-400.b564da88bbf0c4aa446f.woff) format(\"woff\"),url(fa-brands-400.9ec698d1a597bff5df33.ttf) format(\"truetype\"),url(fa-brands-400.9d67fa1429375bd2a899.svg#fontawesome) format(\"svg\")}.fab{font-family:Font Awesome\\ 5 Brands}@font-face{font-family:Font Awesome\\ 5 Free;font-style:normal;font-weight:400;font-display:auto;src:url(fa-regular-400.3351f435b3c9037fd88a.eot);src:url(fa-regular-400.3351f435b3c9037fd88a.eot?#iefix) format(\"embedded-opentype\"),url(fa-regular-400.4165c2688309cbfb1b87.woff2) format(\"woff2\"),url(fa-regular-400.73cf49a2232c06c920b7.woff) format(\"woff\"),url(fa-regular-400.a0e3ac82940c1998c597.ttf) format(\"truetype\"),url(fa-regular-400.5d0861781aeef6c82fda.svg#fontawesome) format(\"svg\")}.fab,.far{font-weight:400}@font-face{font-family:Font Awesome\\ 5 Free;font-style:normal;font-weight:900;font-display:auto;src:url(fa-solid-900.89e02bae13c9131c7468.eot);src:url(fa-solid-900.89e02bae13c9131c7468.eot?#iefix) format(\"embedded-opentype\"),url(fa-solid-900.55eb2a60e8181f0e68b5.woff2) format(\"woff2\"),url(fa-solid-900.cdfec5cf5e9840889790.woff) format(\"woff\"),url(fa-solid-900.75f38a159982b6bd1704.ttf) format(\"truetype\"),url(fa-solid-900.0724bb8b89ab6b8b9b7d.svg#fontawesome) format(\"svg\")}.fa,.far,.fas{font-family:Font Awesome\\ 5 Free}.fa,.fas{font-weight:900}"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/ngsw-config.json",
    "content": "{\n  \"index\": \"/index.html\",\n  \"assetGroups\": [{\n    \"name\": \"app\",\n    \"installMode\": \"prefetch\",\n    \"resources\": {\n      \"files\": [\n        \"/favicon.ico\",\n        \"/index.html\",\n        \"/*.css\",\n        \"/*.js\"\n      ]\n    }\n  }, {\n    \"name\": \"assets\",\n    \"installMode\": \"lazy\",\n    \"updateMode\": \"prefetch\",\n    \"resources\": {\n      \"files\": [\n        \"/assets/**\",\n        \"/font/*\"\n      ]\n    }\n  }],\n  \"dataGroups\": [\n    {\n        \"name\": \"api-product\",\n        \"urls\": [\"/api/products\"],\n        \"cacheConfig\" : {\n            \"maxSize\": 100,\n            \"maxAge\": \"5d\"\n        }\n    }],\n    \"navigationUrls\": [\n      \"/**\"\n    ]\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"@angular/service-worker\": \"~9.0.0\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^5.1.2\",\n    \"connect-history-api-fallback\": \"^1.6.0\",\n    \"express\": \"^4.17.1\",\n    \"https\": \"^1.0.0\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/server.js",
    "content": "const express = require(\"express\");\nconst https = require(\"https\");\nconst fs = require(\"fs\");\nconst history = require(\"connect-history-api-fallback\");\nconst jsonServer = require(\"json-server\");\nconst bodyParser = require('body-parser');\nconst auth = require(\"./authMiddleware\");\nconst router = jsonServer.router(\"serverdata.json\");\n\nconst enableHttps = false;\n\nconst ssloptions = {}\n\nif (enableHttps) {\n    ssloptions.cert =  fs.readFileSync(\"./ssl/sportsstore.crt\");\n    ssloptions.key = fs.readFileSync(\"./ssl/sportsstore.pem\");\n}\n\nconst app = express();\n\napp.use(bodyParser.json());\napp.use(auth);\napp.use(\"/api\", router);\napp.use(history());\napp.use(\"/\", express.static(\"./dist/SportsStore\"));\n\napp.listen(80, \n    () => console.log(\"HTTP Server running on port 80\"));\n\nif (enableHttps) {\n    https.createServer(ssloptions, app).listen(443,\n        () => console.log(\"HTTPS Server running on port 443\"));\n} else {\n    console.log(\"HTTPS disabled\")\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/serverdata.json",
    "content": "{\n    \"products\": [\n        { \"id\": 1, \"name\": \"Kayak\", \"category\": \"Watersports\", \n            \"description\": \"A boat for one person\", \"price\": 275 },\n        { \"id\": 2, \"name\": \"Lifejacket\", \"category\": \"Watersports\", \n            \"description\": \"Protective and fashionable\", \"price\": 48.95 },\n        { \"id\": 3, \"name\": \"Soccer Ball\", \"category\": \"Soccer\", \n            \"description\": \"FIFA-approved size and weight\", \"price\": 19.50 },\n        { \"id\": 4, \"name\": \"Corner Flags\", \"category\": \"Soccer\", \n            \"description\": \"Give your playing field a professional touch\", \n            \"price\": 34.95 },\n        { \"id\": 5, \"name\": \"Stadium\", \"category\": \"Soccer\", \n            \"description\": \"Flat-packed 35,000-seat stadium\", \"price\": 79500 },\n        { \"id\": 6, \"name\": \"Thinking Cap\", \"category\": \"Chess\", \n            \"description\": \"Improve brain efficiency by 75%\", \"price\": 16 },\n        { \"id\": 7, \"name\": \"Unsteady Chair\", \"category\": \"Chess\", \n            \"description\": \"Secretly give your opponent a disadvantage\", \n            \"price\": 29.95 },\n        { \"id\": 8, \"name\": \"Human Chess Board\", \"category\": \"Chess\", \n            \"description\": \"A fun game for the family\", \"price\": 75 },\n        { \"id\": 9, \"name\": \"Bling Bling King\", \"category\": \"Chess\", \n            \"description\": \"Gold-plated, diamond-studded King\", \"price\": 1200 }\n    ],\n    \"orders\": []\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/admin/admin.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col bg-dark text-white\">\n            <a class=\"navbar-brand\">SPORTS STORE</a>\n        </div>\n    </div>\n    <div class=\"row mt-2\">\n        <div class=\"col-3\">\n            <button class=\"btn btn-outline-info btn-block\"\n                    routerLink=\"/admin/main/products\"\n                    routerLinkActive=\"active\">\n                Products\n            </button>\n            <button class=\"btn btn-outline-info btn-block\"\n                    routerLink=\"/admin/main/orders\"\n                    routerLinkActive=\"active\">\n                Orders\n            </button>\n            <button class=\"btn btn-outline-danger btn-block\" (click)=\"logout()\">\n                Logout\n            </button>\n        </div>\n        <div class=\"col-9\">\n            <router-outlet></router-outlet>\n        </div>\n    </div>\n</div>\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/admin/admin.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Component({\n    templateUrl: \"admin.component.html\"\n})\nexport class AdminComponent {\n\n    constructor(private auth: AuthService,\n                private router: Router) { }\n\n    logout() {\n        this.auth.clear();\n        this.router.navigateByUrl(\"/\");\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/admin/admin.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { RouterModule } from \"@angular/router\";\nimport { AuthComponent } from \"./auth.component\";\nimport { AdminComponent } from \"./admin.component\";\nimport { AuthGuard } from \"./auth.guard\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductEditorComponent } from \"./productEditor.component\";\nimport { OrderTableComponent } from \"./orderTable.component\";\n\nlet routing = RouterModule.forChild([\n    { path: \"auth\", component: AuthComponent },\n    {\n        path: \"main\", component: AdminComponent, canActivate: [AuthGuard],\n        children: [\n            { path: \"products/:mode/:id\", component: ProductEditorComponent },\n            { path: \"products/:mode\", component: ProductEditorComponent },\n            { path: \"products\", component: ProductTableComponent },\n            { path: \"orders\", component: OrderTableComponent },\n            { path: \"**\", redirectTo: \"products\" }\n        ]\n    },\n    { path: \"**\", redirectTo: \"auth\" }\n]);\n\n@NgModule({\n    imports: [CommonModule, FormsModule, routing],\n    providers: [AuthGuard],\n    declarations: [AuthComponent, AdminComponent,\n        ProductTableComponent, ProductEditorComponent, OrderTableComponent]\n})\nexport class AdminModule {}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/admin/auth.component.html",
    "content": "<div class=\"bg-info p-2 text-center text-white\">\n    <h3>SportsStore Admin</h3>\n  </div>\n  <div class=\"bg-danger mt-2 p-2 text-center text-white\"\n       *ngIf=\"errorMessage != null\">\n    {{errorMessage}}\n  </div>\n  <div class=\"p-2\">\n    <form novalidate #form=\"ngForm\" (ngSubmit)=\"authenticate(form)\">\n      <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"username\"\n               [(ngModel)]=\"username\" required />\n      </div>\n      <div class=\"form-group\">\n        <label>Password</label>\n        <input class=\"form-control\" type=\"password\" name=\"password\"\n               [(ngModel)]=\"password\" required />\n      </div>\n      <div class=\"text-center\">\n        <button class=\"btn btn-secondary m-1\" routerLink=\"/\">Go back</button>\n        <button class=\"btn btn-primary m-1\" type=\"submit\">Log In</button>\n      </div>\n    </form>\n  </div>\n  "
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/admin/auth.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Component({\n    templateUrl: \"auth.component.html\"\n})\nexport class AuthComponent {\n    public username: string;\n    public password: string;\n    public errorMessage: string;\n\n    constructor(private router: Router,\n                private auth: AuthService) { }\n\n    authenticate(form: NgForm) {\n        if (form.valid) {\n            this.auth.authenticate(this.username, this.password)\n                .subscribe(response => {\n                    if (response) {\n                        this.router.navigateByUrl(\"/admin/main\");\n                    }\n                    this.errorMessage = \"Authentication Failed\";\n                })\n        } else {\n            this.errorMessage = \"Form Data Invalid\";\n        }\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/admin/auth.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot,\n            Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Injectable()\nexport class AuthGuard {\n\n    constructor(private router: Router,\n                private auth: AuthService) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n\n        if (!this.auth.authenticated) {\n            this.router.navigateByUrl(\"/admin/auth\");\n            return false;\n        } \n        return true;\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/admin/orderTable.component.html",
    "content": "<div class=\"form-check\">\n    <label class=\"form-check-label\">\n    <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"includeShipped\"/>        \n        Display Shipped Orders\n    </label>\n</div>\n<table class=\"table table-sm\">\n    <thead>\n        <tr><th>Name</th><th>Zip</th><th colspan=\"2\">Cart</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *ngIf=\"getOrders().length == 0\">\n            <td colspan=\"5\">There are no orders</td>\n        </tr>\n        <ng-template ngFor let-o [ngForOf]=\"getOrders()\">\n            <tr>\n                <td>{{o.name}}</td><td>{{o.zip}}</td>\n                <th>Product</th><th>Quantity</th>\n                <td>\n                    <button class=\"btn btn-warning m-1\" (click)=\"markShipped(o)\">\n                        Ship\n                    </button>\n                    <button class=\"btn btn-danger\" (click)=\"delete(o.id)\">\n                        Delete\n                    </button>\n                </td>\n            </tr>\n            <tr *ngFor=\"let line of o.cart.lines\">\n                <td colspan=\"2\"></td>\n                <td>{{line.product.name}}</td>\n                <td>{{line.quantity}}</td>\n            </tr>\n        </ng-template>\n    </tbody>\n</table>\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/admin/orderTable.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Order } from \"../model/order.model\";\nimport { OrderRepository } from \"../model/order.repository\";\n\n@Component({\n    templateUrl: \"orderTable.component.html\"\n})\nexport class OrderTableComponent {\n    includeShipped = false;\n\n    constructor(private repository: OrderRepository) {}\n\n    getOrders(): Order[] {\n        return this.repository.getOrders()\n            .filter(o => this.includeShipped || !o.shipped);\n    }\n \n    markShipped(order: Order) {\n        order.shipped = true;\n        this.repository.updateOrder(order);\n    }\n\n    delete(id: number) {\n        this.repository.deleteOrder(id);\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/admin/productEditor.component.html",
    "content": "<div class=\"bg-primary p-2 text-white\" [class.bg-warning]=\"editing\"\n     [class.text-dark]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"save(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" [(ngModel)]=\"product.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" [(ngModel)]=\"product.category\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Description</label>\n        <textarea class=\"form-control\" name=\"description\"\n                  [(ngModel)]=\"product.description\">\n        </textarea>\n    </div>\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" [(ngModel)]=\"product.price\" />\n    </div>\n    <button type=\"submit\" class=\"btn btn-primary m-1\" [class.btn-warning]=\"editing\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary\" routerLink=\"/admin/main/products\">\n        Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/admin/productEditor.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    templateUrl: \"productEditor.component.html\"\n})\nexport class ProductEditorComponent {\n    editing: boolean = false;\n    product: Product = new Product();\n\n    constructor(private repository: ProductRepository,\n                private router: Router,\n                activeRoute: ActivatedRoute) {\n\n        this.editing = activeRoute.snapshot.params[\"mode\"] == \"edit\";\n        if (this.editing) {\n            Object.assign(this.product,\n                repository.getProduct(activeRoute.snapshot.params[\"id\"]));\n        }\n    }\n\n    save(form: NgForm) {\n        this.repository.saveProduct(this.product);\n        this.router.navigateByUrl(\"/admin/main/products\");\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/admin/productTable.component.html",
    "content": "<table class=\"table table-sm table-striped\">\n    <thead>\n        <tr>\n            <th>ID</th><th>Name</th><th>Category</th><th>Price</th>\n            <th></th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr *ngFor=\"let p of getProducts()\">\n            <td>{{p.id}}</td>\n            <td>{{p.name}}</td>\n            <td>{{p.category}}</td>\n            <td>{{p.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}</td>\n            <td>\n                <button class=\"btn btn-sm btn-warning m-1\"\n                        [routerLink]=\"['/admin/main/products/edit', p.id]\">\n                    Edit\n                </button>\n                <button class=\"btn btn-sm btn-danger\" (click)=\"deleteProduct(p.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>\n</table>\n<button class=\"btn btn-primary\" routerLink=\"/admin/main/products/create\">\n    Create New Product\n</button>\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/admin/productTable.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n\n    constructor(private repository: ProductRepository) { }\n\n    getProducts(): Product[] {\n        return this.repository.getProducts();\n    }\n\n    deleteProduct(id: number) {\n        this.repository.deleteProduct(id);\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<router-outlet></router-outlet>\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\nimport { StoreComponent } from \"./store/store.component\";\nimport { CheckoutComponent } from \"./store/checkout.component\";\nimport { CartDetailComponent } from \"./store/cartDetail.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { StoreFirstGuard } from \"./storeFirst.guard\";\nimport { ServiceWorkerModule } from '@angular/service-worker';\nimport { environment } from '../environments/environment';\n\n@NgModule({\n    imports: [BrowserModule, StoreModule,\n        RouterModule.forRoot([\n            {\n                path: \"store\", component: StoreComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"cart\", component: CartDetailComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"checkout\", component: CheckoutComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"admin\",\n                loadChildren: () => import(\"./admin/admin.module\")\n                    .then(m => m.AdminModule),\n                canActivate: [StoreFirstGuard]\n            },\n            { path: \"**\", redirectTo: \"/store\" }\n        ]),\n        ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production })],\n    providers: [StoreFirstGuard],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/model/auth.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class AuthService {\n\n    constructor(private datasource: RestDataSource) {}\n\n    authenticate(username: string, password: string): Observable<boolean> {\n        return this.datasource.authenticate(username, password);\n    }\n\n    get authenticated(): boolean {\n        return this.datasource.auth_token != null;\n    }\n\n    clear() {\n        this.datasource.auth_token = null;\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/model/cart.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class Cart {\n    public lines: CartLine[] = [];\n    public itemCount: number = 0;\n    public cartPrice: number = 0;\n\n    addLine(product: Product, quantity: number = 1) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity += quantity;    \n        } else {\n            this.lines.push(new CartLine(product, quantity));\n        }\n        this.recalculate();\n    }\n\n    updateQuantity(product: Product, quantity: number) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity = Number(quantity);\n        }\n        this.recalculate();\n    }\n\n    removeLine(id: number) {\n        let index = this.lines.findIndex(line => line.product.id == id);\n        this.lines.splice(index, 1);\n        this.recalculate();\n    }\n\n    clear() {\n        this.lines = [];\n        this.itemCount = 0;\n        this.cartPrice = 0;\n    }\n\n    private recalculate() {\n        this.itemCount = 0;\n        this.cartPrice = 0;\n        this.lines.forEach(l => {\n            this.itemCount += l.quantity;\n            this.cartPrice += (l.quantity * l.product.price);\n        })\n    }\n}\n\nexport class CartLine {\n    \n    constructor(public product: Product,\n        public quantity: number) {}\n\n    get lineTotal() {\n        return this.quantity * this.product.price;\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/model/connection.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable, Subject } from \"rxjs\";\n\n@Injectable()\nexport class ConnectionService {\n    private connEvents: Subject<boolean>;\n        \n    constructor() {\n        this.connEvents = new Subject<boolean>();\n        window.addEventListener(\"online\", \n            (e) => this.handleConnectionChange(e));\n        window.addEventListener(\"offline\", \n            (e) => this.handleConnectionChange(e));\n    }\n\n    private handleConnectionChange(event) {\n        this.connEvents.next(this.connected);\n    }\n \n    get connected() : boolean {\n        return window.navigator.onLine;\n    }\n\n    get Changes(): Observable<boolean> {\n        return this.connEvents;\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { OrderRepository } from \"./order.repository\";\nimport { RestDataSource } from \"./rest.datasource\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { AuthService } from \"./auth.service\";\nimport { ConnectionService } from \"./connection.service\";\n\n@NgModule({\n  imports: [HttpClientModule],\n  providers: [ProductRepository, Cart, Order, OrderRepository,\n    { provide: StaticDataSource, useClass: RestDataSource },\n    RestDataSource, AuthService, ConnectionService]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/model/order.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Cart } from \"./cart.model\";\n\n@Injectable()\nexport class Order {\n    public id: number;\n    public name: string;\n    public address: string;\n    public city: string;\n    public state: string;\n    public zip: string;\n    public country: string;\n    public shipped: boolean = false;\n\n    constructor(public cart: Cart) { }\n\n    clear() {\n        this.id = null;\n        this.name = this.address = this.city = null;\n        this.state = this.zip = this.country = null;\n        this.shipped = false;\n        this.cart.clear();\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/model/order.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { Order } from \"./order.model\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class OrderRepository {\n    private orders: Order[] = [];\n    private loaded: boolean = false;\n\n    constructor(private dataSource: RestDataSource) { }\n\n    loadOrders() {\n        this.loaded = true;\n        this.dataSource.getOrders()\n            .subscribe(orders => this.orders = orders);\n    }\n\n    getOrders(): Order[] {\n        if (!this.loaded) {\n            this.loadOrders();\n        }\n        return this.orders;\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.dataSource.saveOrder(order);\n    }\n\n    updateOrder(order: Order) {\n        this.dataSource.updateOrder(order).subscribe(order => {\n            this.orders.splice(this.orders.\n                findIndex(o => o.id == order.id), 1, order);\n        });\n    }\n\n    deleteOrder(id: number) {\n        this.dataSource.deleteOrder(id).subscribe(order => {\n            this.orders.splice(this.orders.findIndex(o => id == o.id), 1);\n        });\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(\n        public id?: number,\n        public name?: string,\n        public category?: string,\n        public description?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: RestDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == null || product.id == 0) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product)\n                .subscribe(p => {\n                    this.products.splice(this.products.\n                        findIndex(p => p.id == product.id), 1, product);\n                });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(p => {\n            this.products.splice(this.products.\n                findIndex(p => p.id == id), 1);\n        })\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/model/rest.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { map } from \"rxjs/operators\";\nimport { HttpHeaders } from '@angular/common/http';\n\nconst PROTOCOL = \"http\";\nconst PORT = 3500;\n\n@Injectable()\nexport class RestDataSource {\n    baseUrl: string;\n    auth_token: string;\n\n    constructor(private http: HttpClient) {\n        //this.baseUrl = `${PROTOCOL}://${location.hostname}:${PORT}/`;\n        this.baseUrl = \"/api/\"\n    }\n\n    getProducts(): Observable<Product[]> {\n        return this.http.get<Product[]>(this.baseUrl + \"products\");\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.http.post<Order>(this.baseUrl + \"orders\", order);\n    }\n\n    authenticate(user: string, pass: string): Observable<boolean> {\n        return this.http.post<any>(this.baseUrl + \"login\", {\n            name: user, password: pass\n        }).pipe(map(response => {\n            this.auth_token = response.success ? response.token : null;\n            return response.success;\n        }));\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.http.post<Product>(this.baseUrl + \"products\",\n            product, this.getOptions());\n    }\n\n    updateProduct(product): Observable<Product> {\n        return this.http.put<Product>(`${this.baseUrl}products/${product.id}`,\n            product, this.getOptions());\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.http.delete<Product>(`${this.baseUrl}products/${id}`,\n            this.getOptions());\n    }\n\n    getOrders(): Observable<Order[]> {\n        return this.http.get<Order[]>(this.baseUrl + \"orders\", this.getOptions());\n    }\n\n    deleteOrder(id: number): Observable<Order> {\n        return this.http.delete<Order>(`${this.baseUrl}orders/${id}`,\n            this.getOptions());\n    }\n\n    updateOrder(order: Order): Observable<Order> {\n        return this.http.put<Order>(`${this.baseUrl}orders/${order.id}`,\n            order, this.getOptions());\n    }\n\n    private getOptions() {\n        return {\n            headers: new HttpHeaders({\n                \"Authorization\": `Bearer<${this.auth_token}>`\n            })\n        }\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\nimport { Order } from \"./order.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        console.log(JSON.stringify(order));\n        return from([order]);\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/store/cartDetail.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col mt-2\">\n        <h2 class=\"text-center\">Your Cart</h2>\n        <table class=\"table table-bordered table-striped p-2\">\n          <thead>\n            <tr>\n              <th>Quantity</th>\n              <th>Product</th>\n              <th class=\"text-right\">Price</th>\n              <th class=\"text-right\">Subtotal</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr *ngIf=\"cart.lines.length == 0\">\n              <td colspan=\"4\" class=\"text-center\">\n                Your cart is empty\n              </td>\n            </tr>\n            <tr *ngFor=\"let line of cart.lines\">\n              <td>\n                <input type=\"number\" class=\"form-control-sm\"\n                       style=\"width:5em\"\n                       [value]=\"line.quantity\"\n                       (change)=\"cart.updateQuantity(line.product,\n                                  $event.target.value)\" />\n              </td>\n              <td>{{line.product.name}}</td>\n              <td class=\"text-right\">\n                  {{line.product.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n              <td class=\"text-right\">\n                  {{(line.lineTotal) | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n              </td>\n              <td class=\"text-center\">\n                <button class=\"btn btn-sm btn-danger\"\n                        (click)=\"cart.removeLine(line.product.id)\">\n                  Remove\n                </button>\n              </td>\n            </tr>\n          </tbody>\n          <tfoot>\n            <tr>\n              <td colspan=\"3\" class=\"text-right\">Total:</td>\n              <td class=\"text-right\">\n                {{cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n            </tr>\n          </tfoot>\n        </table>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col\">\n      <div class=\"text-center\">\n        <button class=\"btn btn-primary m-1\" routerLink=\"/store\">\n            Continue Shopping\n        </button>\n        <button class=\"btn btn-secondary m-1\" routerLink=\"/checkout\"\n            [disabled]=\"cart.lines.length == 0 || !connected\">\n                {{  connected ?  'Checkout' : 'Offline' }}\n        </button>\n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/store/cartDetail.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\nimport { ConnectionService } from \"../model/connection.service\";\n\n@Component({\n    templateUrl: \"cartDetail.component.html\"\n})\nexport class CartDetailComponent {\n    public connected: boolean = true;\n\n    constructor(public cart: Cart, private connection: ConnectionService) { \n        this.connected = this.connection.connected;\n        connection.Changes.subscribe((state) => this.connected = state);\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/store/cartSummary.component.html",
    "content": "<div class=\"float-right\">\n    <small>\n      Your cart:\n      <span *ngIf=\"cart.itemCount > 0\">\n        {{ cart.itemCount }} item(s)\n        {{ cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n      </span>\n      <span *ngIf=\"cart.itemCount == 0\">\n        (empty)\n      </span>\n    </small>\n    <button class=\"btn btn-sm bg-dark text-white\"\n        [disabled]=\"cart.itemCount == 0\" routerLink=\"/cart\">\n      <i class=\"fa fa-shopping-cart\"></i>\n    </button>\n  </div>\n  "
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/store/cartSummary.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    selector: \"cart-summary\",\n    templateUrl: \"cartSummary.component.html\"\n})\nexport class CartSummaryComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/store/checkout.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/store/checkout.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n  </div>\n  \n  <div *ngIf=\"orderSent\" class=\"m-2 text-center\">\n    <h2>Thanks!</h2>\n    <p>Thanks for placing your order.</p>\n    <p>We'll ship your goods as soon as possible.</p>\n    <button class=\"btn btn-primary\" routerLink=\"/store\">Return to Store</button>\n  </div>\n  <form *ngIf=\"!orderSent\" #form=\"ngForm\" novalidate\n        (ngSubmit)=\"submitOrder(form)\" class=\"m-2\">\n    <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" #name=\"ngModel\" name=\"name\"\n              [(ngModel)]=\"order.name\" required />\n      <span *ngIf=\"submitted && name.invalid\" class=\"text-danger\">\n        Please enter your name\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Address</label>\n      <input class=\"form-control\" #address=\"ngModel\" name=\"address\"\n              [(ngModel)]=\"order.address\" required />\n      <span *ngIf=\"submitted && address.invalid\" class=\"text-danger\">\n        Please enter your address\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>City</label>\n      <input class=\"form-control\" #city=\"ngModel\" name=\"city\"\n              [(ngModel)]=\"order.city\" required />\n      <span *ngIf=\"submitted && city.invalid\" class=\"text-danger\">\n        Please enter your city\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>State</label>\n      <input class=\"form-control\" #state=\"ngModel\" name=\"state\"\n              [(ngModel)]=\"order.state\" required />\n      <span *ngIf=\"submitted && state.invalid\" class=\"text-danger\">\n        Please enter your state\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Zip/Postal Code</label>\n      <input class=\"form-control\" #zip=\"ngModel\" name=\"zip\"\n              [(ngModel)]=\"order.zip\" required />\n      <span *ngIf=\"submitted && zip.invalid\" class=\"text-danger\">\n        Please enter your zip/postal code\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Country</label>\n      <input class=\"form-control\" #country=\"ngModel\" name=\"country\"\n              [(ngModel)]=\"order.country\" required />\n      <span *ngIf=\"submitted && country.invalid\" class=\"text-danger\">\n        Please enter your country\n      </span>\n    </div>\n    <div class=\"text-center\">\n      <button class=\"btn btn-secondary m-1\" routerLink=\"/cart\">Back</button>\n      <button class=\"btn btn-primary m-1\" type=\"submit\">Complete Order</button>\n    </div>\n  </form>\n  "
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/store/checkout.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { OrderRepository } from \"../model/order.repository\";\nimport { Order } from \"../model/order.model\";\n\n@Component({\n    templateUrl: \"checkout.component.html\",\n    styleUrls: [\"checkout.component.css\"]\n})\nexport class CheckoutComponent {\n    orderSent: boolean = false;\n    submitted: boolean = false;\n\n    constructor(public repository: OrderRepository,\n                public order: Order) {}\n\n    submitOrder(form: NgForm) {\n        this.submitted = true;\n        if (form.valid) {\n            this.repository.saveOrder(this.order).subscribe(order => {\n                this.order.clear();\n                this.orderSent = true;\n                this.submitted = false;\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) {\n    }\n\n    @Input(\"counterOf\")\n    counter: number;\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.container.clear();\n        for (let i = 0; i < this.counter; i++) {\n            this.container.createEmbeddedView(this.template,\n                new CounterDirectiveContext(i + 1));\n        }\n    }\n}\n\nclass CounterDirectiveContext {\n    constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n        <cart-summary></cart-summary>\n      </div>\n    </div>\n    <div class=\"row\">\n  \n      <div class=\"col-3 p-2\">\n        <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n          Home\n        </button>\n        <button *ngFor=\"let cat of categories\" \n            class=\"btn btn-outline-primary btn-block\"\n            [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n          {{cat}}\n        </button>\n        <button class=\"btn btn-block btn-danger mt-5\" routerLink=\"/admin\">\n            Admin\n          </button>    \n      </div>\n  \n      <div class=\"col-9 p-2\">\n        <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n          <h4>\n            {{product.name}}\n            <span class=\"badge badge-pill badge-primary float-right\">\n              {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n            </span>\n          </h4>\n          <div class=\"card-text bg-white p-1\">\n            {{product.description}}\n            <button class=\"btn btn-success btn-sm float-right\"\n                    (click)=\"addProductToCart(product)\">\n              Add To Cart\n            </button>\n          </div>\n        </div>\n  \n        <div class=\"form-inline float-left mr-1\">\n          <select class=\"form-control\" [value]=\"productsPerPage\"\n                  (change)=\"changePageSize($event.target.value)\">\n            <option value=\"3\">3 per Page</option>\n            <option value=\"4\">4 per Page</option>\n            <option value=\"6\">6 per Page</option>\n            <option value=\"8\">8 per Page</option>\n          </select>\n        </div>\n  \n        <div class=\"btn-group float-right\">\n          <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n              class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n            {{page}}\n          </button>\n        </div>\n  \n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\nimport { Cart } from \"../model/cart.model\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository,\n        private cart: Cart,\n        private router: Router) { }\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    addProductToCart(product: Product) {\n        this.cart.addLine(product);\n        this.router.navigateByUrl(\"/cart\");\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\nimport { CartSummaryComponent } from \"./cartSummary.component\";\nimport { CartDetailComponent } from \"./cartDetail.component\";\nimport { CheckoutComponent } from \"./checkout.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule, RouterModule],\n    declarations: [StoreComponent, CounterDirective, CartSummaryComponent,\n        CartDetailComponent, CheckoutComponent],\n    exports: [StoreComponent, CartDetailComponent, CheckoutComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/app/storeFirst.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { StoreComponent } from \"./store/store.component\";\n\n@Injectable()\nexport class StoreFirstGuard {\n    private firstNavigation = true;\n\n    constructor(private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n        if (this.firstNavigation) {\n            this.firstNavigation = false;\n            if (route.component != StoreComponent) {\n                this.router.navigateByUrl(\"/\");\n                return false;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n  <link rel=\"manifest\" href=\"manifest.webmanifest\">\n  <meta name=\"theme-color\" content=\"#1976d2\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n  <noscript>Please enable JavaScript to continue using this application.</noscript>\n</body>\n</html>\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/manifest.webmanifest",
    "content": "{\n  \"name\": \"SportsStore\",\n  \"short_name\": \"SportsStore\",\n  \"theme_color\": \"#1976d2\",\n  \"background_color\": \"#fafafa\",\n  \"display\": \"standalone\",\n  \"scope\": \"/\",\n  \"start_url\": \"/\",\n  \"icons\": [\n    {\n      \"src\": \"assets/icons/icon-72x72.png\",\n      \"sizes\": \"72x72\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"assets/icons/icon-96x96.png\",\n      \"sizes\": \"96x96\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"assets/icons/icon-128x128.png\",\n      \"sizes\": \"128x128\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"assets/icons/icon-144x144.png\",\n      \"sizes\": \"144x144\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"assets/icons/icon-152x152.png\",\n      \"sizes\": \"152x152\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"assets/icons/icon-192x192.png\",\n      \"sizes\": \"192x192\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"assets/icons/icon-384x384.png\",\n      \"sizes\": \"384x384\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"assets/icons/icon-512x512.png\",\n      \"sizes\": \"512x512\",\n      \"type\": \"image/png\"\n    }\n  ]\n}"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "10 - SportsStore - Deployment/End of Chapter/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "11 - Angular Projects and Tools/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "11 - Angular Projects and Tools/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "11 - Angular Projects and Tools/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "11 - Angular Projects and Tools/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "11 - Angular Projects and Tools/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "11 - Angular Projects and Tools/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "11 - Angular Projects and Tools/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "11 - Angular Projects and Tools/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "11 - Angular Projects and Tools/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "11 - Angular Projects and Tools/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\n//import { AppComponent } from './app.component';\nimport { ProductComponent } from \"./component\";\n\n@NgModule({\n  declarations: [ProductComponent],\n  imports: [BrowserModule],\n  providers: [],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/app/component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n}\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/app/template.html",
    "content": "<div class=\"bg-info text-white m-2 p-2\">\n    There are {{model.getProducts().length}} products in the model\n</div>\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "11 - Angular Projects and Tools/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\n//import { AppComponent } from './app.component';\nimport { ProductComponent } from \"./component\";\n\n@NgModule({\n  declarations: [ProductComponent],\n  imports: [BrowserModule],\n  providers: [],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/app/component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    getClasses(): string {\n        return this.model.getProducts().length == 5 ? \"bg-success\" : \"bg-warning\";\n    }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/app/template.html",
    "content": "<div class=\"bg-info text-white m-2 p-2\">\n    There are {{model.getProducts().length}} products in the model\n</div>\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/Beginning of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\n//import { AppComponent } from './app.component';\nimport { ProductComponent } from \"./component\";\n\n@NgModule({\n  declarations: [ProductComponent],\n  imports: [BrowserModule],\n  providers: [],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    constructor(ref: ApplicationRef) {\n        (<any>window).appRef = ref;\n        (<any>window).model = this.model;\n    }\n\n    getProductByPosition(position: number): Product {\n        return this.model.getProducts()[position];\n    }\n\n    getClassesByPosition(position: number): string {\n        let product = this.getProductByPosition(position);\n        return \"p-2 \" + (product.price < 50 ? \"bg-info\" : \"bg-warning\");\n    }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/app/template.html",
    "content": "<div class=\"text-white m-2\">\n    <div [ngClass]=\"getClassesByPosition(0)\">\n      The first product is {{getProductByPosition(0).name}}.\n    </div>\n    <div [ngClass]=\"getClassesByPosition(1)\">\n      The second product is {{getProductByPosition(1).name}}\n    </div>\n  </div>\n  "
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "12 - Using Data Bindings/End of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\n//import { AppComponent } from './app.component';\nimport { ProductComponent } from \"./component\";\n\n@NgModule({\n  declarations: [ProductComponent],\n  imports: [BrowserModule],\n  providers: [],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    constructor(ref: ApplicationRef) {\n        (<any>window).appRef = ref;\n        (<any>window).model = this.model;\n    }\n\n    getProductByPosition(position: number): Product {\n        return this.model.getProducts()[position];\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    getProductCount(): number {\n        return this.getProducts().length;\n    }\n\n    targetName: string = \"Kayak\";\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/app/template.html",
    "content": "<div class=\"text-white m-2\">\n    <div class=\"bg-info p-2\">\n      There are {{getProductCount()}} products.\n    </div>\n  </div>\n  "
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/Beginning of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\n//import { AppComponent } from './app.component';\nimport { ProductComponent } from \"./component\";\n\n@NgModule({\n  declarations: [ProductComponent],\n  imports: [BrowserModule],\n  providers: [],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    constructor(ref: ApplicationRef) {\n        (<any>window).appRef = ref;\n        (<any>window).model = this.model;\n    }\n\n    getProductByPosition(position: number): Product {\n        return this.model.getProducts()[position];\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    getProductCount(): number {\n        console.log(\"getProductCount invoked\");\n        return this.getProducts().length;\n    }\n\n    targetName: string = \"Kayak\";\n\n    getKey(index: number, product: Product) {\n        return product.id;\n    }\n\n    get nextProduct(): Product {\n        return this.model.getProducts().shift();\n    }\n    \n    getProductPrice(index: number): number {\n        return Math.floor(this.getProduct(index).price);\n    }    \n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/app/template.html",
    "content": "<ng-template #titleTemplate let-text=\"title\">\n    <h4 class=\"p-2 bg-success text-white\">{{text}}</h4>\n  </ng-template>\n  \n  <ng-template [ngTemplateOutlet]=\"titleTemplate\"\n               [ngTemplateOutletContext]=\"{title: 'Header'}\">\n  </ng-template>\n  \n  <div class=\"bg-info p-2 m-2 text-white\">\n    There are {{getProductCount()}} products.\n  </div>\n  \n  <ng-template [ngTemplateOutlet]=\"titleTemplate\"\n               [ngTemplateOutletContext]=\"{title: 'Footer'}\">\n  </ng-template>\n  \n  <div class=\"bg-info p-2 text-white\">\n    The rounded price is {{getProductPrice(1)}}\n  </div>\n  "
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "13 - Using the Built-In Directives/End of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { ProductComponent } from \"./component\";\nimport { FormsModule } from \"@angular/forms\";\n\n@NgModule({\n  declarations: [ProductComponent],\n  imports: [BrowserModule, FormsModule],\n  providers: [],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    selectedProduct: Product;\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/app/template.html",
    "content": "<div class=\"m-2\">\n    <table class=\"table table-sm table-bordered\">\n      <tr><th></th><th>Name</th><th>Category</th><th>Price</th></tr>\n      <tr *ngFor=\"let item of getProducts(); let i = index\">\n        <td>{{i + 1}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price}}</td>\n      </tr>\n    </table>\n  </div>\n  "
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/Beginning of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule {}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { NgForm, FormGroup } from \"@angular/forms\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup, ProductFormControl } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n    formGroup: ProductFormGroup = new ProductFormGroup();\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    newProduct: Product = new Product();\n\n    get jsonProduct() {\n        return JSON.stringify(this.newProduct);\n    }\n\n    addProduct(p: Product) {\n        console.log(\"New Product: \" + this.jsonProduct);\n    }\n\n    formSubmitted: boolean = false;\n\n    submitForm() {\n        Object.keys(this.formGroup.controls)\n            .forEach(c => this.newProduct[c] = this.formGroup.controls[c].value);\n        this.formSubmitted = true;\n        if (this.formGroup.valid) {\n            this.addProduct(this.newProduct);\n            this.newProduct = new Product();\n            this.formGroup.reset();\n            this.formSubmitted = false;\n        }\n    }    \n}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/app/template.html",
    "content": "<style>\n  input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\n  input.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n</style>\n\n<form class=\"m-2\" novalidate [formGroup]=\"formGroup\" (ngSubmit)=\"submitForm()\">\n\n  <div class=\"bg-danger text-white p-2 mb-2\" \n          *ngIf=\"formSubmitted && formGroup.invalid\">\n      There are problems with the form\n      <ul>\n          <li *ngFor=\"let error of formGroup.getFormValidationMessages()\">\n              {{error}}\n          </li>\n      </ul>\n  </div>\n\n  <div class=\"form-group\" *ngFor=\"let control of formGroup.productControls\">\n      <label>{{control.label}}</label>\n      <input class=\"form-control\" \n          name=\"{{control.modelProperty}}\"\n          formControlName=\"{{control.modelProperty}}\" />\n      <ul class=\"text-danger list-unstyled\"\n              *ngIf=\"(formSubmitted || control.dirty) && control.invalid\">\n          <li *ngFor=\"let error of control.getValidationMessages()\">\n              {{error}}\n          </li>\n      </ul>\n  </div>\n\n  <button class=\"btn btn-primary\" type=\"submit\"\n      [disabled]=\"formSubmitted && formGroup.invalid\"\n      [class.btn-secondary]=\"formSubmitted && formGroup.invalid\">\n          Create\n  </button>\n</form>\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "14 - Using Events and Forms/End of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule {}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { NgForm, FormGroup } from \"@angular/forms\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup, ProductFormControl } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n    formGroup: ProductFormGroup = new ProductFormGroup();\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    newProduct: Product = new Product();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n\n    formSubmitted: boolean = false;\n\n    submitForm() {\n        this.addProduct(this.newProduct);\n    }    \n}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/app/template.html",
    "content": "<style>\n    input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\n    input.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n  </style>\n  \n  <div class=\"row m-2\">\n    <div class=\"col-6\">\n      <form class=\"m-2\" novalidate (ngSubmit)=\"submitForm()\">\n        <div class=\"form-group\">\n            <label>Name</label>\n            <input class=\"form-control\" name=\"name\" [(ngModel)]=\"newProduct.name\" />\n        </div>\n        <div class=\"form-group\">\n          <label>Category</label>\n          <input class=\"form-control\" name=\"category\" \n              [(ngModel)]=\"newProduct.category\" />\n        </div>      \n        <div class=\"form-group\">\n          <label>Price</label>\n          <input class=\"form-control\" name=\"price\" [(ngModel)]=\"newProduct.price\" />\n        </div>      \n        <button class=\"btn btn-primary\" type=\"submit\">Create</button>\n      </form>\n    </div>\n  \n    <div class=\"col-6\">\n      <table class=\"table table-sm table-bordered table-striped\">\n        <tr><th></th><th>Name</th><th>Category</th><th>Price</th></tr>\n        <tr *ngFor=\"let item of getProducts(); let i = index\">\n          <td>{{i + 1}}</td>\n          <td>{{item.name}}</td>\n          <td>{{item.category}}</td>\n          <td>{{item.price}}</td>\n        </tr>\n      </table>\n    </div>\n  </div>\n  "
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "15 - Attribute Directives/Beginning of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule  } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent, PaAttrDirective, PaModel],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n         SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n            from \"@angular/core\";\n import { Product } from \"./product.model\";\n\n@Directive({\n    selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n    @Input(\"pa-attr\")\n    @HostBinding(\"class\")\n    bgClass: string;\n\n    @Input(\"pa-product\")\n    product: Product;\n\n    @Output(\"pa-category\")\n    click = new EventEmitter<string>();\n\n    @HostListener(\"click\")\n    triggerCustomEvent() {\n        if (this.product != null) {\n            this.click.emit(this.product.category);\n        }\n    }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { NgForm, FormGroup } from \"@angular/forms\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup, ProductFormControl } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n    formGroup: ProductFormGroup = new ProductFormGroup();\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    newProduct: Product = new Product();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n\n    formSubmitted: boolean = false;\n\n    submitForm() {\n        this.addProduct(this.newProduct);\n    }    \n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/app/template.html",
    "content": "<style>\n    input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\n    input.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n  </style>\n  \n  <div class=\"row m-2\">\n    <div class=\"col-6\">\n      <form class=\"m-2\" novalidate (ngSubmit)=\"submitForm()\">\n        <div class=\"form-group\">\n            <label>Name</label>\n            <input class=\"form-control\" name=\"name\" [(ngModel)]=\"newProduct.name\" />\n        </div>\n        <div class=\"form-group\">\n          <label>Category</label>\n          <input class=\"form-control\" name=\"category\" \n              [(ngModel)]=\"newProduct.category\" />\n        </div>      \n        <div class=\"form-group\">\n          <label>Price</label>\n          <input class=\"form-control\" name=\"price\" [(ngModel)]=\"newProduct.price\" />\n        </div>      \n        <button class=\"btn btn-primary\" type=\"submit\">Create</button>\n      </form>\n    </div>\n  \n    <div class=\"col-6\">\n\n        <div class=\"form-group bg-info text-white p-2\">\n            <label>Name:</label>\n            <input class=\"bg-primary text-white\" [(paModel)]=\"newProduct.name\" \n                #paModel=\"paModel\" />\n            <div class=\"bg-primary text-white\">Direction: {{paModel.direction}}</div>\n        </div>\n    \n        \n        <table class=\"table table-sm table-bordered table-striped\">\n            <tr><th></th><th>Name</th><th>Category</th><th>Price</th></tr>\n            <tr *ngFor=\"let item of getProducts(); let i = index\"\n                    [pa-attr]=\"getProducts().length < 6 ? 'bg-success' : 'bg-warning'\"\n                    [pa-product]=\"item\" (pa-category)=\"newProduct.category = $event\">\n                <td>{{i + 1}}</td>\n                <td>{{item.name}}</td>\n                <td [pa-attr]=\"item.category == 'Soccer' ? 'bg-info' : null\">\n                    {{item.category}}\n                </td>\n                <td [pa-attr]=\"'bg-info'\">{{item.price}}</td>\n            </tr>\n        </table>\n        \n    </div>\n  </div>\n  "
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "15 - Attribute Directives/End of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule  } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent, PaAttrDirective, PaModel],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n         SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n            from \"@angular/core\";\n import { Product } from \"./product.model\";\n\n@Directive({\n    selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n    @Input(\"pa-attr\")\n    @HostBinding(\"class\")\n    bgClass: string;\n\n    @Input(\"pa-product\")\n    product: Product;\n\n    @Output(\"pa-category\")\n    click = new EventEmitter<string>();\n\n    @HostListener(\"click\")\n    triggerCustomEvent() {\n        if (this.product != null) {\n            this.click.emit(this.product.category);\n        }\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { NgForm, FormGroup } from \"@angular/forms\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup, ProductFormControl } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n    formGroup: ProductFormGroup = new ProductFormGroup();\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    newProduct: Product = new Product();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n\n    formSubmitted: boolean = false;\n\n    submitForm() {\n        this.addProduct(this.newProduct);\n    }    \n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/app/template.html",
    "content": "<div class=\"m-2\">\n    <table class=\"table table-sm table-bordered table-striped\">\n      <tr><th></th><th>Name</th><th>Category</th><th>Price</th></tr>\n      <tbody class=\"text-white\">\n        <tr *ngFor=\"let item of getProducts(); let i = index\"\n            [pa-attr]=\"getProducts().length < 6 ? 'bg-success' : 'bg-warning'\"\n            [pa-product]=\"item\" (pa-category)=\"newProduct.category=$event\">\n          <td>{{i + 1}}</td>\n          <td>{{item.name}}</td>\n          <td [pa-attr]=\"item.category == 'Soccer' ? 'bg-info' : null\">\n            {{item.category}}\n          </td>\n          <td [pa-attr]=\"'bg-info'\">{{item.price}}</td>\n        </tr>\n      </tbody>\n    </table>\n</div>\n  "
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "16 - Structural Directives/Beginning of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule  } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent, PaAttrDirective, PaModel,\n        PaStructureDirective, PaIteratorDirective,\n        PaCellColor, PaCellColorSwitcher],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n         SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n            from \"@angular/core\";\n import { Product } from \"./product.model\";\n\n@Directive({\n    selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n    @Input(\"pa-attr\")\n    @HostBinding(\"class\")\n    bgClass: string;\n\n    @Input(\"pa-product\")\n    product: Product;\n\n    @Output(\"pa-category\")\n    click = new EventEmitter<string>();\n\n    @HostListener(\"click\")\n    triggerCustomEvent() {\n        if (this.product != null) {\n            this.click.emit(this.product.category);\n        }\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n         SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n    \n    @ContentChildren(PaCellColor, {descendants: true})\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { NgForm, FormGroup } from \"@angular/forms\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup, ProductFormControl } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n    formGroup: ProductFormGroup = new ProductFormGroup();\n    showTable: boolean = false;\n    darkColor: boolean = false;\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    newProduct: Product = new Product();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    formSubmitted: boolean = false;\n\n    submitForm() {\n        this.addProduct(this.newProduct);\n    }    \n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef \n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n    <div class=\"col-4\">\n        <form class=\"m-2\" novalidate (ngSubmit)=\"submitForm()\">\n            <div class=\"form-group\">\n                <label>Name</label>\n                <input class=\"form-control\" name=\"name\" \n                    [(ngModel)]=\"newProduct.name\" />\n            </div>\n            <div class=\"form-group\">\n                <label>Category</label>\n                <input class=\"form-control\" name=\"category\" \n                    [(ngModel)]=\"newProduct.category\" />\n            </div>      \n            <div class=\"form-group\">\n                <label>Price</label>\n                <input class=\"form-control\" name=\"price\" \n                    [(ngModel)]=\"newProduct.price\" />\n            </div>      \n            <button class=\"btn btn-primary\" type=\"submit\">Create</button>\n        </form>\n    </div>\n    <div class=\"col-8\">\n        <div class=\"checkbox\">\n            <label>\n                <input type=\"checkbox\" [(ngModel)]=\"darkColor\" />\n                Dark Cell Color\n            </label>\n        </div>\n        \n        <table class=\"table table-sm table-bordered table-striped\" \n                [paCellDarkColor]=\"darkColor\">\n    \n            <thead>\n                <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n            </thead>\n            <tbody>\n                <tr *paFor=\"let item of getProducts(); let i = index; let odd = odd;\n                        let even = even\" [class.bg-info]=\"odd\" \n                        [class.bg-warning]=\"even\">\n                    <td style=\"vertical-align:middle\">{{i + 1}}</td>\n                    <td style=\"vertical-align:middle\">{{item.name}}</td>\n                    <td style=\"vertical-align:middle\">{{item.category}}</td>\n                    <td style=\"vertical-align:middle\">{{item.price}}</td>\n                    <td class=\"text-center\">\n                        <button class=\"btn btn-danger btn-sm\" \n                                (click)=\"deleteProduct(item.id)\">\n                            Delete\n                        </button>\n                    </td>                \n                </tr>\n            </tbody>\n        </table>\n\n    </div>\n</div>\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "16 - Structural Directives/End of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule  } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent, PaAttrDirective, PaModel,\n        PaStructureDirective, PaIteratorDirective,\n        PaCellColor, PaCellColorSwitcher],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n         SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n            from \"@angular/core\";\n import { Product } from \"./product.model\";\n\n@Directive({\n    selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n    @Input(\"pa-attr\")\n    @HostBinding(\"class\")\n    bgClass: string;\n\n    @Input(\"pa-product\")\n    product: Product;\n\n    @Output(\"pa-category\")\n    click = new EventEmitter<string>();\n\n    @HostListener(\"click\")\n    triggerCustomEvent() {\n        if (this.product != null) {\n            this.click.emit(this.product.category);\n        }\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n         SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n    \n    @ContentChildren(PaCellColor, {descendants: true})\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { NgForm, FormGroup } from \"@angular/forms\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup, ProductFormControl } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n    formGroup: ProductFormGroup = new ProductFormGroup();\n    showTable: boolean = false;\n    darkColor: boolean = false;\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    newProduct: Product = new Product();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    formSubmitted: boolean = false;\n\n    submitForm() {\n        this.addProduct(this.newProduct);\n    }    \n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef \n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n    <div class=\"col-4\">\n        <form class=\"m-2\" novalidate (ngSubmit)=\"submitForm()\">\n            <div class=\"form-group\">\n                <label>Name</label>\n                <input class=\"form-control\" name=\"name\" \n                    [(ngModel)]=\"newProduct.name\" />\n            </div>\n            <div class=\"form-group\">\n                <label>Category</label>\n                <input class=\"form-control\" name=\"category\" \n                    [(ngModel)]=\"newProduct.category\" />\n            </div>      \n            <div class=\"form-group\">\n                <label>Price</label>\n                <input class=\"form-control\" name=\"price\" \n                    [(ngModel)]=\"newProduct.price\" />\n            </div>      \n            <button class=\"btn btn-primary\" type=\"submit\">Create</button>\n        </form>\n    </div>\n    <div class=\"col-8\">\n        <div class=\"checkbox\">\n            <label>\n                <input type=\"checkbox\" [(ngModel)]=\"darkColor\" />\n                Dark Cell Color\n            </label>\n        </div>\n        \n        <table class=\"table table-sm table-bordered table-striped\" \n                [paCellDarkColor]=\"darkColor\">\n    \n            <thead>\n                <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n            </thead>\n            <tbody>\n                <tr *paFor=\"let item of getProducts(); let i = index; let odd = odd;\n                        let even = even\" [class.bg-info]=\"odd\" \n                        [class.bg-warning]=\"even\">\n                    <td style=\"vertical-align:middle\">{{i + 1}}</td>\n                    <td style=\"vertical-align:middle\">{{item.name}}</td>\n                    <td style=\"vertical-align:middle\">{{item.category}}</td>\n                    <td style=\"vertical-align:middle\">{{item.price}}</td>\n                    <td class=\"text-center\">\n                        <button class=\"btn btn-danger btn-sm\" \n                                (click)=\"deleteProduct(item.id)\">\n                            Delete\n                        </button>\n                    </td>                \n                </tr>\n            </tbody>\n        </table>\n\n    </div>\n</div>\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "17 - Creating Components/Beginning of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule  } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent, PaAttrDirective, PaModel,\n        PaStructureDirective, PaIteratorDirective,\n        PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n        ProductFormComponent, PaToggleView],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n         SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n            from \"@angular/core\";\n import { Product } from \"./product.model\";\n\n@Directive({\n    selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n    @Input(\"pa-attr\")\n    @HostBinding(\"class\")\n    bgClass: string;\n\n    @Input(\"pa-product\")\n    product: Product;\n\n    @Output(\"pa-category\")\n    click = new EventEmitter<string>();\n\n    @HostListener(\"click\")\n    triggerCustomEvent() {\n        if (this.product != null) {\n            this.click.emit(this.product.category);\n        }\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n         SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n    \n    @ContentChildren(PaCellColor, {descendants: true})\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\",\n    styles: [\"/deep/ div { border: 2px black solid;  font-style:italic }\"]\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef \n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover { \n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" \n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>    \n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>    \n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\",\n    styleUrls: [\"productForm.component.css\"],\n    encapsulation: ViewEncapsulation.Emulated    \n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    @Output(\"paNewProduct\")\n    newProductEvent = new EventEmitter<Product>();\n\n    submitForm(form: any) {\n        this.newProductEvent.emit(this.newProduct);\n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    <tr *paFor=\"let item of getProducts(); let i = index; let odd = odd;\n            let even = even\" [class.bg-info]=\"odd\" [class.bg-warning]=\"even\">\n        <td style=\"vertical-align:middle\">{{i + 1}}</td>\n        <td style=\"vertical-align:middle\">{{item.name}}</td>\n        <td style=\"vertical-align:middle\">{{item.category}}</td>\n        <td style=\"vertical-align:middle\">{{item.price}}</td>\n        <td class=\"text-xs-center\">\n            <button class=\"btn btn-danger btn-sm\" (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n        </td>\n    </tr>\n</table>\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n\n    @Input(\"model\")\n    dataModel: Model;\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    showTable: boolean = true;\n\n    @ViewChildren(PaCellColor)\n    viewChildren: QueryList<PaCellColor>;\n   \n    ngAfterViewInit() {\n        this.viewChildren.changes.subscribe(() => {\n            this.updateViewChildren();\n        });\n        this.updateViewChildren();\n    }\n\n    private updateViewChildren() {\n        setTimeout(() => {\n            this.viewChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? true : false);\n            })\n        }, 0);\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n  <div class=\"col-4 p-2\">\n    <paProductForm (paNewProduct)=\"addProduct($event)\"></paProductForm>\n  </div>\n  <div class=\"col-8 p-2\">\n    <paToggleView>\n      <paProductTable [model]=\"model\"></paProductTable>\n    </paToggleView>\n  </div>\n</div>\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\"> \n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\" \n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "17 - Creating Components/End of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule  } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent, PaAttrDirective, PaModel,\n        PaStructureDirective, PaIteratorDirective,\n        PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n        ProductFormComponent, PaToggleView],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n         SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n            from \"@angular/core\";\n import { Product } from \"./product.model\";\n\n@Directive({\n    selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n    @Input(\"pa-attr\")\n    @HostBinding(\"class\")\n    bgClass: string;\n\n    @Input(\"pa-product\")\n    product: Product;\n\n    @Output(\"pa-category\")\n    click = new EventEmitter<string>();\n\n    @HostListener(\"click\")\n    triggerCustomEvent() {\n        if (this.product != null) {\n            this.click.emit(this.product.category);\n        }\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n         SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n    \n    @ContentChildren(PaCellColor, {descendants: true})\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\",\n    //styles: [\"/deep/ div { border: 2px black solid;  font-style:italic }\"]\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef \n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover { \n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" \n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>    \n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>    \n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\",\n    // styleUrls: [\"productForm.component.css\"],\n    // encapsulation: ViewEncapsulation.Emulated    \n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    @Output(\"paNewProduct\")\n    newProductEvent = new EventEmitter<Product>();\n\n    submitForm(form: any) {\n        this.newProductEvent.emit(this.newProduct);\n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    <tr *paFor=\"let item of getProducts(); let i = index; let odd = odd;\n            let even = even\" [class.bg-info]=\"odd\" [class.bg-warning]=\"even\">\n        <td style=\"vertical-align:middle\">{{i + 1}}</td>\n        <td style=\"vertical-align:middle\">{{item.name}}</td>\n        <td style=\"vertical-align:middle\">{{item.category}}</td>\n        <td style=\"vertical-align:middle\">{{item.price}}</td>\n        <td class=\"text-xs-center\">\n            <button class=\"btn btn-danger btn-sm\" (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n        </td>\n    </tr>\n</table>\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n    \n    @Input(\"model\")\n    dataModel: Model;\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n  <div class=\"col-4 p-2\">\n    <paProductForm (paNewProduct)=\"addProduct($event)\"></paProductForm>\n  </div>\n  <div class=\"col-8 p-2\">\n    <paProductTable [model]=\"model\"></paProductTable>\n  </div>\n</div>\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\"> \n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\" \n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "18 - Using Pipes/Beginning of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/addTax.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\n\n@Pipe({\n    name: \"addTax\"\n})\nexport class PaAddTaxPipe {\n\n    defaultRate: number = 10;\n\n    transform(value: any, rate?: any): number {\n        let valueNumber = Number.parseFloat(value);\n        let rateNumber = rate == undefined ? \n            this.defaultRate : Number.parseInt(rate);\n        return valueNumber + (valueNumber * (rateNumber / 100));\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\nimport { PaAddTaxPipe } from \"./addTax.pipe\";\nimport { PaCategoryFilterPipe } from \"./categoryFilter.pipe\";\nimport { LOCALE_ID } from \"@angular/core\";\nimport localeFr from '@angular/common/locales/fr';\nimport { registerLocaleData } from '@angular/common';\n\nregisterLocaleData(localeFr);\n\n@NgModule({\n  imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n  declarations: [ProductComponent, PaAttrDirective, PaModel,\n    PaStructureDirective, PaIteratorDirective,\n    PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n    ProductFormComponent, PaToggleView, PaAddTaxPipe,\n    PaCategoryFilterPipe],\n  //providers: [{ provide: LOCALE_ID, useValue: \"fr-FR\" }],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n         SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n            from \"@angular/core\";\n import { Product } from \"./product.model\";\n\n@Directive({\n    selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n    @Input(\"pa-attr\")\n    @HostBinding(\"class\")\n    bgClass: string;\n\n    @Input(\"pa-product\")\n    product: Product;\n\n    @Output(\"pa-category\")\n    click = new EventEmitter<string>();\n\n    @HostListener(\"click\")\n    triggerCustomEvent() {\n        if (this.product != null) {\n            this.click.emit(this.product.category);\n        }\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/categoryFilter.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Pipe({\n    name: \"filter\",\n    pure: false\n})\nexport class PaCategoryFilterPipe {\n\n    transform(products: Product[], category: string): Product[] {\n        return category == undefined ?\n            products : products.filter(p => p.category == category);\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n         SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n    \n    @ContentChildren(PaCellColor, {descendants: true})\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\",\n    //styles: [\"/deep/ div { border: 2px black solid;  font-style:italic }\"]\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef \n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover { \n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" \n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>    \n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>    \n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\",\n    // styleUrls: [\"productForm.component.css\"],\n    // encapsulation: ViewEncapsulation.Emulated    \n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    @Output(\"paNewProduct\")\n    newProductEvent = new EventEmitter<Product>();\n\n    submitForm(form: any) {\n        this.newProductEvent.emit(this.newProduct);\n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr><th>Name</th><th>Category</th><th>Message</th></tr>\n    <tr *paFor=\"let item of getProducts()\">\n        <td>{{ item.name }}</td>\n        <td>{{ item.category }}</td>\n        <td>Helps you {{ item.category | i18nSelect:selectMap }} </td>\n    </tr>\n</table>\n\n<div class=\"bg-info text-white p-2\">\n    <div>There are {{ 1 | i18nPlural:numberMap }} </div>\n    <div>There are {{ 2 | i18nPlural:numberMap }} </div>\n    <div>There are {{ 100 | i18nPlural:numberMap }} </div>\n</div>\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n    \n    @Input(\"model\")\n    dataModel: Model;\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n    categoryFilter: string;\n    itemCount: number = 3;\n\n    dateObject: Date = new Date(2020, 1, 20);\n    dateString: string = \"2020-02-20T00:00:00.000Z\";\n    dateNumber: number = 1582156800000;\n\n    selectMap = {\n        \"Watersports\": \"stay dry\", \n        \"Soccer\": \"score goals\",\n        \"other\": \"have fun\"    \n    }\n\n    numberMap = {\n        \"=1\": \"one product\",\n        \"=2\": \"two products\",\n        \"other\": \"# products\"\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n  <div class=\"col-4 p-2\">\n    <paProductForm (paNewProduct)=\"addProduct($event)\"></paProductForm>\n  </div>\n  <div class=\"col-8 p-2\">\n    <paProductTable [model]=\"model\"></paProductTable>\n  </div>\n</div>\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\"> \n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\" \n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "18 - Using Pipes/End of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/addTax.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\n\n@Pipe({\n    name: \"addTax\"\n})\nexport class PaAddTaxPipe {\n\n    defaultRate: number = 10;\n\n    transform(value: any, rate?: any): number {\n        let valueNumber = Number.parseFloat(value);\n        let rateNumber = rate == undefined ? \n            this.defaultRate : Number.parseInt(rate);\n        return valueNumber + (valueNumber * (rateNumber / 100));\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\nimport { PaAddTaxPipe } from \"./addTax.pipe\";\nimport { PaCategoryFilterPipe } from \"./categoryFilter.pipe\";\nimport { LOCALE_ID } from \"@angular/core\";\nimport localeFr from '@angular/common/locales/fr';\nimport { registerLocaleData } from '@angular/common';\n\nregisterLocaleData(localeFr);\n\n@NgModule({\n  imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n  declarations: [ProductComponent, PaAttrDirective, PaModel,\n    PaStructureDirective, PaIteratorDirective,\n    PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n    ProductFormComponent, PaToggleView, PaAddTaxPipe,\n    PaCategoryFilterPipe],\n  //providers: [{ provide: LOCALE_ID, useValue: \"fr-FR\" }],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n         SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n            from \"@angular/core\";\n import { Product } from \"./product.model\";\n\n@Directive({\n    selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n    @Input(\"pa-attr\")\n    @HostBinding(\"class\")\n    bgClass: string;\n\n    @Input(\"pa-product\")\n    product: Product;\n\n    @Output(\"pa-category\")\n    click = new EventEmitter<string>();\n\n    @HostListener(\"click\")\n    triggerCustomEvent() {\n        if (this.product != null) {\n            this.click.emit(this.product.category);\n        }\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/categoryFilter.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Pipe({\n    name: \"filter\",\n    pure: false\n})\nexport class PaCategoryFilterPipe {\n\n    transform(products: Product[], category: string): Product[] {\n        return category == undefined ?\n            products : products.filter(p => p.category == category);\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n         SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n    \n    @ContentChildren(PaCellColor, {descendants: true})\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\",\n    //styles: [\"/deep/ div { border: 2px black solid;  font-style:italic }\"]\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef \n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover { \n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" \n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>    \n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>    \n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\",\n    // styleUrls: [\"productForm.component.css\"],\n    // encapsulation: ViewEncapsulation.Emulated    \n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    @Output(\"paNewProduct\")\n    newProductEvent = new EventEmitter<Product>();\n\n    submitForm(form: any) {\n        this.newProductEvent.emit(this.newProduct);\n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <thead>\n        <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *paFor=\"let item of getProducts(); let i = index\">\n            <td>{{i + 1}}</td>\n            <td>{{item.name}}</td>\n            <td>{{item.category}}</td>\n            <td>{{item.price | currency:\"USD\":\"symbol\" }}</td>\n            <td class=\"text-center\">\n                <button class=\"btn btn-danger btn-sm\" \n                        (click)=\"deleteProduct(item.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>    \n</table>\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n    \n    @Input(\"model\")\n    dataModel: Model;\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n    categoryFilter: string;\n    itemCount: number = 3;\n\n    dateObject: Date = new Date(2020, 1, 20);\n    dateString: string = \"2020-02-20T00:00:00.000Z\";\n    dateNumber: number = 1582156800000;\n\n    selectMap = {\n        \"Watersports\": \"stay dry\", \n        \"Soccer\": \"score goals\",\n        \"other\": \"have fun\"    \n    }\n\n    numberMap = {\n        \"=1\": \"one product\",\n        \"=2\": \"two products\",\n        \"other\": \"# products\"\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n  <div class=\"col-4 p-2\">\n    <paProductForm (paNewProduct)=\"addProduct($event)\"></paProductForm>\n  </div>\n  <div class=\"col-8 p-2\">\n    <paProductTable [model]=\"model\"></paProductTable>\n  </div>\n</div>\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\"> \n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\" \n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "19 - Using Services/Beginning of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "19 - Using Services/End of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/addTax.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\n\n@Pipe({\n    name: \"addTax\"\n})\nexport class PaAddTaxPipe {\n\n    defaultRate: number = 10;\n\n    transform(value: any, rate?: any): number {\n        let valueNumber = Number.parseFloat(value);\n        let rateNumber = rate == undefined ? \n            this.defaultRate : Number.parseInt(rate);\n        return valueNumber + (valueNumber * (rateNumber / 100));\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\nimport { PaAddTaxPipe } from \"./addTax.pipe\";\nimport { PaCategoryFilterPipe } from \"./categoryFilter.pipe\";\nimport { LOCALE_ID } from \"@angular/core\";\nimport localeFr from '@angular/common/locales/fr';\nimport { registerLocaleData } from '@angular/common';\nimport { PaDiscountDisplayComponent } from \"./discountDisplay.component\";\nimport { PaDiscountEditorComponent } from \"./discountEditor.component\";\nimport { DiscountService } from \"./discount.service\";\nimport { PaDiscountPipe } from \"./discount.pipe\";\nimport { PaDiscountAmountDirective } from \"./discountAmount.directive\";\nimport { SimpleDataSource } from \"./datasource.model\";\nimport { Model } from \"./repository.model\";\n\nregisterLocaleData(localeFr);\n\n@NgModule({\n  imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n  declarations: [ProductComponent, PaAttrDirective, PaModel,\n    PaStructureDirective, PaIteratorDirective,\n    PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n    ProductFormComponent, PaToggleView, PaAddTaxPipe,\n    PaCategoryFilterPipe, PaDiscountDisplayComponent, PaDiscountEditorComponent, \n    PaDiscountPipe, PaDiscountAmountDirective],\n    providers: [DiscountService, SimpleDataSource, Model],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n         SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n            from \"@angular/core\";\n import { Product } from \"./product.model\";\n\n@Directive({\n    selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n    @Input(\"pa-attr\")\n    @HostBinding(\"class\")\n    bgClass: string;\n\n    @Input(\"pa-product\")\n    product: Product;\n\n    @Output(\"pa-category\")\n    click = new EventEmitter<string>();\n\n    @HostListener(\"click\")\n    triggerCustomEvent() {\n        if (this.product != null) {\n            this.click.emit(this.product.category);\n        }\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/categoryFilter.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Pipe({\n    name: \"filter\",\n    pure: false\n})\nexport class PaCategoryFilterPipe {\n\n    transform(products: Product[], category: string): Product[] {\n        return category == undefined ?\n            products : products.filter(p => p.category == category);\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n         SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n    \n    @ContentChildren(PaCellColor, {descendants: true})\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/component.ts",
    "content": "import { Component } from \"@angular/core\";\n//import { Model } from \"./repository.model\";\n//import { Product } from \"./product.model\";\n//import { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    //model: Model = new Model();\n\n    //constructor(public model: Model) { }\n\n    //addProduct(p: Product) {\n    //    this.model.saveProduct(p);\n    //}\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class SimpleDataSource {\n    private data:Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n        new Product(1, \"Kayak\", \"Watersports\", 275),\n        new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n        new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n        new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n        new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/discount.pipe.ts",
    "content": "import { Pipe, Injectable } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Pipe({\n    name: \"discount\",\n    pure: false\n})\nexport class PaDiscountPipe {\n\n    constructor(private discount: DiscountService) { }\n\n    transform(price: number): number {\n        return this.discount.applyDiscount(price);\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/discount.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class DiscountService {\n    private discountValue: number = 10;\n\n    public get discount(): number {\n        return this.discountValue;\n    }\n\n    public set discount(newValue: number) {\n        this.discountValue = newValue || 0;\n    }         \n\n    public applyDiscount(price: number) {\n        return Math.max(price - this.discountValue, 5);\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/discountAmount.directive.ts",
    "content": "import { Directive, HostBinding, Input,\n    SimpleChange, KeyValueDiffer, KeyValueDiffers,\n    ChangeDetectorRef } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Directive({\n    selector: \"td[pa-price]\",\n    exportAs: \"discount\"\n})\nexport class PaDiscountAmountDirective {\n    private differ: KeyValueDiffer<any, any>;\n\n    constructor(private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef,\n        private discount: DiscountService) { }\n\n    @Input(\"pa-price\")\n    originalPrice: number;\n\n    discountAmount: number;\n\n    ngOnInit() {\n        this.differ =\n            this.keyValueDiffers.find(this.discount).create();\n    }\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        if (changes[\"originalPrice\"] != null) {\n            this.updateValue();\n        }\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.discount) != null) {\n            this.updateValue();\n        }\n    }\n\n    private updateValue() {\n        this.discountAmount = this.originalPrice\n            - this.discount.applyDiscount(this.originalPrice);\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/discountDisplay.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n  selector: \"paDiscountDisplay\",\n  template: `<div class=\"bg-info text-white p-2\">\n                The discount is {{discounter.discount}}\n               </div>`\n})\nexport class PaDiscountDisplayComponent {\n\n  constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/discountEditor.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n    selector: \"paDiscountEditor\",\n    template: `<div class=\"form-group\">\n                   <label>Discount</label>\n                   <input [(ngModel)]=\"discounter.discount\" \n                        class=\"form-control\" type=\"number\" />              \n               </div>`\n})\nexport class PaDiscountEditorComponent {\n\n    constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef \n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover { \n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" \n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>    \n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>    \n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n\n<paDiscountEditor></paDiscountEditor>\n<paDiscountDisplay></paDiscountDisplay>\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Model } from \"./repository.model\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\"\n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    constructor(private model: Model) { }\n\n    // @Output(\"paNewProduct\")\n    // newProductEvent = new EventEmitter<Product>();\n\n    submitForm(form: any) {\n        //this.newProductEvent.emit(this.newProduct);\n        this.model.saveProduct(this.newProduct);        \n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <thead>\n        <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *paFor=\"let item of getProducts(); let i = index\">\n            <td>{{i + 1}}</td>\n            <td>{{item.name}}</td>\n            <td>{{item.category}}</td>\n            <td [pa-price]=\"item.price\" #discount=\"discount\">\n                {{ discount.discountAmount | currency:\"USD\":\"symbol\"}}\n            </td>\n            <td class=\"text-center\">\n                <button class=\"btn btn-danger btn-sm\" \n                        (click)=\"deleteProduct(item.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>    \n</table>\n\n<paDiscountEditor></paDiscountEditor>\n<paDiscountDisplay></paDiscountDisplay>\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n    //discounter: DiscountService = new DiscountService();\n\n    constructor(private dataModel: Model) { }\n\n    // @Input(\"model\")\n    // dataModel: Model;\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n    dateObject: Date = new Date(2020, 1, 20);\n    dateString: string = \"2020-02-20T00:00:00.000Z\";\n    dateNumber: number = 1582156800000;\n\n    selectMap = {\n        \"Watersports\": \"stay dry\", \n        \"Soccer\": \"score goals\",\n        \"other\": \"have fun\"    \n    }\n\n    numberMap = {\n        \"=1\": \"one product\",\n        \"=2\": \"two products\",\n        \"other\": \"# products\"\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\n@Injectable()\nexport class Model {\n    //private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p:Product, id:number) => p.id == id;\n\n    constructor(private dataSource: SimpleDataSource) {\n        //this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n  <div class=\"col-4 p-2\">\n    <paProductForm></paProductForm>\n  </div>\n  <div class=\"col-8 p-2\">\n    <paProductTable></paProductTable>\n  </div>\n</div>\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\"> \n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\" \n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "19 - Using Services/End of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/addTax.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\n\n@Pipe({\n    name: \"addTax\"\n})\nexport class PaAddTaxPipe {\n\n    defaultRate: number = 10;\n\n    transform(value: any, rate?: any): number {\n        let valueNumber = Number.parseFloat(value);\n        let rateNumber = rate == undefined ? \n            this.defaultRate : Number.parseInt(rate);\n        return valueNumber + (valueNumber * (rateNumber / 100));\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\nimport { PaAddTaxPipe } from \"./addTax.pipe\";\nimport { PaCategoryFilterPipe } from \"./categoryFilter.pipe\";\nimport { LOCALE_ID } from \"@angular/core\";\nimport localeFr from '@angular/common/locales/fr';\nimport { registerLocaleData } from '@angular/common';\nimport { PaDiscountDisplayComponent } from \"./discountDisplay.component\";\nimport { PaDiscountEditorComponent } from \"./discountEditor.component\";\nimport { DiscountService } from \"./discount.service\";\nimport { PaDiscountPipe } from \"./discount.pipe\";\nimport { PaDiscountAmountDirective } from \"./discountAmount.directive\";\nimport { SimpleDataSource } from \"./datasource.model\";\nimport { Model } from \"./repository.model\";\n\nregisterLocaleData(localeFr);\n\n@NgModule({\n  imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n  declarations: [ProductComponent, PaAttrDirective, PaModel,\n    PaStructureDirective, PaIteratorDirective,\n    PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n    ProductFormComponent, PaToggleView, PaAddTaxPipe,\n    PaCategoryFilterPipe, PaDiscountDisplayComponent, PaDiscountEditorComponent, \n    PaDiscountPipe, PaDiscountAmountDirective],\n    providers: [DiscountService, SimpleDataSource, Model],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n         SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n            from \"@angular/core\";\n import { Product } from \"./product.model\";\n\n@Directive({\n    selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n    @Input(\"pa-attr\")\n    @HostBinding(\"class\")\n    bgClass: string;\n\n    @Input(\"pa-product\")\n    product: Product;\n\n    @Output(\"pa-category\")\n    click = new EventEmitter<string>();\n\n    @HostListener(\"click\")\n    triggerCustomEvent() {\n        if (this.product != null) {\n            this.click.emit(this.product.category);\n        }\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/categoryFilter.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Pipe({\n    name: \"filter\",\n    pure: false\n})\nexport class PaCategoryFilterPipe {\n\n    transform(products: Product[], category: string): Product[] {\n        return category == undefined ?\n            products : products.filter(p => p.category == category);\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n         SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n    \n    @ContentChildren(PaCellColor, {descendants: true})\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/component.ts",
    "content": "import { Component } from \"@angular/core\";\n//import { Model } from \"./repository.model\";\n//import { Product } from \"./product.model\";\n//import { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    //model: Model = new Model();\n\n    //constructor(public model: Model) { }\n\n    //addProduct(p: Product) {\n    //    this.model.saveProduct(p);\n    //}\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class SimpleDataSource {\n    private data:Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n        new Product(1, \"Kayak\", \"Watersports\", 275),\n        new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n        new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n        new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n        new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/discount.pipe.ts",
    "content": "import { Pipe, Injectable } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Pipe({\n    name: \"discount\",\n    pure: false\n})\nexport class PaDiscountPipe {\n\n    constructor(private discount: DiscountService) { }\n\n    transform(price: number): number {\n        return this.discount.applyDiscount(price);\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/discount.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class DiscountService {\n    private discountValue: number = 10;\n\n    public get discount(): number {\n        return this.discountValue;\n    }\n\n    public set discount(newValue: number) {\n        this.discountValue = newValue || 0;\n    }         \n\n    public applyDiscount(price: number) {\n        return Math.max(price - this.discountValue, 5);\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/discountAmount.directive.ts",
    "content": "import { Directive, HostBinding, Input,\n    SimpleChange, KeyValueDiffer, KeyValueDiffers,\n    ChangeDetectorRef } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Directive({\n    selector: \"td[pa-price]\",\n    exportAs: \"discount\"\n})\nexport class PaDiscountAmountDirective {\n    private differ: KeyValueDiffer<any, any>;\n\n    constructor(private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef,\n        private discount: DiscountService) { }\n\n    @Input(\"pa-price\")\n    originalPrice: number;\n\n    discountAmount: number;\n\n    ngOnInit() {\n        this.differ =\n            this.keyValueDiffers.find(this.discount).create();\n    }\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        if (changes[\"originalPrice\"] != null) {\n            this.updateValue();\n        }\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.discount) != null) {\n            this.updateValue();\n        }\n    }\n\n    private updateValue() {\n        this.discountAmount = this.originalPrice\n            - this.discount.applyDiscount(this.originalPrice);\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/discountDisplay.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n  selector: \"paDiscountDisplay\",\n  template: `<div class=\"bg-info text-white p-2\">\n                The discount is {{discounter.discount}}\n               </div>`\n})\nexport class PaDiscountDisplayComponent {\n\n  constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/discountEditor.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n    selector: \"paDiscountEditor\",\n    template: `<div class=\"form-group\">\n                   <label>Discount</label>\n                   <input [(ngModel)]=\"discounter.discount\" \n                        class=\"form-control\" type=\"number\" />              \n               </div>`\n})\nexport class PaDiscountEditorComponent {\n\n    constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef \n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/log.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\n\nexport enum LogLevel {\n    DEBUG, INFO, ERROR\n}\n\n@Injectable()\nexport class LogService {\n    minimumLevel: LogLevel = LogLevel.INFO;\n\n    logInfoMessage(message: string) {\n        this.logMessage(LogLevel.INFO, message);\n    }\n\n    logDebugMessage(message: string) {\n        this.logMessage(LogLevel.DEBUG, message);\n    }\n\n    logErrorMessage(message: string) {\n        this.logMessage(LogLevel.ERROR, message);\n    }\n\n    logMessage(level: LogLevel, message: string) {\n        if (level >= this.minimumLevel) {\n            console.log(`Message (${LogLevel[level]}): ${message}`);\n        }\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover { \n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" \n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>    \n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>    \n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n\n<paDiscountEditor></paDiscountEditor>\n<paDiscountDisplay></paDiscountDisplay>\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Model } from \"./repository.model\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\"\n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    constructor(private model: Model) { }\n\n    // @Output(\"paNewProduct\")\n    // newProductEvent = new EventEmitter<Product>();\n\n    submitForm(form: any) {\n        //this.newProductEvent.emit(this.newProduct);\n        this.model.saveProduct(this.newProduct);        \n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <thead>\n        <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *paFor=\"let item of getProducts(); let i = index\">\n            <td>{{i + 1}}</td>\n            <td>{{item.name}}</td>\n            <td>{{item.category}}</td>\n            <td [pa-price]=\"item.price\" #discount=\"discount\">\n                {{ discount.discountAmount | currency:\"USD\":\"symbol\"}}\n            </td>\n            <td class=\"text-center\">\n                <button class=\"btn btn-danger btn-sm\" \n                        (click)=\"deleteProduct(item.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>    \n</table>\n\n<paDiscountEditor></paDiscountEditor>\n<paDiscountDisplay></paDiscountDisplay>\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n    //discounter: DiscountService = new DiscountService();\n\n    constructor(private dataModel: Model) { }\n\n    // @Input(\"model\")\n    // dataModel: Model;\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n    dateObject: Date = new Date(2020, 1, 20);\n    dateString: string = \"2020-02-20T00:00:00.000Z\";\n    dateNumber: number = 1582156800000;\n\n    selectMap = {\n        \"Watersports\": \"stay dry\", \n        \"Soccer\": \"score goals\",\n        \"other\": \"have fun\"    \n    }\n\n    numberMap = {\n        \"=1\": \"one product\",\n        \"=2\": \"two products\",\n        \"other\": \"# products\"\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\n@Injectable()\nexport class Model {\n    //private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p:Product, id:number) => p.id == id;\n\n    constructor(private dataSource: SimpleDataSource) {\n        //this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n  <div class=\"col-4 p-2\">\n    <paProductForm></paProductForm>\n  </div>\n  <div class=\"col-8 p-2\">\n    <paProductTable></paProductTable>\n  </div>\n</div>\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\"> \n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\" \n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "20 - Using Service Providers/Beginning of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/addTax.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\n\n@Pipe({\n    name: \"addTax\"\n})\nexport class PaAddTaxPipe {\n\n    defaultRate: number = 10;\n\n    transform(value: any, rate?: any): number {\n        let valueNumber = Number.parseFloat(value);\n        let rateNumber = rate == undefined ? \n            this.defaultRate : Number.parseInt(rate);\n        return valueNumber + (valueNumber * (rateNumber / 100));\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\nimport { PaAddTaxPipe } from \"./addTax.pipe\";\nimport { PaCategoryFilterPipe } from \"./categoryFilter.pipe\";\nimport { LOCALE_ID } from \"@angular/core\";\nimport localeFr from '@angular/common/locales/fr';\nimport { registerLocaleData } from '@angular/common';\nimport { PaDiscountDisplayComponent } from \"./discountDisplay.component\";\nimport { PaDiscountEditorComponent } from \"./discountEditor.component\";\nimport { DiscountService } from \"./discount.service\";\nimport { PaDiscountPipe } from \"./discount.pipe\";\nimport { PaDiscountAmountDirective } from \"./discountAmount.directive\";\nimport { SimpleDataSource } from \"./datasource.model\";\nimport { Model } from \"./repository.model\";\nimport { LogService, LOG_SERVICE, SpecialLogService,\n  LogLevel, LOG_LEVEL} from \"./log.service\";\nimport { VALUE_SERVICE, PaDisplayValueDirective} from \"./valueDisplay.directive\";\n\nlet logger = new LogService();\nlogger.minimumLevel = LogLevel.DEBUG; \n\nregisterLocaleData(localeFr);\n\n@NgModule({\n  imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n  declarations: [ProductComponent, PaAttrDirective, PaModel,\n    PaStructureDirective, PaIteratorDirective,\n    PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n    ProductFormComponent, PaToggleView, PaAddTaxPipe,\n    PaCategoryFilterPipe, PaDiscountDisplayComponent, PaDiscountEditorComponent, \n    PaDiscountPipe, PaDiscountAmountDirective, PaDisplayValueDirective],\n    providers: [DiscountService, SimpleDataSource, Model, LogService,\n      { provide: VALUE_SERVICE, useValue: \"Apples\" }],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n         SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n            from \"@angular/core\";\n import { Product } from \"./product.model\";\n\n@Directive({\n    selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n    @Input(\"pa-attr\")\n    @HostBinding(\"class\")\n    bgClass: string;\n\n    @Input(\"pa-product\")\n    product: Product;\n\n    @Output(\"pa-category\")\n    click = new EventEmitter<string>();\n\n    @HostListener(\"click\")\n    triggerCustomEvent() {\n        if (this.product != null) {\n            this.click.emit(this.product.category);\n        }\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/categoryFilter.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Pipe({\n    name: \"filter\",\n    pure: false\n})\nexport class PaCategoryFilterPipe {\n\n    transform(products: Product[], category: string): Product[] {\n        return category == undefined ?\n            products : products.filter(p => p.category == category);\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n         SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n    \n    @ContentChildren(PaCellColor, {descendants: true})\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/component.ts",
    "content": "import { Component } from \"@angular/core\";\n//import { Model } from \"./repository.model\";\n//import { Product } from \"./product.model\";\n//import { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    //model: Model = new Model();\n\n    //constructor(public model: Model) { }\n\n    //addProduct(p: Product) {\n    //    this.model.saveProduct(p);\n    //}\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/datasource.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class SimpleDataSource {\n    private data:Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n        new Product(1, \"Kayak\", \"Watersports\", 275),\n        new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n        new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n        new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n        new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/discount.pipe.ts",
    "content": "import { Pipe, Injectable } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\nimport { LogService } from \"./log.service\";\n\n@Pipe({\n    name: \"discount\",\n    pure: false\n})\nexport class PaDiscountPipe {\n\n    constructor(private discount: DiscountService,\n                private logger: LogService) { }\n\n    transform(price: number): number {\n        if (price > 100) {\n            this.logger.logInfoMessage(`Large price discounted: ${price}`);\n        }\n        return this.discount.applyDiscount(price);\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/discount.service.ts",
    "content": "import { Injectable, Inject } from \"@angular/core\";\nimport { LogService, LOG_SERVICE, LogLevel } from \"./log.service\";\n\n@Injectable()\nexport class DiscountService {\n    private discountValue: number = 10;\n\n    constructor(private logger: LogService) { }\n\n    public get discount(): number {\n        return this.discountValue;\n    }\n\n    public set discount(newValue: number) {\n        this.discountValue = newValue || 0;\n    }\n\n    public applyDiscount(price: number) {\n        this.logger.logInfoMessage(`Discount ${this.discount}`\n            + ` applied to price: ${price}`);\n        return Math.max(price - this.discountValue, 5);\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/discountAmount.directive.ts",
    "content": "import { Directive, HostBinding, Input,\n    SimpleChange, KeyValueDiffer, KeyValueDiffers,\n    ChangeDetectorRef } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Directive({\n    selector: \"td[pa-price]\",\n    exportAs: \"discount\"\n})\nexport class PaDiscountAmountDirective {\n    private differ: KeyValueDiffer<any, any>;\n\n    constructor(private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef,\n        private discount: DiscountService) { }\n\n    @Input(\"pa-price\")\n    originalPrice: number;\n\n    discountAmount: number;\n\n    ngOnInit() {\n        this.differ =\n            this.keyValueDiffers.find(this.discount).create();\n    }\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        if (changes[\"originalPrice\"] != null) {\n            this.updateValue();\n        }\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.discount) != null) {\n            this.updateValue();\n        }\n    }\n\n    private updateValue() {\n        this.discountAmount = this.originalPrice\n            - this.discount.applyDiscount(this.originalPrice);\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/discountDisplay.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n  selector: \"paDiscountDisplay\",\n  template: `<div class=\"bg-info text-white p-2\">\n                The discount is {{discounter.discount}}\n               </div>`\n})\nexport class PaDiscountDisplayComponent {\n\n  constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/discountEditor.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n    selector: \"paDiscountEditor\",\n    template: `<div class=\"form-group\">\n                   <label>Discount</label>\n                   <input [(ngModel)]=\"discounter.discount\" \n                        class=\"form-control\" type=\"number\" />              \n               </div>`\n})\nexport class PaDiscountEditorComponent {\n\n    constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef \n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/log.service.ts",
    "content": "import { Injectable, InjectionToken } from \"@angular/core\";\n\nexport const LOG_SERVICE = new InjectionToken(\"logger\");\nexport const LOG_LEVEL = new InjectionToken(\"log_level\")\n\nexport enum LogLevel {\n    DEBUG, INFO, ERROR\n}\n\n@Injectable()\nexport class LogService {\n    minimumLevel: LogLevel = LogLevel.INFO;\n\n    logInfoMessage(message: string) {\n        this.logMessage(LogLevel.INFO, message);\n    }\n\n    logDebugMessage(message: string) {\n        this.logMessage(LogLevel.DEBUG, message);\n    }\n\n    logErrorMessage(message: string) {\n        this.logMessage(LogLevel.ERROR, message);\n    }\n\n    logMessage(level: LogLevel, message: string) {\n        if (level >= this.minimumLevel) {\n            console.log(`Message (${LogLevel[level]}): ${message}`);\n        }\n    }\n}\n\n@Injectable()\nexport class SpecialLogService extends LogService {\n\n    constructor() {\n        super()\n        this.minimumLevel = LogLevel.DEBUG;\n    }\n\n    logMessage(level: LogLevel, message: string) {\n        if (level >= this.minimumLevel) {\n            console.log(`Special Message (${LogLevel[level]}): ${message}`);\n        }\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover { \n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" \n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>    \n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>    \n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n\n<div class=\"bg-info text-white m-2 p-2\">\n    View Child Value: <span paDisplayValue></span>\n</div>\n<div class=\"bg-info text-white m-2 p-2\">\n    Content Child Value: <ng-content></ng-content>\n</div>\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation, \n    Inject, SkipSelf } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Model } from \"./repository.model\";\nimport { VALUE_SERVICE } from \"./valueDisplay.directive\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\",\n    viewProviders: [{ provide: VALUE_SERVICE, useValue: \"Oranges\" }]\n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    constructor(private model: Model,\n            @Inject(VALUE_SERVICE) @SkipSelf() private serviceValue: string) {\n        console.log(\"Service Value: \" + serviceValue);\n    }\n\n    submitForm(form: any) {\n        this.model.saveProduct(this.newProduct);        \n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <thead>\n        <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *paFor=\"let item of getProducts(); let i = index\">\n            <td>{{i + 1}}</td>\n            <td>{{item.name}}</td>\n            <td>{{item.category}}</td>\n            <td [pa-price]=\"item.price\" #discount=\"discount\">\n                {{ discount.discountAmount | currency:\"USD\":\"symbol\"}}\n            </td>\n            <td class=\"text-center\">\n                <button class=\"btn btn-danger btn-sm\" \n                        (click)=\"deleteProduct(item.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>    \n</table>\n\n<paDiscountEditor></paDiscountEditor>\n<paDiscountDisplay></paDiscountDisplay>\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { DiscountService } from \"./discount.service\";\nimport { LogService } from \"./log.service\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\",\n    providers:[LogService]    \n\n})\nexport class ProductTableComponent {\n    \n    constructor(private dataModel: Model) { }\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n    dateObject: Date = new Date(2020, 1, 20);\n    dateString: string = \"2020-02-20T00:00:00.000Z\";\n    dateNumber: number = 1582156800000;\n\n    selectMap = {\n        \"Watersports\": \"stay dry\", \n        \"Soccer\": \"score goals\",\n        \"other\": \"have fun\"    \n    }\n\n    numberMap = {\n        \"=1\": \"one product\",\n        \"=2\": \"two products\",\n        \"other\": \"# products\"\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\n@Injectable()\nexport class Model {\n    //private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p:Product, id:number) => p.id == id;\n\n    constructor(private dataSource: SimpleDataSource) {\n        //this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n  <div class=\"col-4 p-2\">\n    <paProductForm>\n      <span paDisplayValue></span>\n    </paProductForm>\n  </div>\n  <div class=\"col-8 p-2\">\n    <paProductTable></paProductTable>\n  </div>\n</div>\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\"> \n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\" \n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/app/valueDisplay.directive.ts",
    "content": "import { Directive, InjectionToken, Inject,\n         HostBinding, Host, Optional} from \"@angular/core\";\n\nexport const VALUE_SERVICE = new InjectionToken(\"value_service\");\n\n@Directive({\n    selector: \"[paDisplayValue]\"\n})\nexport class PaDisplayValueDirective {\n\n    constructor( @Inject(VALUE_SERVICE) @Host() @Optional() serviceValue: string) {\n        this.elementContent = serviceValue || \"No Value\";\n    }\n\n    @HostBinding(\"textContent\")\n    elementContent: string;\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "20 - Using Service Providers/End of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                      \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular-devkit/build-angular\nMIT\nThe MIT License\n\nCopyright (c) 2017 Google, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncore-js\nMIT\nCopyright (c) 2014-2019 Denis Pushkarev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nregenerator-runtime\nMIT\nMIT License\n\nCopyright (c) 2014-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2019 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.18138bb15891daf44583.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime-es2015.0811dcefd377500b5b1a.js\" type=\"module\"></script><script src=\"runtime-es5.0811dcefd377500b5b1a.js\" nomodule defer></script><script src=\"polyfills-es5.277e2e1d6fb2daf91a5c.js\" nomodule defer></script><script src=\"polyfills-es2015.ca64e4516afbb1b890d5.js\" type=\"module\"></script><script src=\"main-es2015.bde05668bf3f8343a347.js\" type=\"module\"></script><script src=\"main-es5.bde05668bf3f8343a347.js\" nomodule defer></script></body>\n</html>\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/dist/example/main-es2015.bde05668bf3f8343a347.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);let o=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+e.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function i(e){setTimeout(()=>{throw e},0)}const l={closed:!0,next(e){},error(e){if(s.useDeprecatedSynchronousErrorHandling)throw e;i(e)},complete(){}},u=(()=>Array.isArray||(e=>e&&\"number\"==typeof e.length))();function c(e){return null!==e&&\"object\"==typeof e}const a=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let h=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;e<n.length;++e)n[e].remove(this);if(r(o))try{o.call(this)}catch(i){t=i instanceof a?d(i.errors):[i]}if(u(s)){let e=-1,n=s.length;for(;++e<n;){const n=s[e];if(c(n))try{n.unsubscribe()}catch(i){t=t||[],i instanceof a?t=t.concat(d(i.errors)):t.push(i)}}}if(t)throw new a(t)}add(t){let n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){const t=n;n=new e,n._subscriptions=[t]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof e){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(e){const t=this._subscriptions;if(t){const n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}return e.EMPTY=function(e){return e.closed=!0,e}(new e),e})();function d(e){return e.reduce((e,t)=>e.concat(t instanceof a?t.errors:t),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!e){this.destination=l;break}if(\"object\"==typeof e){e instanceof p?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,e,t,n)}}[f](){return this}static create(e,t,n){const r=new p(e,t,n);return r.syncErrorThrowable=!1,r}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class _ extends p{constructor(e,t,n,o){let s;super(),this._parentSubscriber=e;let i=this;r(t)?s=t:t&&(s=t.next,n=t.error,o=t.complete,t!==l&&(i=Object.create(t),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=s,this._error=n,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;s.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=s;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):i(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;i(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);s.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),s.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(e,t,n){if(!s.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return s.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const m=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function y(){}let g=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:r}=this,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[f])return e[f]()}return e||t||n?new p(e,t,n):new p(l)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||s.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){s.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof p?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(o){n(o),r&&r.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[m](){return this}pipe(...e){return 0===e.length?this:((t=e)?1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)}:y)(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=s.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}const w=(()=>{function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e})();class b extends h{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class C extends p{constructor(e){super(e),this.destination=e}}let x=(()=>{class e extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(e){const t=new E(this,this);return t.operator=e,t}next(e){if(this.closed)throw new w;if(!this.isStopped){const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].next(e)}}error(e){if(this.closed)throw new w;this.hasError=!0,this.thrownError=e,this.isStopped=!0;const{observers:t}=this,n=t.length,r=t.slice();for(let o=0;o<n;o++)r[o].error(e);this.observers.length=0}complete(){if(this.closed)throw new w;this.isStopped=!0;const{observers:e}=this,t=e.length,n=e.slice();for(let r=0;r<t;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(e){if(this.closed)throw new w;return super._trySubscribe(e)}_subscribe(e){if(this.closed)throw new w;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new b(this,e))}asObservable(){const e=new g;return e.source=this,e}}return e.create=(e,t)=>new E(e,t),e})();class E extends x{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):h.EMPTY}}class k extends p{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const T=e=>t=>{for(let n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()};function S(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const I=S();const A=e=>{if(e&&\"function\"==typeof e[m])return s=e,e=>{const t=s[m]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return T(e);var t,n,r,o,s;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,e=>(o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,i),e);if(e&&\"function\"==typeof e[I])return r=e,e=>{const t=r[I]();for(;;){const n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e};{const t=c(e)?\"an invalid object\":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected.`+\" You can provide an Observable, Promise, Array, or Iterable.\")}};class D extends p{notifyNext(e,t,n,r,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class O{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}class N extends p{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}class P{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new R(e,this.project,this.concurrent))}}class R extends D{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}_tryNext(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}_innerSub(e,t,n){const r=new k(this,t,n),o=this.destination;o.add(r);const s=function(e,t,n,r,o=new k(e,n,r)){if(!o.closed)return t instanceof g?t.subscribe(o):A(t)(o)}(this,e,void 0,void 0,r);s!==r&&o.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(e,t,n,r,o){this.destination.next(t)}notifyComplete(e){const t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function j(e){return e}function M(){return function(e){return e.lift(new H(e))}}class H{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const r=new F(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}class F extends p{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new h,e.add(this.source.subscribe(new Z(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}refCount(){return M()(this)}}const L=(()=>{const e=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Z extends C{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function $(){return new x}function B(e,t,n){const r=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function o(...e){if(this instanceof o)return r.apply(this,e),this;const t=new o(...e);return n.annotation=t,n;function n(e,n,r){const o=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;for(;o.length<=r;)o.push(null);return(o[r]=o[r]||[]).push(t),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}const z=B(\"Inject\",e=>({token:e})),U=B(\"Optional\"),q=B(\"Self\"),W=B(\"SkipSelf\");var Q=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function G(e){for(let t in e)if(e[t]===G)return t;throw Error(\"Could not find renamed property on target object.\")}function J(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function K(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function Y(e){return X(e,e[te])||X(e,e[oe])}function X(e,t){return t&&t.token===e?t:null}function ee(e){return e&&(e.hasOwnProperty(ne)||e.hasOwnProperty(se))?e[ne]:null}const te=G({\"\\u0275prov\":G}),ne=G({\"\\u0275inj\":G}),re=G({\"\\u0275provFallback\":G}),oe=G({ngInjectableDef:G}),se=G({ngInjectorDef:G});function ie(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ie).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return\"\"+t;const n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}const ue=G({__forward_ref__:G});function ce(e){return e.__forward_ref__=ce,e.toString=function(){return ie(this())},e}function ae(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ue)&&t.__forward_ref__===ce?e():e;var t}const he=\"undefined\"!=typeof globalThis&&globalThis,de=\"undefined\"!=typeof window&&window,fe=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pe=\"undefined\"!=typeof global&&global,_e=he||pe||de||fe,me=G({\"\\u0275cmp\":G}),ye=G({\"\\u0275dir\":G}),ge=G({\"\\u0275pipe\":G}),ve=G({\"\\u0275mod\":G}),we=G({\"\\u0275loc\":G}),be=G({\"\\u0275fac\":G}),Ce=G({__NG_ELEMENT_ID__:G});class xe{constructor(e,t){this._desc=e,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\\u0275prov=J({token:this,providedIn:t.providedIn||\"root\",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Ee=new xe(\"INJECTOR\",-1),ke={},Te=/\\n/gm,Se=G({provide:String,useValue:G});let Ie,Ae=void 0;function De(e){const t=Ae;return Ae=e,t}function Oe(e){const t=Ie;return Ie=e,t}function Ne(e,t=Q.Default){if(void 0===Ae)throw new Error(\"inject() must be called from an injection context\");return null===Ae?Re(e,void 0,t):Ae.get(e,t&Q.Optional?null:void 0,t)}function Pe(e,t=Q.Default){return(Ie||Ne)(ae(e),t)}function Re(e,t,n){const r=Y(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Q.Optional)return null;if(void 0!==t)return t;throw new Error(`Injector: NOT_FOUND [${ie(e)}]`)}function je(e){const t=[];for(let n=0;n<e.length;n++){const r=ae(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let e=void 0,n=Q.Default;for(let t=0;t<r.length;t++){const o=r[t];o instanceof U||\"Optional\"===o.ngMetadataName||o===U?n|=Q.Optional:o instanceof W||\"SkipSelf\"===o.ngMetadataName||o===W?n|=Q.SkipSelf:o instanceof q||\"Self\"===o.ngMetadataName||o===q?n|=Q.Self:e=o instanceof z||o===z?o.token:o}t.push(Pe(e,n))}else t.push(Pe(r))}return t}class Me{get(e,t=ke){if(t===ke){const t=new Error(`NullInjectorError: No provider for ${ie(e)}!`);throw t.name=\"NullInjectorError\",t}return t}}class He{}function Fe(e,t){e.forEach(e=>Array.isArray(e)?Fe(e,t):t(e))}const Ve=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Le=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Ze(e){return\"\"+{toString:e}}const $e={},Be=[];let ze=0;function Ue(e){return Je(e)||function(e){return e[ye]||null}(e)}function qe(e){return function(e){return e[ge]||null}(e)}const We={};function Qe(e){const t={type:e.type,bootstrap:e.bootstrap||Be,declarations:e.declarations||Be,imports:e.imports||Be,exports:e.exports||Be,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Ze(()=>{We[e.id]=e.type}),t}function Ge(e,t){if(null==e)return $e;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),n[o]=r,t&&(t[o]=s)}return n}function Je(e){return e[me]||null}function Ke(e,t){return e.hasOwnProperty(be)?e[be]:null}function Ye(e,t){const n=e[ve]||null;if(!n&&!0===t)throw new Error(`Type ${ie(e)} does not have '\\u0275mod' property.`);return n}function Xe(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function et(e){return Array.isArray(e)&&!0===e[1]}function tt(e){return 0!=(8&e.flags)}function nt(e){return null!==e.template}const rt={lFrame:yt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function ot(){return rt.bindingsEnabled}function st(){return rt.lFrame.lView}function it(){return rt.lFrame.tView}function lt(){return rt.lFrame.previousOrParentTNode}function ut(e,t){rt.lFrame.previousOrParentTNode=e,rt.lFrame.isParent=t}function ct(){return rt.lFrame.isParent}function at(){return rt.checkNoChangesMode}function ht(e){rt.checkNoChangesMode=e}function dt(e,t){const n=rt.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function ft(e){rt.lFrame.currentQueryIndex=e}function pt(e,t){const n=mt();rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){const n=mt(),r=e[1];rt.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function mt(){const e=rt.lFrame,t=null===e?null:e.child;return null===t?yt(e):t}function yt(e){const t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function gt(){const e=rt.lFrame;return rt.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}const vt=gt;function wt(){const e=gt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function bt(e){rt.lFrame.selectedIndex=e}function Ct(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const t=e.data[n];t.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,t.afterContentInit),t.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,t.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,t.afterContentChecked)),t.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,t.afterViewInit),t.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,t.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,t.afterViewChecked)),null!=t.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,t.onDestroy)}}function xt(e,t,n){Tt(e,t,3,n)}function Et(e,t,n,r){(3&e[2])===n&&Tt(e,t,n,r)}function kt(e,t){let n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function Tt(e,t,n,r){const o=null!=r?r:-1;let s=0;for(let i=void 0!==r?65535&e[18]:0;i<t.length;i++)if(\"number\"==typeof t[i+1]){if(s=t[i],null!=r&&s>=r)break}else t[i]<0&&(e[18]+=65536),(s<o||-1==o)&&(St(e,n,t,i),e[18]=(4294901760&e[18])+i+2),i++}function St(e,t,n,r){const o=n[r]<0,s=n[r+1],i=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,s.call(i)):s.call(i)}class It{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}let At=void 0;function Dt(e){return!!e.listen}const Ot={createRenderer:(e,t)=>void 0!==At?At:\"undefined\"!=typeof document?document:void 0};function Nt(e,t,n){const r=Dt(e);let o=0;for(;o<n.length;){const s=n[o];if(\"number\"==typeof s){if(0!==s)break;o++;const i=n[o++],l=n[o++],u=n[o++];r?e.setAttribute(t,l,u,i):t.setAttributeNS(i,l,u)}else{const i=s,l=n[++o];64===i.charCodeAt(0)?r&&e.setProperty(t,i,l):r?e.setAttribute(t,i,l):t.setAttribute(i,l),o++}}return o}function Pt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];\"number\"==typeof o?n=o:0===n||Rt(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Rt(e,t,n,r,o){let s=0,i=e.length;if(-1===t)i=-1;else for(;s<e.length;){const n=e[s++];if(\"number\"==typeof n){if(n===t){i=-1;break}if(n>t){i=s-1;break}}}for(;s<e.length;){const t=e[s];if(\"number\"==typeof t)break;if(t===n){if(null===r)return void(null!==o&&(e[s+1]=o));if(r===e[s+1])return void(e[s+2]=o)}s++,null!==r&&s++,null!==o&&s++}-1!==i&&(e.splice(i,0,t),s=i+1),e.splice(s++,0,n),null!==r&&e.splice(s++,0,r),null!==o&&e.splice(s++,0,o)}function jt(e){return 32767&e}function Mt(e,t){let n=e>>16,r=t;for(;n>0;)r=r[15],n--;return r}function Ht(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}const Ft=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(_e))();function Vt(e){return e instanceof Function?e():e}let Lt=!0;function Zt(e){const t=Lt;return Lt=e,t}let $t=0;function Bt(e,t){const n=Ut(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,zt(r.data,e),zt(t,null),zt(r.blueprint,null));const o=qt(e,t),s=e.injectorIndex;if(-1!==o){const e=jt(o),n=Mt(o,t),r=n[1].data;for(let o=0;o<8;o++)t[s+o]=n[e+o]|r[e+o]}return t[s+8]=o,s}function zt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ut(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function qt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=t[6],r=1;for(;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Wt(e,t,n){!function(e,t,n){let r=\"string\"!=typeof n?n[Ce]:n.charCodeAt(0)||0;null==r&&(r=n[Ce]=$t++);const o=255&r,s=1<<o,i=64&o,l=32&o,u=t.data;128&o?i?l?u[e+7]|=s:u[e+6]|=s:l?u[e+5]|=s:u[e+4]|=s:i?l?u[e+3]|=s:u[e+2]|=s:l?u[e+1]|=s:u[e]|=s}(e,t,n)}const Qt={};function Gt(e,t,n,r,o,s){const i=t[1],l=i.data[e+8],u=function(e,t,n,r,o){const s=e.providerIndexes,i=t.data,l=65535&s,u=e.directiveStart,c=s>>16,a=o?l+c:e.directiveEnd;for(let h=r?l:l+c;h<a;h++){const e=i[h];if(h<u&&n===e||h>=u&&e.type===n)return h}if(o){const e=i[u];if(e&&nt(e)&&e.type===n)return u}return null}(l,i,n,null==r?function(e){return 2==(2&e.flags)}(l)&&Lt:r!=i&&3===l.type,o&Q.Host&&s===l);return null!==u?Jt(t,i,u,l):Qt}function Jt(e,t,n,r){let o=e[n];const s=t.data;if(o instanceof It){const i=o;if(i.resolving)throw new Error(`Circular dep for ${Ht(s[n])}`);const l=Zt(i.canSeeViewProviders);let u;i.resolving=!0,i.injectImpl&&(u=Oe(i.injectImpl)),pt(e,r);try{o=e[n]=i.factory(void 0,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){const{onChanges:r,onInit:o,doCheck:s}=t;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s))}(n,s[n],t)}finally{i.injectImpl&&Oe(u),Zt(l),i.resolving=!1,vt()}}return o}function Kt(e,t,n){const r=64&e,o=32&e;let s;return s=128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t],!!(s&1<<e)}function Yt(e,t){return!(e&Q.Self||e&Q.Host&&t)}class Xt{constructor(e,t){this._tNode=e,this._lView=t}get(e,t){return function(e,t,n,r=Q.Default,o){if(null!==e){const o=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;const t=e[Ce];return\"number\"==typeof t&&t>0?255&t:t}(n);if(\"function\"==typeof o){pt(t,e);try{const e=o();if(null!=e||r&Q.Optional)return e;throw new Error(`No provider for ${Ht(n)}!`)}finally{vt()}}else if(\"number\"==typeof o){if(-1===o)return new Xt(e,t);let s=null,i=Ut(e,t),l=-1,u=r&Q.Host?t[16][6]:null;for((-1===i||r&Q.SkipSelf)&&(l=-1===i?qt(e,t):t[i+8],Yt(r,!1)?(s=t[1],i=jt(l),t=Mt(l,t)):i=-1);-1!==i;){l=t[i+8];const e=t[1];if(Kt(o,i,e.data)){const e=Gt(i,t,n,s,r,u);if(e!==Qt)return e}Yt(r,t[1].data[i+8]===u)&&Kt(o,i,t)?(s=e,i=jt(l),t=Mt(l,t)):i=-1}}}if(r&Q.Optional&&void 0===o&&(o=null),0==(r&(Q.Self|Q.Host))){const e=t[9],s=Oe(void 0);try{return e?e.get(n,o,r&Q.Optional):Re(n,o,r&Q.Optional)}finally{Oe(s)}}if(r&Q.Optional)return o;throw new Error(`NodeInjector: NOT_FOUND [${Ht(n)}]`)}(this._tNode,this._lView,e,void 0,t)}}function en(e){return e.ngDebugContext}function tn(e){return e.ngOriginalError}function nn(e,...t){e.error(...t)}class rn{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||nn}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(e){return e?en(e)?en(e):this._findContext(tn(e)):null}_findOriginalError(e){let t=tn(e);for(;t&&tn(t);)t=tn(t);return t}}let on=!0,sn=!1;function ln(){return sn=!0,on}function un(e){for(;Array.isArray(e);)e=e[0];return e}function cn(e,t){return un(t[e.index])}function an(e,t){const n=t[e];return Xe(n)?n:n[0]}function hn(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function dn(e){return 128==(128&e[2])}function fn(e,t){return null===e||null==t?null:e[t]}function pn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function mn(e){throw new Error(`Multiple components match node with tagname ${e.tagName}`)}function yn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function gn(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const n=t.length;if(o+n===r||e.charCodeAt(o+n)<=32)return o}n=o+1}}function vn(e,t,n){let r=0;for(;r<e.length;){let o=e[r++];if(n&&\"class\"===o){if(o=e[r],-1!==gn(o.toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function bn(e,t,n){let r=4;const o=e.attrs||[],s=function(e){for(let n=0;n<e.length;n++)if(3===(t=e[n])||4===t||6===t)return n;var t;return e.length}(o);let i=!1;for(let l=0;l<t.length;l++){const u=t[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(Cn(r))return!1;i=!0}}else{const c=8&r?u:t[++l];if(8&r&&null!==e.attrs){if(!vn(e.attrs,c,n)){if(Cn(r))return!1;i=!0}continue}const a=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===a){if(Cn(r))return!1;i=!0;continue}if(\"\"!==c){let e;e=a>s?\"\":o[a+1].toLowerCase();const t=8&r?e:null;if(t&&-1!==gn(t,c,0)||2&r&&c!==e){if(Cn(r))return!1;i=!0}}}}else{if(!i&&!Cn(r)&&!Cn(u))return!1;if(i&&Cn(u))continue;i=!1,r=u|1&r}}return Cn(r)||i}function Cn(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let n=!1;for(;o<t.length;){const r=t[o];if(r===e)return o;if(3===r||6===r)n=!0;else{if(1===r||2===r){let e=t[++o];for(;\"string\"==typeof e;)e=t[++o];continue}if(4===r)break;if(0===r){o+=4;continue}}o+=n?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function En(e,t,n=!1){for(let r=0;r<t.length;r++)if(bn(e,t[r],n))return!0;return!1}function kn(e,t){return e?\":not(\"+t.trim()+\")\":t}function Tn(e){let t=e[0],n=1,r=2,o=\"\",s=!1;for(;n<e.length;){let i=e[n];if(\"string\"==typeof i)if(2&r){const t=e[++n];o+=\"[\"+i+(t.length>0?'=\"'+t+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+i:4&r&&(o+=\" \"+i);else\"\"===o||Cn(i)||(t+=kn(s,o),o=\"\"),r=i,s=s||!Cn(r);n++}return\"\"!==o&&(t+=kn(s,o)),t}const Sn={};function In(e){const t=e[3];return et(t)?t[3]:t}function An(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const o=n[r],s=n[r+1];if(-1!==s){const n=e.data[s];ft(o),n.contentQueries(2,t[s],s)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function On(e,t,n,r,o,s,i,l,u,c){const a=t.blueprint.slice();return a[0]=o,a[2]=140|r,pn(a),a[3]=a[15]=e,a[8]=n,a[10]=i||e&&e[10],a[11]=l||e&&e[11],a[12]=u||e&&e[12]||null,a[9]=c||e&&e[9]||null,a[6]=s,a[16]=2==t.type?e[16]:a,a}function Nn(e,t,n,r,o,s){const i=n+19,l=e.data[i]||function(e,t,n,r,o,s){const i=lt(),l=ct(),u=l?i:i&&i.parent,c=e.data[n]=Vn(0,u&&u!==t?u:null,r,n,o,s);return null===e.firstChild&&(e.firstChild=c),i&&(!l||null!=i.child||null===c.parent&&2!==i.type?l||(i.next=c):i.child=c),c}(e,t,i,r,o,s);return ut(l,!0),l}function Pn(e,t,n){_t(t,t[6]);try{const r=e.viewQuery;null!==r&&or(1,r,n);const o=e.template;null!==o&&Mn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&An(e,t),e.staticViewQueries&&or(2,e.viewQuery,n);const s=e.components;null!==s&&function(e,t){for(let n=0;n<t.length;n++)er(e,t[n])}(t,s)}finally{t[2]&=-5,wt()}}function Rn(e,t,n,r){const o=t[2];if(256==(256&o))return;_t(t,t[6]);const s=at();try{pn(t),rt.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Mn(e,t,n,2,r);const i=3==(3&o);if(!s)if(i){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,null)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,null),kt(t,0)}if(function(e){let t=e[13];for(;null!==t;){let n;if(et(t)&&(n=t[2])>>1==-1){for(let e=9;e<t.length;e++){const n=t[e],r=n[1];dn(n)&&Rn(r,n,r.template,n[8])}0!=(1&n)&&Yn(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&An(e,t),!s)if(i){const n=e.contentCheckHooks;null!==n&&xt(t,n)}else{const n=e.contentHooks;null!==n&&Et(t,n,1),kt(t,1)}!function(e,t){try{const n=e.expandoInstructions;if(null!==n){let r=e.expandoStartIndex,o=-1,s=-1;for(let e=0;e<n.length;e++){const i=n[e];\"number\"==typeof i?i<=0?(s=0-i,bt(s),r+=9+n[++e],o=r):r+=i:(null!==i&&(dt(r,o),i(2,t[o])),o++)}}}finally{bt(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)Xn(e,t[n])}(t,l);const u=e.viewQuery;if(null!==u&&or(2,u,r),!s)if(i){const n=e.viewCheckHooks;null!==n&&xt(t,n)}else{const n=e.viewHooks;null!==n&&Et(t,n,2),kt(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),s||(t[2]&=-73)}finally{wt()}}function jn(e,t,n,r){const o=t[10],s=!at(),i=4==(4&t[2]);try{s&&!i&&o.begin&&o.begin(),i&&Pn(e,t,r),Rn(e,t,n,r)}finally{s&&!i&&o.end&&o.end()}}function Mn(e,t,n,r,o){const s=rt.lFrame.selectedIndex;try{bt(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){const n=e.preOrderCheckHooks;null!==n&&xt(t,n,0)}else{const n=e.preOrderHooks;null!==n&&Et(t,n,0,0)}bt(0)}(e,t,0,at()),n(r,o)}finally{bt(s)}}function Hn(e){return e.tView||(e.tView=Fn(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Fn(e,t,n,r,o,s,i,l,u,c){const a=19+r,h=a+o,d=function(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:Sn);return n}(a,h);return d[1]={type:e,id:t,blueprint:d,template:n,queries:null,viewQuery:l,node:null,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof s?s():s,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:c}}function Vn(e,t,n,r,o,s){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Ln(e,t,n){for(let r in e)if(e.hasOwnProperty(r)){const o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Zn(e,t){const n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function $n(e,t,n){for(let r=0;r<n;r++)t.push(Sn),e.blueprint.push(Sn),e.data.push(null)}function Bn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function zn(e,t,n){const r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Un(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function qn(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;nt(t)&&(n[\"\"]=e)}}function Wn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Qn(e,t,n){e.data.push(n);const r=n.factory||(n.factory=Ke(n.type)),o=new It(r,nt(n),null);e.blueprint.push(o),t.push(o)}function Gn(e,t,n){const r=cn(t,e),o=Hn(n),s=e[10],i=tr(e,On(e,o,null,n.onPush?64:16,r,t,s,s.createRenderer(r,n)));e[t.index]=i}function Jn(e,t,n,r,o,s){const i=s[t];if(null!==i){const e=r.setInput;for(let t=0;t<i.length;){const o=i[t++],s=i[t++],l=i[t++];null!==e?r.setInput(n,l,o,s):n[s]=l}}}function Kn(e,t){let n=null,r=0;for(;r<t.length;){const o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function Yn(e,t){const n=e[5];for(let r=0;r<n.length;r++){const e=n[r],o=e[3][3][16];if(o!==t&&0==(16&o[2])){const t=e[1];Rn(t,e,t.template,e[8])}}}function Xn(e,t){const n=an(t,e);if(dn(n)&&80&n[2]){const e=n[1];Rn(e,n,e.template,n[8])}}function er(e,t){const n=an(t,e),r=n[1];!function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),Pn(r,n,n[8])}function tr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function nr(e,t,n){const r=t[10];r.begin&&r.begin();try{Rn(e,t,e.template,n)}catch(o){throw function(e,t){const n=e[9],r=n?n.get(rn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function rr(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],r=hn(n),o=r[1];jn(o,r,o.template,n)}}(e[8])}function or(e,t,n){ft(0),t(e,n)}const sr=(()=>Promise.resolve(null))();function ir(e,t){const n=t[3];return-1===e.index?et(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){let s,i=!1;et(r)?s=r:Xe(r)&&(i=!0,r=r[0]);const l=un(r);0===e&&null!==n?null==o?hr(t,n,l):ar(t,n,l,o||null):1===e&&null!==n?ar(t,n,l,o||null):2===e?function(e,t,n){const r=fr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,l,i):3===e&&t.destroyNode(l),null!=s&&function(e,t,n,r,o){const s=n[7];s!==un(n)&&lr(t,e,r,s,o);for(let i=9;i<n.length;i++){const o=n[i];mr(o[1],o,e,t,r,s)}}(t,e,s,n,o)}}function ur(e,t){let n;return Xe(e)&&(n=e[6])&&2===n.type?ir(n,e):e[3]===t?null:e[3]}function cr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const e=t[n[r]];e instanceof It||n[r+1].call(e)}}(e,t),function(e,t){const n=e.cleanup;if(null!==n){const e=t[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const o=n[r+1],s=\"function\"==typeof o?o(t):un(t[o]),i=e[n[r+2]],l=n[r+3];\"boolean\"==typeof l?s.removeEventListener(n[r],i,l):l>=0?e[l]():e[-l].unsubscribe(),r+=2}else n[r].call(e[n[r+1]]);t[7]=null}}(e,t);const n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();const r=t[17];if(null!==r&&et(t[3])){r!==t[3]&&function(e,t){const n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);const n=t[5];null!==n&&n.detachView(e)}}}function ar(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function hr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function dr(e,t,n,r){null!==r?ar(e,t,n,r):hr(e,t,n)}function fr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function pr(e,t,n,r){const o=function(e,t,n){let r=t.parent;for(;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){const e=n[6];return 2===e.type?function(e,t){const n=ir(e,t);return n?fr(t[11],n[7]):null}(e,n):n[0]}if(t&&5===t.type&&4&t.flags)return cn(t,n).parentNode;if(2&r.flags){const t=e.data,n=t[t[r.index].directiveStart].encapsulation;if(n!==Le.ShadowDom&&n!==Le.Native)return null}return cn(r,n)}(e,r,t);if(null!=o){const e=t[11],s=function(e,t){if(2===e.type){const n=ir(e,t);return null===n?null:function e(t,n){const r=9+t+1;if(r<n.length){const t=n[r],o=t[1].firstChild;if(null!==o)return function t(n,r){if(null!==r){const o=r.type;if(3===o)return cn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){const o=r.child;if(null!==o)return t(n,o);{const t=n[r.index];return et(t)?e(-1,t):un(t)}}{const e=n[16],o=e[6],s=In(e),i=o.projection[r.projection];return null!=i?t(s,i):t(n,r.next)}}return null}(t,o)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?cn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(let t=0;t<n.length;t++)dr(e,o,n[t],s);else dr(e,o,n,s)}}function _r(e,t,n,r,o,s,i){for(;null!=n;){const l=r[n.index],u=n.type;i&&0===t&&(l&&_n(un(l),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,s,!1),lr(t,e,o,l,s)):1===u?yr(e,t,r,n,o,s):lr(t,e,o,l,s)),n=i?n.projectionNext:n.next}}function mr(e,t,n,r,o,s){_r(n,r,e.node.child,t,o,s,!1)}function yr(e,t,n,r,o,s){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)lr(t,e,o,l[u],s);else _r(e,t,l,i[3],o,s,!0)}function gr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function vr(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}class wr extends class{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}get rootNodes(){const e=this._lView;return null==e[0]?function e(t,n,r,o,s=!1){for(;null!==r;){const i=n[r.index];if(null!==i&&o.push(un(i)),et(i))for(let t=9;t<i.length;t++){const n=i[t],r=n[1].firstChild;null!==r&&e(n[1],n,r,o)}const l=r.type;if(4===l||5===l)e(t,n,r.child,o);else if(1===l){const t=n[16],s=t[6],i=In(t);let l=s.projection[r.projection];null!==l&&null!==i&&e(i[1],i,l,o,!0)}r=s?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){const n=t[11];Dt(n)&&n.destroyNode&&mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return cr(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const e=t[9];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&cr(t[1],t),t=ur(t,e);null===t&&(t=e),Xe(t)&&cr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}onDestroy(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}markForCheck(){!function(e){for(;e;){e[2]|=64;const t=In(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){nr(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ht(!0);try{nr(e,t,n)}finally{ht(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}detachFromAppRef(){var e;this._appRef=null,mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}}{constructor(e){super(e),this._view=e}detectChanges(){rr(this._view)}checkNoChanges(){!function(e){ht(!0);try{rr(e)}finally{ht(!1)}}(this._view)}get context(){return null}}let br;function Cr(e,t,n){return br||(br=class extends e{}),new br(cn(t,n))}const xr=new xe(\"Set Injector scope.\"),Er={},kr={},Tr=[];let Sr=void 0;function Ir(){return void 0===Sr&&(Sr=new Me),Sr}function Ar(e,t=null,n=null,r){return t=t||Ir(),new Dr(e,n,t,r)}class Dr{constructor(e,t,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];t&&Fe(t,n=>this.processProvider(n,e,t)),Fe([e],e=>this.processInjectorType(e,[],o)),this.records.set(Ee,Nr(void 0,this));const s=this.records.get(xr);this.scope=null!=s?s.value:null,this.injectorDefTypes.forEach(e=>this.get(e)),this.source=r||(\"object\"==typeof e?null:ie(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=ke,n=Q.Default){this.assertNotDestroyed();const r=De(this);try{if(!(n&Q.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=(\"function\"==typeof(o=e)||\"object\"==typeof o&&o instanceof xe)&&Y(e);t=n&&this.injectableDefInScope(n)?Nr(Or(e),Er):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&Q.Self?Ir():this.parent).get(e,t=n&Q.Optional&&t===ke?null:t)}catch(s){if(\"NullInjectorError\"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(ie(e)),r)throw s;return function(e,t,n,r){const o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n,r=null){e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;let o=ie(t);if(Array.isArray(t))o=t.map(ie).join(\" -> \");else if(\"object\"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let r=t[n];e.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):ie(r)))}o=`{${e.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${o}]: ${e.replace(Te,\"\\n  \")}`}(\"\\n\"+e.message,o,n,r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(s,e,\"R3InjectorError\",this.source)}throw s}finally{De(r)}var o}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ie(n))),`R3Injector[${e.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(e,t,n){if(!(e=ae(e)))return!1;let r=ee(e);const o=null==r&&e.ngModule||void 0,s=void 0===o?e:o,i=-1!==n.indexOf(s);if(void 0!==o&&(r=ee(o)),null==r)return!1;if(null!=r.imports&&!i){let e;n.push(s);try{Fe(r.imports,r=>{this.processInjectorType(r,t,n)&&(void 0===e&&(e=[]),e.push(r))})}finally{}if(void 0!==e)for(let t=0;t<e.length;t++){const{ngModule:n,providers:r}=e[t];Fe(r,e=>this.processProvider(e,n,r||Tr))}}this.injectorDefTypes.add(s),this.records.set(s,Nr(r.factory,Er));const l=r.providers;if(null!=l&&!i){const t=e;Fe(l,e=>this.processProvider(e,t,l))}return void 0!==o&&void 0!==e.providers}processProvider(e,t,n){let r=Rr(e=ae(e))?e:ae(e&&e.provide);const o=function(e,t,n){return Pr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){let r=void 0;if(Rr(e))return Or(ae(e));if(Pr(e))r=()=>ae(e.useValue);else if((o=e)&&o.useFactory)r=()=>e.useFactory(...je(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))r=()=>Pe(ae(e.useExisting));else{const o=ae(e&&(e.useClass||e.provide));if(o||function(e,t,n){let r=\"\";throw e&&t&&(r=` - only instances of Provider and Type are allowed, got: [${t.map(e=>e==n?\"?\"+n+\"?\":\"...\").join(\", \")}]`),new Error(`Invalid provider for the NgModule '${ie(e)}'`+r)}(t,n,e),!function(e){return!!e.deps}(e))return Or(o);r=()=>new o(...je(e.deps))}var o;return r}(e,t,n),Er)}(e,t,n);if(Rr(e)||!0!==e.multi){const e=this.records.get(r);e&&void 0!==e.multi&&yn()}else{let t=this.records.get(r);t?void 0===t.multi&&yn():(t=Nr(void 0,Er,!0),t.factory=()=>je(t.multi),this.records.set(r,t)),r=e,t.multi.push(e)}this.records.set(r,o)}hydrate(e,t){var n;return t.value===kr?function(e){throw new Error(`Cannot instantiate cyclic dependency! ${e}`)}(ie(e)):t.value===Er&&(t.value=kr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Or(e){const t=Y(e),n=null!==t?t.factory:Ke(e);if(null!==n)return n;const r=ee(e);if(null!==r)return r.factory;if(e instanceof xe)throw new Error(`Token ${ie(e)} is missing a \\u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=function(e,t){const n=[];for(let r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(`Can't resolve all parameters for ${ie(e)}: (${n.join(\", \")}).`)}const n=function(e){const t=e&&(e[te]||e[oe]||e[re]&&e[re]());if(t){const n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;const t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\n`+`This will become an error in v10. Please add @Injectable() to the \"${n}\" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error(\"unreachable\")}function Nr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Pr(e){return null!==e&&\"object\"==typeof e&&Se in e}function Rr(e){return\"function\"==typeof e}const jr=function(e,t,n){return Ar({name:n},t,e,n)};let Mr=(()=>{class e{static create(e,t){return Array.isArray(e)?jr(e,t,\"\"):jr(e.providers,e.parent,e.name||\"\")}}return e.THROW_IF_NOT_FOUND=ke,e.NULL=new Me,e.\\u0275prov=J({token:e,providedIn:\"any\",factory:()=>Pe(Ee)}),e.__NG_ELEMENT_ID__=-1,e})(),Hr=new Map;const Fr=new Set;function Vr(e){return\"string\"==typeof e?e:e.text()}function Lr(e,t){let n=e.styles,r=e.classes,o=0;for(let s=0;s<t.length;s++){const e=t[s];\"number\"==typeof e?o=e:1==o?r=le(r,e):2==o&&(n=le(n,e+\": \"+t[++s]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}let Zr=null;function $r(){if(!Zr){const e=_e.Symbol;if(e&&e.iterator)Zr=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const n=e[t];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Zr=n)}}}return Zr}function Br(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function zr(e){return!!Ur(e)&&(Array.isArray(e)||!(e instanceof Map)&&$r()in e)}function Ur(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function qr(e,t,n,r,o){const s=t.inputs,i=o?\"class\":\"style\";!function(e,t,n,r,o){for(let s=0;s<n.length;){const i=n[s++],l=n[s++],u=t[i],c=e.data[i];null!==c.setInput?c.setInput(u,o,r,l):u[l]=o}}(e,n,s[i]||o&&s.className,i,r)}function Wr(e,t,n,r){const o=st(),s=it(),i=19+e,l=o[11],u=o[i]=Dn(t,l,rt.lFrame.currentNamespace),c=s.firstCreatePass?function(e,t,n,r,o,s,i){const l=t.consts,u=fn(l,s),c=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){let o=!1;if(ot()){const s=function(e,t,n){const r=e.directiveRegistry;let o=null;if(r)for(let s=0;s<r.length;s++){const i=r[s];En(n,i.selectors,!1)&&(o||(o=[]),Wt(Bt(n,t),e,i.type),nt(i)?(2&n.flags&&mn(n),Un(e,n),o.unshift(i)):o.push(i))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==s){let r=0;o=!0,Wn(n,e.data.length,s.length);for(let e=0;e<s.length;e++){const t=s[e];t.providersResolver&&t.providersResolver(t)}zn(e,n,s.length);let l=!1,u=!1;for(let o=0;o<s.length;o++){const c=s[o];n.mergedAttrs=Pt(n.mergedAttrs,c.hostAttrs),Qn(e,t,c),qn(e.data.length-1,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128),!l&&(c.onChanges||c.onInit||c.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),u||!c.onChanges&&!c.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),u=!0),Zn(e,c),r+=c.hostVars}!function(e,t){const n=t.directiveEnd,r=e.data,o=t.attrs,s=[];let i=null,l=null;for(let u=t.directiveStart;u<n;u++){const e=r[u],t=e.inputs;s.push(null!==o?Kn(t,o):null),i=Ln(t,u,i),l=Ln(e.outputs,u,l)}null!==i&&((i.hasOwnProperty(\"class\")||i.hasOwnProperty(\"className\"))&&(t.flags|=16),i.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=s,t.inputs=i,t.outputs=l}(e,n),$n(e,t,r)}i&&function(e,t,n){if(t){const r=e.localNames=[];for(let e=0;e<t.length;e+=2){const o=n[t[e+1]];if(null==o)throw new Error(`Export of name '${t[e+1]}' not found!`);r.push(t[e],o)}}}(n,r,i)}n.mergedAttrs=Pt(n.mergedAttrs,n.attrs)}(t,n,c,fn(l,i)),null!==c.mergedAttrs&&Lr(c,c.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,c),c}(e,s,o,0,t,n,r):s.data[i];ut(c,!0);const a=c.mergedAttrs;null!==a&&Nt(l,u,a);const h=c.classes;null!==h&&vr(l,u,h);const d=c.styles;null!==d&&gr(l,u,d),pr(s,o,u,c),0===rt.lFrame.elementDepthCount&&_n(u,o),rt.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(c)&&(function(e,t,n){ot()&&(function(e,t,n,r){const o=n.directiveStart,s=n.directiveEnd;e.firstCreatePass||Bt(n,t),_n(r,t);const i=n.initialInputs;for(let l=o;l<s;l++){const r=e.data[l],s=nt(r);s&&Gn(t,n,r);const u=Jt(t,e,l,n);_n(u,t),null!==i&&Jn(0,l-o,u,r,0,i),s&&(an(n.index,t)[8]=u)}}(e,t,n,cn(n,t)),128==(128&n.flags)&&function(e,t,n){const r=n.directiveStart,o=n.directiveEnd,s=e.expandoInstructions,i=e.firstCreatePass,l=n.index-19;try{bt(l);for(let n=r;n<o;n++){const r=e.data[n],o=t[n];null!==r.hostBindings||0!==r.hostVars||null!==r.hostAttrs?Bn(r,o):i&&s.push(null)}}finally{bt(-1)}}(e,t,n))}(s,o,c),function(e,t,n){if(tt(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const t=e.data[o];t.contentQueries&&t.contentQueries(1,n[o],o)}}}(s,c,o)),null!==r&&function(e,t,n=cn){const r=t.localNames;if(null!==r){let o=t.index+1;for(let s=0;s<r.length;s+=2){const i=r[s+1],l=-1===i?n(t,e):e[i];e[o++]=l}}}(o,c)}function Qr(e){return!!e&&\"function\"==typeof e.then}function Gr(e,t){const n=hn(e)[1],r=n.data.length-1;Ct(n,{directiveStart:r,directiveEnd:r+1})}class Jr{}class Kr{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ie(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let Yr=(()=>{class e{}return e.NULL=new Kr,e})(),Xr=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=()=>eo(e),e})();const eo=function(e){return Cr(e,lt(),st())};class to{}const no=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}();let ro=(()=>{class e{}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>null}),e})();class oo{constructor(e){this.full=e,this.major=e.split(\".\")[0],this.minor=e.split(\".\")[1],this.patch=e.split(\".\").slice(2).join(\".\")}}const so=new oo(\"9.0.2\");class io{constructor(){}supports(e){return zr(e)}create(e){return new uo(e)}}const lo=(e,t)=>t;class uo{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||lo}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,r=0,o=null;for(;t||n;){const s=!n||t&&t.currentIndex<fo(n,r,o)?t:n,i=fo(s,r,o),l=s.currentIndex;if(s===n)r--,n=n._nextRemoved;else if(t=t._next,null==s.previousIndex)r++;else{o||(o=[]);const e=i-r,t=l-r;if(e!=t){for(let n=0;n<e;n++){const r=n<o.length?o[n]:o[n]=0,s=r+n;t<=s&&s<e&&(o[n]=r+1)}o[s.previousIndex]=t-e}}i!==l&&e(s,i,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!zr(e))throw new Error(`Error trying to diff '${ie(e)}'. Only arrays and iterables are allowed`);return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t,n,r,o=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(let t=0;t<this.length;t++)n=e[t],r=this._trackByFn(t,n),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,n,r,t)),Br(o.item,n)||this._addIdentityChange(o,n)):(o=this._mismatch(o,n,r,t),s=!0),o=o._next}else t=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[$r()]();let r;for(;!(r=n.next()).done;)t(r.value)}}(e,e=>{r=this._trackByFn(t,e),null!==o&&Br(o.trackById,r)?(s&&(o=this._verifyReinsertion(o,e,r,t)),Br(o.item,e)||this._addIdentityChange(o,e)):(o=this._mismatch(o,e,r,t),s=!0),o=o._next,t++}),this.length=t;return this._truncate(o),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,r){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Br(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Br(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new co(t,n),o,r),e}_verifyReinsertion(e,t,n,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new ho),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ho),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class co{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ao{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Br(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class ho{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new ao,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function fo(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r<n.length&&(o=n[r]),r+t+o}class po{constructor(){}supports(e){return e instanceof Map||Ur(e)}create(){return new _o}}class _o{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Ur(e)))throw new Error(`Error trying to diff '${ie(e)}'. Only maps and objects are allowed`)}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(e,n)=>{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const r=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,r)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}const n=new mo(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Br(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class mo{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let yo=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new io])}),e})(),go=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new W,new U]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\\u0275prov=J({token:e,providedIn:\"root\",factory:()=>new e([new po])}),e})();const vo=[new po],wo=new yo([new io]),bo=new go(vo),Co={};function xo(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const Eo=new xe(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Ft});class ko extends Jr{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Tn).join(\",\"),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xo(this.componentDef.inputs)}get outputs(){return xo(this.componentDef.outputs)}create(e,t,n,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,r,o)=>{const s=e.get(n,Co,o);return s!==Co||r===Co?s:t.get(n,r,o)}}}(e,r.injector):e,s=o.get(to,Ot),i=o.get(ro,null),l=s.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Le.ShadowDom);let r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(u,s.createRenderer(null,this.componentDef),function(e){const t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),d={components:[],scheduler:Ft,clean:sr,playerHandler:null,flags:0},f=Fn(0,-1,null,1,0,null,null,null,null,null),p=On(null,f,d,a,null,null,s,l,i,o);let _,m;_t(p,null);try{const e=function(e,t,n,r,o,s){const i=n[1];n[19]=e;const l=Nn(i,null,0,3,null,null),u=l.mergedAttrs=t.hostAttrs;null!==u&&(Lr(l,u),null!==e&&(Nt(o,e,u),null!==l.classes&&vr(o,e,l.classes),null!==l.styles&&gr(o,e,l.styles)));const c=r.createRenderer(e,t),a=On(n,Hn(t),null,t.onPush?64:16,n[19],l,r,c,void 0);return i.firstCreatePass&&(Wt(Bt(l,n),i,t.type),Un(i,l),Wn(l,n.length,1)),tr(n,a),n[19]=a}(c,this.componentDef,p,s,l);if(c)if(n)Nt(l,c,[\"ng-version\",so.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let s=e[r];if(\"string\"==typeof s)2===o?\"\"!==s&&t.push(s,e[++r]):8===o&&n.push(s);else{if(!Cn(o))break;o=s}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);e&&Nt(l,c,e),t&&t.length>0&&vr(l,c,t.join(\" \"))}m=p[1].data[19],t&&(m.projection=t.map(e=>Array.from(e))),_=function(e,t,n,r,o){const s=n[1],i=function(e,t,n){const r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),zn(e,r,1),Qn(e,t,n));const o=Jt(t,e,t.length-1,r);_n(o,t);const s=cn(r,t);return s&&_n(s,t),o}(s,n,t);r.components.push(i),e[8]=i,o&&o.forEach(e=>e(i,t)),t.contentQueries&&t.contentQueries(1,i,n.length-1);const l=lt();if(s.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){bt(l.index-19);const e=n[1];Zn(e,t),$n(e,n,t.hostVars),Bn(t,i)}return i}(e,this.componentDef,p,d,[Gr]),Pn(f,p,null)}finally{wt()}const y=new To(this.componentType,_,Cr(Xr,m,p),p,m);return n&&!h||(y.hostView._tViewNode.child=m),y}}class To extends class{}{constructor(e,t,n,r,o){super(),this.location=n,this._rootLView=r,this._tNode=o,this.destroyCbs=[],this.instance=t,this.hostView=this.changeDetectorRef=new wr(r),this.hostView._tViewNode=function(e,t,n,r){let o=e.node;return null==o&&(e.node=o=Vn(0,null,2,-1,null,null)),r[6]=o}(r[1],0,0,r),this.componentType=e}get injector(){return new Xt(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(e=>e()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(e){this.destroyCbs&&this.destroyCbs.push(e)}}const So=void 0;var Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}];let Ao={};function Do(e){return e in Ao||(Ao[e]=_e.ng&&_e.ng.common&&_e.ng.common.locales&&_e.ng.common.locales[e]),Ao[e]}const Oo=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();let No=\"en-US\";function Po(e){var t,n;n=\"Expected localeId to be defined\",null==(t=e)&&function(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+` [Expected=> null != ${t} <=Actual]`)}(n,t),\"string\"==typeof e&&(No=e.toLowerCase().replace(/_/g,\"-\"))}const Ro=new Map,jo={provide:Yr,useClass:class extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Je(e);return new ko(t,this.ngModule)}},deps:[He]};class Mo extends He{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Ye(e),r=e[we]||null;r&&Po(r),this._bootstrapComponents=Vt(n.bootstrap),this._r3Injector=Ar(e,t,[{provide:He,useValue:this},jo],ie(e)),this.instance=this.get(e)}get(e,t=Mr.THROW_IF_NOT_FOUND,n=Q.Default){return e===Mr||e===He||e===Ee?this:this._r3Injector.get(e,t,n)}get componentFactoryResolver(){return this.get(Yr)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ho extends class{}{constructor(e){super(),this.moduleType=e,null!==Ye(e)&&function e(t){if(null!==t.\\u0275mod.id){const e=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ie(t)} vs ${ie(t.name)}`)})(e,Ro.get(e),t),Ro.set(e,t)}let n=t.\\u0275mod.imports;n instanceof Function&&(n=n()),n&&n.forEach(t=>e(t))}(e)}create(e){return new Mo(this.moduleType,e)}}class Fo extends x{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){let r,o=e=>null,s=()=>null;e&&\"object\"==typeof e?(r=this.__isAsync?t=>{setTimeout(()=>e.next(t))}:t=>{e.next(t)},e.error&&(o=this.__isAsync?t=>{setTimeout(()=>e.error(t))}:t=>{e.error(t)}),e.complete&&(s=this.__isAsync?()=>{setTimeout(()=>e.complete())}:()=>{e.complete()})):(r=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)},t&&(o=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,o,s);return e instanceof h&&e.add(i),i}}const Vo=new xe(\"Application Initializer\");let Lo=(()=>{class e{constructor(e){this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const t=this.appInits[n]();Qr(t)&&e.push(t)}Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Vo,8))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Zo=new xe(\"AppId\"),$o={provide:Zo,useFactory:function(){return`${Bo()}${Bo()}${Bo()}`},deps:[]};function Bo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const zo=new xe(\"Platform Initializer\"),Uo=new xe(\"Platform ID\"),qo=new xe(\"appBootstrapListener\");let Wo=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Qo=new xe(\"LocaleId\"),Go=new xe(\"DefaultCurrencyCode\");class Jo{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const Ko=function(e){return new Ho(e)},Yo=Ko,Xo=function(e){return Promise.resolve(Ko(e))},es=function(e){const t=Ko(e),n=Vt(Ye(e).declarations).reduce((e,t)=>{const n=Je(t);return n&&e.push(new ko(n)),e},[]);return new Jo(t,n)},ts=es,ns=function(e){return Promise.resolve(es(e))};let rs=(()=>{class e{constructor(){this.compileModuleSync=Yo,this.compileModuleAsync=Xo,this.compileModuleAndAllComponentsSync=ts,this.compileModuleAndAllComponentsAsync=ns}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const os=new xe(\"compilerOptions\"),ss=(()=>Promise.resolve(0))();function is(e){\"undefined\"==typeof Zone?ss.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}class ls{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fo(!1),this.onMicrotaskEmpty=new Fo(!1),this.onStable=new Fo(!1),this.onError=new Fo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=t,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){let e=_e.requestAnimationFrame,t=_e.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);const r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=!!e.shouldCoalesceEventChangeDetection&&e.nativeRequestAnimationFrame&&(()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(_e,()=>{e.lastRequestAnimationFrameId=-1,hs(e),as(e)}),hs(e))}(e)});e._inner=e._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:t},onInvokeTask:(n,r,o,s,i,l)=>{try{return ds(e),n.invokeTask(o,s,i,l)}finally{t&&\"eventTask\"===s.type&&t(),fs(e)}},onInvoke:(t,n,r,o,s,i,l)=>{try{return ds(e),t.invoke(r,o,s,i,l)}finally{fs(e)}},onHasTask:(t,n,r,o)=>{t.hasTask(r,o),n===r&&(\"microTask\"==o.change?(e._hasPendingMicrotasks=o.microTask,hs(e),as(e)):\"macroTask\"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,n,r,o)=>(t.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(this)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!ls.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(ls.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){const o=this._inner,s=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,cs,us,us);try{return o.runTask(s,t,n)}finally{o.cancelTask(s)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}function us(){}const cs={};function as(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function ds(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function fs(e){e._nesting--,as(e)}class ps{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fo,this.onMicrotaskEmpty=new Fo,this.onStable=new Fo,this.onError=new Fo}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}}let _s=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ls.assertNotInAngularZone(),is(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())is(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let r=-1;t&&t>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==r),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),ms=(()=>{class e{constructor(){this._applications=new Map,vs.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return vs.findTestabilityInTree(this,e,t)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ys{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let gs,vs=new ys,ws=function(e,t,n){const r=new Ho(n);if(0===Hr.size)return Promise.resolve(r);const o=function(e){const t=[];return e.forEach(e=>e&&t.push(...e)),t}(e.get(os,[]).concat(t).map(e=>e.providers));if(0===o.length)return Promise.resolve(r);const s=function(){const e=_e.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),i=Mr.create({providers:o}).get(s.ResourceLoader);return function(e){const t=[],n=new Map;function r(e){let t=n.get(e);if(!t){const r=(e=>Promise.resolve(i.get(e)))(e);n.set(e,t=r.then(Vr))}return t}return Hr.forEach((e,n)=>{const o=[];e.templateUrl&&o.push(r(e.templateUrl).then(t=>{e.template=t}));const s=e.styleUrls,i=e.styles||(e.styles=[]),l=e.styles.length;s&&s.forEach((t,n)=>{i.push(\"\"),o.push(r(t).then(r=>{i[l+n]=r,s.splice(s.indexOf(t),1),0==s.length&&(e.styleUrls=void 0)}))});const u=Promise.all(o).then(()=>function(e){Fr.delete(e)}(n));t.push(u)}),Hr=new Map,Promise.all(t).then(()=>{})}().then(()=>r)};const bs=new xe(\"AllowMultipleToken\");function Cs(e,t,n=[]){const r=`Platform: ${t}`,o=new xe(r);return(t=[])=>{let s=xs();if(!s||s.injector.get(bs,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{const e=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(gs&&!gs.destroyed&&!gs.injector.get(bs,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");gs=e.get(Es);const t=e.get(zo,null);t&&t.forEach(e=>e())}(Mr.create({providers:e,name:r}))}return function(e){const t=xs();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function xs(){return gs&&!gs.destroyed?gs:null}let Es=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n=\"noop\"===e?new ps:(\"zone.js\"===e?void 0:e)||new ls({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:t}),n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),r=[{provide:ls,useValue:n}];return n.run(()=>{const t=Mr.create({providers:r,parent:this.injector,name:e.moduleType.name}),o=e.create(t),s=o.injector.get(rn,null);if(!s)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return o.onDestroy(()=>Ss(this._modules,o)),n.runOutsideAngular(()=>n.onError.subscribe({next:e=>{s.handleError(e)}})),function(e,t,n){try{const r=n();return Qr(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,n,()=>{const e=o.injector.get(Lo);return e.runInitializers(),e.donePromise.then(()=>(Po(o.injector.get(Qo,\"en-US\")||\"en-US\"),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,t=[]){const n=ks({},t);return ws(this.injector,n,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(Ts);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ie(e.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. `+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Mr))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function ks(e,t){return Array.isArray(t)?t.reduce(ks,e):Object.assign(Object.assign({},e),t)}let Ts=(()=>{class e{constructor(e,t,n,r,o,s){this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),l=new g(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{ls.assertNotInAngularZone(),is(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ls.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,r=e[e.length-1];var o;return(o=r)&&\"function\"==typeof o.schedule?(n=e.pop(),e.length>1&&\"number\"==typeof e[e.length-1]&&(t=e.pop())):\"number\"==typeof r&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof g?e[0]:function(e=Number.POSITIVE_INFINITY){return function e(t,n,r=Number.POSITIVE_INFINITY){return\"function\"==typeof n?o=>o.pipe(e((e,r)=>{return(o=t(e,r),o instanceof g?o:new g(A(o))).pipe(function(e,t){return function(t){return t.lift(new O(e,void 0))}}((t,o)=>n(e,t,r,o)));var o},r)):(\"number\"==typeof n&&(r=n),e=>e.lift(new P(t,r)))}(j,e)}(t)(function(e,t){return t?function(e,t){return new g(n=>{const r=new h;let o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r})}(e,t):new g(T(e))}(e,n))}(i,l.pipe(e=>{return M()((t=$,function(e){let n;n=\"function\"==typeof t?t:function(){return t};const r=Object.create(e,L);return r.source=e,r.subjectFactory=n,r})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=e instanceof Jr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(He),o=n.create(Mr.NULL,[],t||n.selector,r);o.onDestroy(()=>{this._unloadComponent(o)});const s=o.injector.get(_s,null);return s&&o.injector.get(ms).registerApplication(o.location.nativeElement,s),this._loadComponent(o),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),o}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let e of this._views)e.detectChanges();if(this._enforceNoNewChanges)for(let e of this._views)e.checkNoChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;Ss(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(qo,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}_unloadComponent(e){this.detachView(e.hostView),Ss(this.components,e)}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy())}get viewCount(){return this._views.length}}return e.\\u0275fac=function(t){return new(t||e)(Pe(ls),Pe(Wo),Pe(Mr),Pe(rn),Pe(Yr),Pe(Lo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();function Ss(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Is=Cs(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:Es,deps:[Mr]},{provide:ms,deps:[]},{provide:Wo,deps:[]}]),As=[{provide:Ts,useClass:Ts,deps:[ls,Wo,Mr,rn,Yr,Lo]},{provide:Eo,deps:[ls],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Lo,useClass:Lo,deps:[[new U,Vo]]},{provide:rs,useClass:rs,deps:[]},$o,{provide:yo,useFactory:function(){return wo},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Po(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new z(Qo),new U,new W]]},{provide:Go,useValue:\"USD\"}];let Ds=(()=>{class e{constructor(e){}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(Ts))},providers:As}),e})(),Os=null;function Ns(){return Os}const Ps=new xe(\"DocumentToken\"),Rs=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}();class js{}let Ms=(()=>{class e extends js{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return function(e){const t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e);let n=Do(t);if(n)return n;const r=t.split(\"-\")[0];if(n=Do(r),n)return n;if(\"en\"===r)return Io;throw new Error(`Missing locale data for the locale \"${e}\".`)}(e)[Oo.PluralCase]}(t||this.locale)(e)){case Rs.Zero:return\"zero\";case Rs.One:return\"one\";case Rs.Two:return\"two\";case Rs.Few:return\"few\";case Rs.Many:return\"many\";default:return\"other\"}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Qo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Hs=(()=>{class e{}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[{provide:js,useClass:Ms}]}),e})();class Fs extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Fs,Os||(Os=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Ls||(Ls=document.querySelector(\"base\"),Ls)?Ls.getAttribute(\"href\"):null;return null==t?null:(n=t,Vs||(Vs=document.createElement(\"a\")),Vs.setAttribute(\"href\",n),\"/\"===Vs.pathname.charAt(0)?Vs.pathname:\"/\"+Vs.pathname);var n}resetBaseElement(){Ls=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return function(e,t){t=encodeURIComponent(t);for(const n of e.split(\";\")){const e=n.indexOf(\"=\"),[r,o]=-1==e?[n,\"\"]:[n.slice(0,e),n.slice(e+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}(document.cookie,e)}}let Vs,Ls=null;const Zs=new xe(\"TRANSITION_ID\"),$s=[{provide:Vo,useFactory:function(e,t,n){return()=>{n.get(Lo).donePromise.then(()=>{const n=Ns();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter(t=>t.getAttribute(\"ng-transition\")===e).forEach(e=>n.remove(e))})}},deps:[Zs,Ps,Mr],multi:!0}];class Bs{static init(){var e;e=new Bs,vs=e}addToWindow(e){_e.getAngularTestability=(t,n=!0)=>{const r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},_e.getAllAngularTestabilities=()=>e.getAllTestabilities(),_e.getAllAngularRootElements=()=>e.getAllRootElements(),_e.frameworkStabilizers||(_e.frameworkStabilizers=[]),_e.frameworkStabilizers.push(e=>{const t=_e.getAllAngularTestabilities();let n=t.length,r=!1;const o=function(t){r=r||t,n--,0==n&&e(r)};t.forEach((function(e){e.whenStable(o)}))})}findTestabilityInTree(e,t,n){if(null==t)return null;const r=e.getTestability(t);return null!=r?r:n?Ns().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const zs=new xe(\"EventManagerPlugins\");let Us=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let r=0;r<n.length;r++){const t=n[r];if(t.supports(e))return this._eventNameToPlugin.set(e,t),t}throw new Error(`No event manager plugin found for event ${e}`)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(zs),Pe(ls))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class qs{constructor(e){this._doc=e}addGlobalEventListener(e,t,n){const r=Ns().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(`Unsupported event target ${r} for event ${t}`);return this.addEventListener(r,t,n)}}let Ws=(()=>{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})(),Qs=(()=>{class e extends Ws{constructor(e){super(),this._doc=e,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(e.head)}_addStylesToHost(e,t){e.forEach(e=>{const n=this._doc.createElement(\"style\");n.textContent=e,this._styleNodes.add(t.appendChild(n))})}addHost(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}removeHost(e){this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach(t=>this._addStylesToHost(e,t))}ngOnDestroy(){this._styleNodes.forEach(e=>Ns().remove(e))}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const Gs={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Js=/%COMP%/g;function Ks(e,t,n){for(let r=0;r<t.length;r++){let o=t[r];Array.isArray(o)?Ks(e,o,n):(o=o.replace(Js,e),n.push(o))}return n}function Ys(e){return t=>{if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Xs=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ei(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Le.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new ti(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case Le.Native:case Le.ShadowDom:return new ni(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=Ks(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Us),Pe(Qs),Pe(Zo))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();class ei{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(Gs[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector \"${e}\" did not match any elements`);return t||(n.textContent=\"\"),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+\":\"+t;const o=Gs[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const r=Gs[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){r&no.DashCase?e.style.setProperty(t,n,r&no.Important?\"important\":\"\"):e.style[t]=n}removeStyle(e,t,n){n&no.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,Ys(n)):this.eventManager.addEventListener(e,t,Ys(n))}}class ti extends ei{constructor(e,t,n,r){super(e),this.component=n;const o=Ks(r+\"-\"+n.id,n.styles,[]);t.addStyles(o),this.contentAttr=\"_ngcontent-%COMP%\".replace(Js,r+\"-\"+n.id),this.hostAttr=function(e){return\"_nghost-%COMP%\".replace(Js,e)}(r+\"-\"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,\"\")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,\"\"),n}}class ni extends ei{constructor(e,t,n,r){super(e),this.sharedStylesHost=t,this.hostEl=n,this.component=r,this.shadowRoot=r.encapsulation===Le.ShadowDom?n.attachShadow({mode:\"open\"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=Ks(r.id,r.styles,[]);for(let s=0;s<o.length;s++){const e=document.createElement(\"style\");e.textContent=o[s],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let ri=(()=>{class e extends qs{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const oi=[\"alt\",\"control\",\"meta\",\"shift\"],si={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},ii={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},li={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let ui=(()=>{class e extends qs{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,r){const o=e.parseEventName(n),s=e.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ns().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const n=t.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const o=e._normalizeKey(n.pop());let s=\"\";if(oi.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),s+=e+\".\")}),s+=o,0!=n.length||0===o.length)return null;const i={};return i.domEventName=r,i.fullKey=s,i}static getEventFullKey(e){let t=\"\",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&ii.hasOwnProperty(t)&&(t=ii[t]))}return si[t]||t}(e);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),oi.forEach(r=>{r!=n&&(0,li[r])(e)&&(t+=r+\".\")}),t+=n,t}static eventCallback(t,n,r){return o=>{e.getEventFullKey(o)===t&&r.runGuarded(()=>n(o))}}static _normalizeKey(e){switch(e){case\"esc\":return\"escape\";default:return e}}}return e.\\u0275fac=function(t){return new(t||e)(Pe(Ps))},e.\\u0275prov=J({token:e,factory:e.\\u0275fac}),e})();const ci=Cs(Is,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:zo,useValue:function(){Fs.makeCurrent(),Bs.init()},multi:!0},{provide:Ps,useFactory:function(){return function(e){At=e}(document),document},deps:[]}]),ai=[[],{provide:xr,useValue:\"root\"},{provide:rn,useFactory:function(){return new rn},deps:[]},{provide:zs,useClass:ri,multi:!0,deps:[Ps,ls,Uo]},{provide:zs,useClass:ui,multi:!0,deps:[Ps]},[],{provide:Xs,useClass:Xs,deps:[Us,Qs,Zo]},{provide:to,useExisting:Xs},{provide:Ws,useExisting:Qs},{provide:Qs,useClass:Qs,deps:[Ps]},{provide:_s,useClass:_s,deps:[ls]},{provide:Us,useClass:Us,deps:[zs,ls]},[]];let hi=(()=>{class e{constructor(e){if(e)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Zo,useValue:t.appId},{provide:Zs,useExisting:Zo},$s]}}}return e.\\u0275mod=Qe({type:e}),e.\\u0275inj=K({factory:function(t){return new(t||e)(Pe(e,12))},providers:ai,imports:[Hs,Ds]}),e})();\"undefined\"!=typeof window&&window;let di=(()=>{class e{constructor(){this.title=\"example\"}}return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275cmp=function(e){const t=e.type,n=t.prototype,r={},o={type:t,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:e.changeDetection===Ve.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Be,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Le.Emulated,id:\"c\",styles:e.styles||Be,_:null,setInput:null,schemas:e.schemas||null,tView:null};return o._=Ze(()=>{const t=e.directives,n=e.features,s=e.pipes;o.id+=ze++,o.inputs=Ge(e.inputs,r),o.outputs=Ge(e.outputs),n&&n.forEach(e=>e(o)),o.directiveDefs=t?()=>(\"function\"==typeof t?t():t).map(Ue):null,o.pipeDefs=s?()=>(\"function\"==typeof s?s():s).map(qe):null}),o}({type:e,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(Wr(0,\"div\",0),function(e,t=\"\"){const n=st(),r=it(),o=e+19,s=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],i=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);pr(r,n,i,s),ut(s,!1)}(1,\" Hello, World\\n\"),function(){let e=lt();ct()?rt.lFrame.isParent=!1:(e=e.parent,ut(e,!1));const t=e;rt.lFrame.elementDepthCount--;const n=it();n.firstCreatePass&&(Ct(n,e),tt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&qr(n,t,st(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&qr(n,t,st(),t.styles,!1)}())},styles:[\"\"]}),e})(),fi=(()=>{class e{}return e.\\u0275mod=Qe({type:e,bootstrap:[di]}),e.\\u0275inj=K({factory:function(t){return new(t||e)},providers:[],imports:[[hi]]}),e})();(function(){if(sn)throw new Error(\"Cannot enable prod mode after platform setup.\");on=!1})(),ci().bootstrapModule(fi).catch(e=>console.error(e))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/dist/example/main-es5.bde05668bf3f8343a347.js",
    "content": "function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){o=!0,i=u}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_setPrototypeOf(o,n.prototype),o}).apply(null,arguments)}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _get(e,t,n){return(_get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=_superPropBase(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n(\"zUnb\")},zUnb:function(e,t,n){\"use strict\";function r(e){return\"function\"==typeof e}n.r(t);var o=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){var t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else o&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");o=e},get useDeprecatedSynchronousErrorHandling(){return o}};function s(e){setTimeout((function(){throw e}),0)}var a={closed:!0,next:function(e){},error:function(e){if(i.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete:function(){}},u=Array.isArray||function(e){return e&&\"number\"==typeof e.length};function l(e){return null!==e&&\"object\"==typeof e}var c,f=function(){function e(e){return Error.call(this),this.message=e?\"\".concat(e.length,\" errors occurred during unsubscription:\\n\").concat(e.map((function(e,t){return\"\".concat(t+1,\") \").concat(e.toString())})).join(\"\\n  \")):\"\",this.name=\"UnsubscriptionError\",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),h=((c=function(){function e(t){_classCallCheck(this,e),this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return _createClass(e,[{key:\"unsubscribe\",value:function(){var t;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,i=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var s=0;s<n.length;++s)n[s].remove(this);if(r(o))try{o.call(this)}catch(v){t=v instanceof f?d(v.errors):[v]}if(u(i))for(var a=-1,c=i.length;++a<c;){var h=i[a];if(l(h))try{h.unsubscribe()}catch(v){t=t||[],v instanceof f?t=t.concat(d(v.errors)):t.push(v)}}if(t)throw new f(t)}}},{key:\"add\",value:function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case\"function\":n=new e(t);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error(\"unrecognized teardown \"+t+\" added to Subscription.\")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n}},{key:\"remove\",value:function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}]),e}()).EMPTY=function(e){return e.closed=!0,e}(new c),c);function d(e){return e.reduce((function(e,t){return e.concat(t instanceof f?t.errors:t)}),[])}var v=\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random(),p=function(e){function t(e,n,r){var o;switch(_classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a;break;case 1:if(!e){o.destination=a;break}if(\"object\"==typeof e){e instanceof t?(o.syncErrorThrowable=e.syncErrorThrowable,o.destination=e,e.add(_assertThisInitialized(o))):(o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e));break}default:o.syncErrorThrowable=!0,o.destination=new y(_assertThisInitialized(o),e,n,r)}return o}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return this}},{key:\"next\",value:function(e){this.isStopped||this._next(e)}},{key:\"error\",value:function(e){this.isStopped||(this.isStopped=!0,this._error(e))}},{key:\"complete\",value:function(){this.isStopped||(this.isStopped=!0,this._complete())}},{key:\"unsubscribe\",value:function(){this.closed||(this.isStopped=!0,_get(_getPrototypeOf(t.prototype),\"unsubscribe\",this).call(this))}},{key:\"_next\",value:function(e){this.destination.next(e)}},{key:\"_error\",value:function(e){this.destination.error(e),this.unsubscribe()}},{key:\"_complete\",value:function(){this.destination.complete(),this.unsubscribe()}},{key:\"_unsubscribeAndRecycle\",value:function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}],[{key:\"create\",value:function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o}}]),t}(h),y=function(e){function t(e,n,o,i){var s,u;_classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parentSubscriber=e;var l=_assertThisInitialized(s);return r(n)?u=n:n&&(u=n.next,o=n.error,i=n.complete,n!==a&&(r((l=Object.create(n)).unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(_assertThisInitialized(s)))),s._context=l,s._next=u,s._error=o,s._complete=i,s}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}},{key:\"error\",value:function(e){if(!this.isStopped){var t=this._parentSubscriber,n=i.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}},{key:\"complete\",value:function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};i.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}},{key:\"__tryOrUnsub\",value:function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),i.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}},{key:\"__tryOrSetError\",value:function(e,t,n){if(!i.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{t.call(this._context,n)}catch(r){return i.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(s(r),!0)}return!1}},{key:\"_unsubscribe\",value:function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}]),t}(p),_=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function g(){}var m,k=((m=function(){function e(t){_classCallCheck(this,e),this._isScalar=!1,t&&(this._subscribe=t)}return _createClass(e,[{key:\"lift\",value:function(t){var n=new e;return n.source=this,n.operator=t,n}},{key:\"subscribe\",value:function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof p)return e;if(e[v])return e[v]()}return e||t||n?new p(e,t,n):new p(a)}(e,t,n);if(o.add(r?r.call(o,this.source):this.source||i.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),i.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}},{key:\"_trySubscribe\",value:function(e){try{return this._subscribe(e)}catch(t){i.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof p?r:null}return!0}(e)?e.error(t):console.warn(t)}}},{key:\"forEach\",value:function(e,t){var n=this;return new(t=b(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(n){r(n),o&&o.unsubscribe()}}),r,t)}))}},{key:\"_subscribe\",value:function(e){var t=this.source;return t&&t.subscribe(e)}},{key:_,value:function(){return this}},{key:\"pipe\",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?this:((r=t)?1===r.length?r[0]:function(e){return r.reduce((function(e,t){return t(e)}),e)}:g)(this);var r}},{key:\"toPromise\",value:function(e){var t=this;return new(e=b(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))}}]),e}()).create=function(e){return new m(e)},m);function b(e){if(e||(e=i.Promise||Promise),!e)throw new Error(\"no Promise impl found\");return e}var w,C=function(){function e(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return e.prototype=Object.create(Error.prototype),e}(),E=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).subject=e,r.subscriber=n,r.closed=!1,r}return _inherits(t,e),_createClass(t,[{key:\"unsubscribe\",value:function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}}}]),t}(h),x=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).destination=e,n}return _inherits(t,e),t}(p),T=((w=function(e){function t(){var e;return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return _inherits(t,e),_createClass(t,[{key:v,value:function(){return new x(this)}},{key:\"lift\",value:function(e){var t=new S(this,this);return t.operator=e,t}},{key:\"next\",value:function(e){if(this.closed)throw new C;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].next(e)}},{key:\"error\",value:function(e){if(this.closed)throw new C;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),o=0;o<n;o++)r[o].error(e);this.observers.length=0}},{key:\"complete\",value:function(){if(this.closed)throw new C;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0}},{key:\"unsubscribe\",value:function(){this.isStopped=!0,this.closed=!0,this.observers=null}},{key:\"_trySubscribe\",value:function(e){if(this.closed)throw new C;return _get(_getPrototypeOf(t.prototype),\"_trySubscribe\",this).call(this,e)}},{key:\"_subscribe\",value:function(e){if(this.closed)throw new C;return this.hasError?(e.error(this.thrownError),h.EMPTY):this.isStopped?(e.complete(),h.EMPTY):(this.observers.push(e),new E(this,e))}},{key:\"asObservable\",value:function(){var e=new k;return e.source=this,e}}]),t}(k)).create=function(e,t){return new S(e,t)},w),S=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).destination=e,r.source=n,r}return _inherits(t,e),_createClass(t,[{key:\"next\",value:function(e){var t=this.destination;t&&t.next&&t.next(e)}},{key:\"error\",value:function(e){var t=this.destination;t&&t.error&&this.destination.error(e)}},{key:\"complete\",value:function(){var e=this.destination;e&&e.complete&&this.destination.complete()}},{key:\"_subscribe\",value:function(e){return this.source?this.source.subscribe(e):h.EMPTY}}]),t}(T),I=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).parent=e,o.outerValue=n,o.outerIndex=r,o.index=0,o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}},{key:\"_error\",value:function(e){this.parent.notifyError(e,this),this.unsubscribe()}},{key:\"_complete\",value:function(){this.parent.notifyComplete(this),this.unsubscribe()}}]),t}(p),A=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};var O=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\",P=function(e){if(e&&\"function\"==typeof e[_])return i=e,function(e){var t=i[_]();if(\"function\"!=typeof t.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return t.subscribe(e)};if((t=e)&&\"number\"==typeof t.length&&\"function\"!=typeof t)return A(e);var t,n,r,o,i;if((n=e)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return o=e,function(e){return o.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,s),e};if(e&&\"function\"==typeof e[O])return r=e,function(e){for(var t=r[O]();;){var n=t.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return\"function\"==typeof t.return&&e.add((function(){t.return&&t.return()})),e};var a=l(e)?\"an invalid object\":\"'\".concat(e,\"'\");throw new TypeError(\"You provided \".concat(a,\" where a stream was expected.\")+\" You can provide an Observable, Promise, Array, or Iterable.\")},D=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyError\",value:function(e,t){this.destination.error(e)}},{key:\"notifyComplete\",value:function(e){this.destination.complete()}}]),t}(p),R=function(){function e(t,n){_classCallCheck(this,e),this.project=t,this.thisArg=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new N(e,this.project,this.thisArg))}}]),e}(),N=function(e){function t(e,n,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,o.count=0,o.thisArg=r||_assertThisInitialized(o),o}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}]),t}(p),j=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;_classCallCheck(this,e),this.project=t,this.concurrent=n}return _createClass(e,[{key:\"call\",value:function(e,t){return t.subscribe(new H(e,this.project,this.concurrent))}}]),e}(),H=function(e){function t(e,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).project=n,r.concurrent=o,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return _inherits(t,e),_createClass(t,[{key:\"_next\",value:function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)}},{key:\"_tryNext\",value:function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(t,e,n)}},{key:\"_innerSub\",value:function(e,t,n){var r=new I(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new I(e,n,r);if(!o.closed)return t instanceof k?t.subscribe(o):P(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)}},{key:\"_complete\",value:function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}},{key:\"notifyNext\",value:function(e,t,n,r,o){this.destination.next(t)}},{key:\"notifyComplete\",value:function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}]),t}(D);function M(e){return e}function F(){return function(e){return e.lift(new L(e))}}var V,L=function(){function e(t){_classCallCheck(this,e),this.connectable=t}return _createClass(e,[{key:\"call\",value:function(e,t){var n=this.connectable;n._refCount++;var r=new z(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o}}]),e}(),z=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null}}]),t}(p),Z={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(V=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return _inherits(t,e),_createClass(t,[{key:\"_subscribe\",value:function(e){return this.getSubject().subscribe(e)}},{key:\"getSubject\",value:function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}},{key:\"connect\",value:function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new h).add(this.source.subscribe(new B(this.getSubject(),this))),e.closed&&(this._connection=null,e=h.EMPTY)),e}},{key:\"refCount\",value:function(){return F()(this)}}]),t}(k).prototype)._subscribe},_isComplete:{value:V._isComplete,writable:!0},getSubject:{value:V.getSubject},connect:{value:V.connect},refCount:{value:V.refCount}},B=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).connectable=n,r}return _inherits(t,e),_createClass(t,[{key:\"_error\",value:function(e){this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_error\",this).call(this,e)}},{key:\"_complete\",value:function(){this.connectable._isComplete=!0,this._unsubscribe(),_get(_getPrototypeOf(t.prototype),\"_complete\",this).call(this)}},{key:\"_unsubscribe\",value:function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}]),t}(x);function U(){return new T}function W(e,t,n){var r=function(e){return function(){if(e){var t=e.apply(void 0,arguments);for(var n in t)this[n]=t[n]}}}(t);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(this instanceof o)return r.apply(this,t),this;var i=_construct(o,t);return s.annotation=i,s;function s(e,t,n){for(var r=e.hasOwnProperty(\"__parameters__\")?e.__parameters__:Object.defineProperty(e,\"__parameters__\",{value:[]}).__parameters__;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}var q=W(\"Inject\",(function(e){return{token:e}})),Q=W(\"Optional\"),G=W(\"Self\"),J=W(\"SkipSelf\"),K=function(e){return e[e.Default=0]=\"Default\",e[e.Host=1]=\"Host\",e[e.Self=2]=\"Self\",e[e.SkipSelf=4]=\"SkipSelf\",e[e.Optional=8]=\"Optional\",e}({});function Y(e){for(var t in e)if(e[t]===Y)return t;throw Error(\"Could not find renamed property on target object.\")}function $(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{factory:e.factory,providers:e.providers||[],imports:e.imports||[]}}function ee(e){return te(e,e[re])||te(e,e[se])}function te(e,t){return t&&t.token===e?t:null}function ne(e){return e&&(e.hasOwnProperty(oe)||e.hasOwnProperty(ae))?e[oe]:null}var re=Y({\"\\u0275prov\":Y}),oe=Y({\"\\u0275inj\":Y}),ie=Y({\"\\u0275provFallback\":Y}),se=Y({ngInjectableDef:Y}),ae=Y({ngInjectorDef:Y});function ue(e){if(\"string\"==typeof e)return e;if(Array.isArray(e))return\"[\"+e.map(ue).join(\", \")+\"]\";if(null==e)return\"\"+e;if(e.overriddenName)return\"\".concat(e.overriddenName);if(e.name)return\"\".concat(e.name);var t=e.toString();if(null==t)return\"\"+t;var n=t.indexOf(\"\\n\");return-1===n?t:t.substring(0,n)}function le(e,t){return null==e||\"\"===e?null===t?\"\":t:null==t||\"\"===t?e:e+\" \"+t}var ce=Y({__forward_ref__:Y});function fe(e){return e.__forward_ref__=fe,e.toString=function(){return ue(this())},e}function he(e){return\"function\"==typeof(t=e)&&t.hasOwnProperty(ce)&&t.__forward_ref__===fe?e():e;var t}var de,ve=\"undefined\"!=typeof globalThis&&globalThis,pe=\"undefined\"!=typeof window&&window,ye=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,_e=\"undefined\"!=typeof global&&global,ge=ve||_e||pe||ye,me=Y({\"\\u0275cmp\":Y}),ke=Y({\"\\u0275dir\":Y}),be=Y({\"\\u0275pipe\":Y}),we=Y({\"\\u0275mod\":Y}),Ce=Y({\"\\u0275loc\":Y}),Ee=Y({\"\\u0275fac\":Y}),xe=Y({__NG_ELEMENT_ID__:Y}),Te=function(){function e(t,n){_classCallCheck(this,e),this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\\u0275prov=$({token:this,providedIn:n.providedIn||\"root\",factory:n.factory}))}return _createClass(e,[{key:\"toString\",value:function(){return\"InjectionToken \".concat(this._desc)}}]),e}(),Se=new Te(\"INJECTOR\",-1),Ie={},Ae=/\\n/gm,Oe=Y({provide:String,useValue:Y}),Pe=void 0;function De(e){var t=Pe;return Pe=e,t}function Re(e){var t=de;return de=e,t}function Ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;if(void 0===Pe)throw new Error(\"inject() must be called from an injection context\");return null===Pe?He(e,void 0,t):Pe.get(e,t&K.Optional?null:void 0,t)}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.Default;return(de||Ne)(he(e),t)}function He(e,t,n){var r=ee(e);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&K.Optional)return null;if(void 0!==t)return t;throw new Error(\"Injector: NOT_FOUND [\".concat(ue(e),\"]\"))}function Me(e){for(var t=[],n=0;n<e.length;n++){var r=he(e[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");for(var o=void 0,i=K.Default,s=0;s<r.length;s++){var a=r[s];a instanceof Q||\"Optional\"===a.ngMetadataName||a===Q?i|=K.Optional:a instanceof J||\"SkipSelf\"===a.ngMetadataName||a===J?i|=K.SkipSelf:a instanceof G||\"Self\"===a.ngMetadataName||a===G?i|=K.Self:o=a instanceof q||a===q?a.token:a}t.push(je(o,i))}else t.push(je(r))}return t}var Fe=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie;if(t===Ie){var n=new Error(\"NullInjectorError: No provider for \".concat(ue(e),\"!\"));throw n.name=\"NullInjectorError\",n}return t}}]),e}(),Ve=function e(){_classCallCheck(this,e)};function Le(e,t){e.forEach((function(e){return Array.isArray(e)?Le(e,t):t(e)}))}var ze=function(){var e={OnPush:0,Default:1};return e[e.OnPush]=\"OnPush\",e[e.Default]=\"Default\",e}(),Ze=function(){var e={Emulated:0,Native:1,None:2,ShadowDom:3};return e[e.Emulated]=\"Emulated\",e[e.Native]=\"Native\",e[e.None]=\"None\",e[e.ShadowDom]=\"ShadowDom\",e}();function Be(e){return\"\"+{toString:e}}var Ue={},We=[],qe=0;function Qe(e){return $e(e)||function(e){return e[ke]||null}(e)}function Ge(e){return function(e){return e[be]||null}(e)}var Je={};function Ke(e){var t={type:e.type,bootstrap:e.bootstrap||We,declarations:e.declarations||We,imports:e.imports||We,exports:e.exports||We,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&Be((function(){Je[e.id]=e.type})),t}function Ye(e,t){if(null==e)return Ue;var n={};for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function $e(e){return e[me]||null}function Xe(e,t){return e.hasOwnProperty(Ee)?e[Ee]:null}function et(e,t){var n=e[we]||null;if(!n&&!0===t)throw new Error(\"Type \".concat(ue(e),\" does not have '\\u0275mod' property.\"));return n}function tt(e){return Array.isArray(e)&&\"object\"==typeof e[1]}function nt(e){return Array.isArray(e)&&!0===e[1]}function rt(e){return 0!=(8&e.flags)}function ot(e){return null!==e.template}var it={lFrame:mt(null),bindingsEnabled:!0,checkNoChangesMode:!1};function st(){return it.bindingsEnabled}function at(){return it.lFrame.lView}function ut(){return it.lFrame.tView}function lt(){return it.lFrame.previousOrParentTNode}function ct(e,t){it.lFrame.previousOrParentTNode=e,it.lFrame.isParent=t}function ft(){return it.lFrame.isParent}function ht(){return it.checkNoChangesMode}function dt(e){it.checkNoChangesMode=e}function vt(e,t){var n=it.lFrame;n.bindingIndex=n.bindingRootIndex=e,n.currentDirectiveIndex=t}function pt(e){it.lFrame.currentQueryIndex=e}function yt(e,t){var n=gt();it.lFrame=n,n.previousOrParentTNode=t,n.lView=e}function _t(e,t){var n=gt(),r=e[1];it.lFrame=n,n.previousOrParentTNode=t,n.lView=e,n.tView=r,n.contextLView=e,n.bindingIndex=r.bindingStartIndex}function gt(){var e=it.lFrame,t=null===e?null:e.child;return null===t?mt(e):t}function mt(e){var t={previousOrParentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:0,contextLView:null,elementDepthCount:0,currentNamespace:null,currentSanitizer:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null};return null!==e&&(e.child=t),t}function kt(){var e=it.lFrame;return it.lFrame=e.parent,e.previousOrParentTNode=null,e.lView=null,e}var bt=kt;function wt(){var e=kt();e.isParent=!0,e.tView=null,e.selectedIndex=0,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.currentSanitizer=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ct(e){it.lFrame.selectedIndex=e}function Et(e,t){for(var n=t.directiveStart,r=t.directiveEnd;n<r;n++){var o=e.data[n];o.afterContentInit&&(e.contentHooks||(e.contentHooks=[])).push(-n,o.afterContentInit),o.afterContentChecked&&((e.contentHooks||(e.contentHooks=[])).push(n,o.afterContentChecked),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,o.afterContentChecked)),o.afterViewInit&&(e.viewHooks||(e.viewHooks=[])).push(-n,o.afterViewInit),o.afterViewChecked&&((e.viewHooks||(e.viewHooks=[])).push(n,o.afterViewChecked),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,o.afterViewChecked)),null!=o.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(n,o.onDestroy)}}function xt(e,t,n){It(e,t,3,n)}function Tt(e,t,n,r){(3&e[2])===n&&It(e,t,n,r)}function St(e,t){var n=e[2];(3&n)===t&&(n&=1023,n+=1,e[2]=n)}function It(e,t,n,r){for(var o=null!=r?r:-1,i=0,s=void 0!==r?65535&e[18]:0;s<t.length;s++)if(\"number\"==typeof t[s+1]){if(i=t[s],null!=r&&i>=r)break}else t[s]<0&&(e[18]+=65536),(i<o||-1==o)&&(At(e,n,t,s),e[18]=(4294901760&e[18])+s+2),s++}function At(e,t,n,r){var o=n[r]<0,i=n[r+1],s=e[o?-n[r]:n[r]];o?e[2]>>10<e[18]>>16&&(3&e[2])===t&&(e[2]+=1024,i.call(s)):i.call(s)}var Ot=function e(t,n,r){_classCallCheck(this,e),this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r},Pt=void 0;function Dt(e){return!!e.listen}var Rt={createRenderer:function(e,t){return void 0!==Pt?Pt:\"undefined\"!=typeof document?document:void 0}};function Nt(e,t,n){for(var r=Dt(e),o=0;o<n.length;){var i=n[o];if(\"number\"==typeof i){if(0!==i)break;o++;var s=n[o++],a=n[o++],u=n[o++];r?e.setAttribute(t,a,u,s):t.setAttributeNS(s,a,u)}else{var l=i,c=n[++o];64===l.charCodeAt(0)?r&&e.setProperty(t,l,c):r?e.setAttribute(t,l,c):t.setAttribute(l,c),o++}}return o}function jt(e,t){if(null===t||0===t.length);else if(null===e||0===e.length)e=t.slice();else for(var n=-1,r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o?n=o:0===n||Ht(e,n,o,null,-1===n||2===n?t[++r]:null)}return e}function Ht(e,t,n,r,o){var i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){var a=e[i++];if(\"number\"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){var u=e[i];if(\"number\"==typeof u)break;if(u===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}function Mt(e){return 32767&e}function Ft(e,t){for(var n=e>>16,r=t;n>0;)r=r[15],n--;return r}function Vt(e){return\"function\"==typeof e?e.name||e.toString():\"object\"==typeof e&&null!=e&&\"function\"==typeof e.type?e.type.name||e.type.toString():function(e){return\"string\"==typeof e?e:null==e?\"\":\"\"+e}(e)}var Lt=(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ge);function zt(e){return e instanceof Function?e():e}var Zt=!0;function Bt(e){var t=Zt;return Zt=e,t}var Ut=0;function Wt(e,t){var n=Qt(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,qt(r.data,e),qt(t,null),qt(r.blueprint,null));var o=Gt(e,t),i=e.injectorIndex;if(-1!==o)for(var s=Mt(o),a=Ft(o,t),u=a[1].data,l=0;l<8;l++)t[i+l]=a[s+l]|u[s+l];return t[i+8]=o,i}function qt(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qt(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function Gt(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function Jt(e,t,n){!function(e,t,n){var r=\"string\"!=typeof n?n[xe]:n.charCodeAt(0)||0;null==r&&(r=n[xe]=Ut++);var o=255&r,i=1<<o,s=64&o,a=32&o,u=t.data;128&o?s?a?u[e+7]|=i:u[e+6]|=i:a?u[e+5]|=i:u[e+4]|=i:s?a?u[e+3]|=i:u[e+2]|=i:a?u[e+1]|=i:u[e]|=i}(e,t,n)}var Kt={};function Yt(e,t,n,r,o,i){var s=t[1],a=s.data[e+8],u=function(e,t,n,r,o){for(var i=e.providerIndexes,s=t.data,a=65535&i,u=e.directiveStart,l=i>>16,c=o?a+l:e.directiveEnd,f=r?a:a+l;f<c;f++){var h=s[f];if(f<u&&n===h||f>=u&&h.type===n)return f}if(o){var d=s[u];if(d&&ot(d)&&d.type===n)return u}return null}(a,s,n,null==r?function(e){return 2==(2&e.flags)}(a)&&Zt:r!=s&&3===a.type,o&K.Host&&i===a);return null!==u?$t(t,s,u,a):Kt}function $t(e,t,n,r){var o=e[n],i=t.data;if(o instanceof Ot){var s=o;if(s.resolving)throw new Error(\"Circular dep for \".concat(Vt(i[n])));var a,u=Bt(s.canSeeViewProviders);s.resolving=!0,s.injectImpl&&(a=Re(s.injectImpl)),yt(e,r);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function(e,t,n){var r=t.onChanges,o=t.onInit,i=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{s.injectImpl&&Re(a),Bt(u),s.resolving=!1,bt()}}return o}function Xt(e,t,n){var r=64&e,o=32&e;return!!((128&e?r?o?n[t+7]:n[t+6]:o?n[t+5]:n[t+4]:r?o?n[t+3]:n[t+2]:o?n[t+1]:n[t])&1<<e)}function en(e,t){return!(e&K.Self||e&K.Host&&t)}var tn=function(){function e(t,n){_classCallCheck(this,e),this._tNode=t,this._lView=n}return _createClass(e,[{key:\"get\",value:function(t,n){return function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:K.Default,i=arguments.length>4?arguments[4]:void 0;if(null!==t){var s=function(e){if(\"string\"==typeof e)return e.charCodeAt(0)||0;var t=e[xe];return\"number\"==typeof t&&t>0?255&t:t}(r);if(\"function\"==typeof s){yt(n,t);try{var a=s();if(null!=a||o&K.Optional)return a;throw new Error(\"No provider for \".concat(Vt(r),\"!\"))}finally{bt()}}else if(\"number\"==typeof s){if(-1===s)return new e(t,n);var u=null,l=Qt(t,n),c=-1,f=o&K.Host?n[16][6]:null;for((-1===l||o&K.SkipSelf)&&(c=-1===l?Gt(t,n):n[l+8],en(o,!1)?(u=n[1],l=Mt(c),n=Ft(c,n)):l=-1);-1!==l;){c=n[l+8];var h=n[1];if(Xt(s,l,h.data)){var d=Yt(l,n,r,u,o,f);if(d!==Kt)return d}en(o,n[1].data[l+8]===f)&&Xt(s,l,n)?(u=h,l=Mt(c),n=Ft(c,n)):l=-1}}}if(o&K.Optional&&void 0===i&&(i=null),0==(o&(K.Self|K.Host))){var v=n[9],p=Re(void 0);try{return v?v.get(r,i,o&K.Optional):He(r,i,o&K.Optional)}finally{Re(p)}}if(o&K.Optional)return i;throw new Error(\"NodeInjector: NOT_FOUND [\".concat(Vt(r),\"]\"))}(this._tNode,this._lView,t,void 0,n)}}]),e}();function nn(e){return e.ngDebugContext}function rn(e){return e.ngOriginalError}function on(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];e.error.apply(e,n)}var sn=function(){function e(){_classCallCheck(this,e),this._console=console}return _createClass(e,[{key:\"handleError\",value:function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=function(e){return e.ngErrorLogger||on}(e);r(this._console,\"ERROR\",e),t&&r(this._console,\"ORIGINAL ERROR\",t),n&&r(this._console,\"ERROR CONTEXT\",n)}},{key:\"_findContext\",value:function(e){return e?nn(e)?nn(e):this._findContext(rn(e)):null}},{key:\"_findOriginalError\",value:function(e){for(var t=rn(e);t&&rn(t);)t=rn(t);return t}}]),e}(),an=!0,un=!1;function ln(){return un=!0,an}function cn(e){for(;Array.isArray(e);)e=e[0];return e}function fn(e,t){return cn(t[e.index])}function hn(e,t){var n=t[e];return tt(n)?n:n[0]}function dn(e){var t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function vn(e){return 128==(128&e[2])}function pn(e,t){return null===e||null==t?null:e[t]}function yn(e){e[18]=0}function _n(e,t){e.__ngContext__=t}function gn(e){throw new Error(\"Multiple components match node with tagname \".concat(e.tagName))}function mn(){throw new Error(\"Cannot mix multi providers and regular providers\")}function kn(e,t,n){for(var r=e.length;;){var o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){var i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}function bn(e,t,n){for(var r=0;r<e.length;){var o=e[r++];if(n&&\"class\"===o){if(-1!==kn((o=e[r]).toLowerCase(),t,0))return!0}else if(1===o){for(;r<e.length&&\"string\"==typeof(o=e[r++]);)if(o.toLowerCase()===t)return!0;return!1}}return!1}function wn(e,t,n){return t===(0!==e.type||n?e.tagName:\"ng-template\")}function Cn(e,t,n){for(var r=4,o=e.attrs||[],i=function(e){for(var t=0;t<e.length;t++)if(3===(n=e[t])||4===n||6===n)return t;var n;return e.length}(o),s=!1,a=0;a<t.length;a++){var u=t[a];if(\"number\"!=typeof u){if(!s)if(4&r){if(r=2|1&r,\"\"!==u&&!wn(e,u,n)||\"\"===u&&1===t.length){if(En(r))return!1;s=!0}}else{var l=8&r?u:t[++a];if(8&r&&null!==e.attrs){if(!bn(e.attrs,l,n)){if(En(r))return!1;s=!0}continue}var c=xn(8&r?\"class\":u,o,0==e.type&&\"ng-template\"!==e.tagName,n);if(-1===c){if(En(r))return!1;s=!0;continue}if(\"\"!==l){var f;f=c>i?\"\":o[c+1].toLowerCase();var h=8&r?f:null;if(h&&-1!==kn(h,l,0)||2&r&&l!==f){if(En(r))return!1;s=!0}}}}else{if(!s&&!En(r)&&!En(u))return!1;if(s&&En(u))continue;s=!1,r=u|1&r}}return En(r)||s}function En(e){return 0==(1&e)}function xn(e,t,n,r){if(null===t)return-1;var o=0;if(r||!n){for(var i=!1;o<t.length;){var s=t[o];if(s===e)return o;if(3===s||6===s)i=!0;else{if(1===s||2===s){for(var a=t[++o];\"string\"==typeof a;)a=t[++o];continue}if(4===s)break;if(0===s){o+=4;continue}}o+=i?1:2}return-1}return function(e,t){var n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){if(e[n]===t)return n;n++}return-1}(t,e)}function Tn(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0;r<t.length;r++)if(Cn(e,t[r],n))return!0;return!1}function Sn(e,t){return e?\":not(\"+t.trim()+\")\":t}function In(e){for(var t=e[0],n=1,r=2,o=\"\",i=!1;n<e.length;){var s=e[n];if(\"string\"==typeof s)if(2&r){var a=e[++n];o+=\"[\"+s+(a.length>0?'=\"'+a+'\"':\"\")+\"]\"}else 8&r?o+=\".\"+s:4&r&&(o+=\" \"+s);else\"\"===o||En(s)||(t+=Sn(i,o),o=\"\"),r=s,i=i||!En(r);n++}return\"\"!==o&&(t+=Sn(i,o)),t}var An={};function On(e){var t=e[3];return nt(t)?t[3]:t}function Pn(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1];if(-1!==i){var s=e.data[i];pt(o),s.contentQueries(2,t[i],i)}}}function Dn(e,t,n){return Dt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rn(e,t,n,r,o,i,s,a,u,l){var c=t.blueprint.slice();return c[0]=o,c[2]=140|r,yn(c),c[3]=c[15]=e,c[8]=n,c[10]=s||e&&e[10],c[11]=a||e&&e[11],c[12]=u||e&&e[12]||null,c[9]=l||e&&e[9]||null,c[6]=i,c[16]=2==t.type?e[16]:c,c}function Nn(e,t,n,r,o,i){var s=n+19,a=e.data[s]||function(e,t,n,r,o,i){var s=lt(),a=ft(),u=a?s:s&&s.parent,l=e.data[n]=zn(0,u&&u!==t?u:null,r,n,o,i);return null===e.firstChild&&(e.firstChild=l),s&&(!a||null!=s.child||null===l.parent&&2!==s.type?a||(s.next=l):s.child=l),l}(e,t,s,r,o,i);return ct(a,!0),a}function jn(e,t,n){_t(t,t[6]);try{var r=e.viewQuery;null!==r&&sr(1,r,n);var o=e.template;null!==o&&Fn(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&Pn(e,t),e.staticViewQueries&&sr(2,e.viewQuery,n);var i=e.components;null!==i&&function(e,t){for(var n=0;n<t.length;n++)nr(e,t[n])}(t,i)}finally{t[2]&=-5,wt()}}function Hn(e,t,n,r){var o=t[2];if(256!=(256&o)){_t(t,t[6]);var i=ht();try{yn(t),it.lFrame.bindingIndex=e.bindingStartIndex,null!==n&&Fn(e,t,n,2,r);var s=3==(3&o);if(!i)if(s){var a=e.preOrderCheckHooks;null!==a&&xt(t,a,null)}else{var u=e.preOrderHooks;null!==u&&Tt(t,u,0,null),St(t,0)}if(function(e){for(var t=e[13];null!==t;){var n=void 0;if(nt(t)&&(n=t[2])>>1==-1){for(var r=9;r<t.length;r++){var o=t[r],i=o[1];vn(o)&&Hn(i,o,i.template,o[8])}0!=(1&n)&&er(t,e[16])}t=t[4]}}(t),null!==e.contentQueries&&Pn(e,t),!i)if(s){var l=e.contentCheckHooks;null!==l&&xt(t,l)}else{var c=e.contentHooks;null!==c&&Tt(t,c,1),St(t,1)}!function(e,t){try{var n=e.expandoInstructions;if(null!==n)for(var r=e.expandoStartIndex,o=-1,i=0;i<n.length;i++){var s=n[i];\"number\"==typeof s?s<=0?(Ct(0-s),o=r+=9+n[++i]):r+=s:(null!==s&&(vt(r,o),s(2,t[o])),o++)}}finally{Ct(-1)}}(e,t);var f=e.components;null!==f&&function(e,t){for(var n=0;n<t.length;n++)tr(e,t[n])}(t,f);var h=e.viewQuery;if(null!==h&&sr(2,h,r),!i)if(s){var d=e.viewCheckHooks;null!==d&&xt(t,d)}else{var v=e.viewHooks;null!==v&&Tt(t,v,2),St(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),i||(t[2]&=-73)}finally{wt()}}}function Mn(e,t,n,r){var o=t[10],i=!ht(),s=4==(4&t[2]);try{i&&!s&&o.begin&&o.begin(),s&&jn(e,t,r),Hn(e,t,n,r)}finally{i&&!s&&o.end&&o.end()}}function Fn(e,t,n,r,o){var i=it.lFrame.selectedIndex;try{Ct(-1),2&r&&t.length>19&&function(e,t,n,r){if(!r)if(3==(3&t[2])){var o=e.preOrderCheckHooks;null!==o&&xt(t,o,0)}else{var i=e.preOrderHooks;null!==i&&Tt(t,i,0,0)}Ct(0)}(e,t,0,ht()),n(r,o)}finally{Ct(i)}}function Vn(e){return e.tView||(e.tView=Ln(1,-1,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts))}function Ln(e,t,n,r,o,i,s,a,u,l){var c=19+r,f=c+o,h=function(e,t){for(var n=[],r=0;r<t;r++)n.push(r<e?null:An);return n}(c,f);return h[1]={type:e,id:t,blueprint:h,template:n,queries:null,viewQuery:a,node:null,data:h.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:f,expandoInstructions:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof s?s():s,firstChild:null,schemas:u,consts:l}}function zn(e,t,n,r,o,i){return{type:n,index:r,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,tagName:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,residualStyles:void 0,classes:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function Zn(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(t,o):n[r]=[t,o]}return n}function Bn(e,t){var n=e.expandoInstructions;n.push(t.hostBindings),0!==t.hostVars&&n.push(t.hostVars)}function Un(e,t,n){for(var r=0;r<n;r++)t.push(An),e.blueprint.push(An),e.data.push(null)}function Wn(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function qn(e,t,n){var r=19-t.index,o=e.data.length-(65535&t.providerIndexes);(e.expandoInstructions||(e.expandoInstructions=[])).push(r,o,n)}function Qn(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function Gn(e,t,n){if(n){if(t.exportAs)for(var r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[\"\"]=e)}}function Jn(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Kn(e,t,n){e.data.push(n);var r=n.factory||(n.factory=Xe(n.type)),o=new Ot(r,ot(n),null);e.blueprint.push(o),t.push(o)}function Yn(e,t,n){var r=fn(t,e),o=Vn(n),i=e[10],s=rr(e,Rn(e,o,null,n.onPush?64:16,r,t,i,i.createRenderer(r,n)));e[t.index]=s}function $n(e,t,n,r,o,i){var s=i[t];if(null!==s)for(var a=r.setInput,u=0;u<s.length;){var l=s[u++],c=s[u++],f=s[u++];null!==a?r.setInput(n,f,l,c):n[c]=f}}function Xn(e,t){for(var n=null,r=0;r<t.length;){var o=t[r];if(0!==o)if(5!==o){if(\"number\"==typeof o)break;e.hasOwnProperty(o)&&(null===n&&(n=[]),n.push(o,e[o],t[r+1])),r+=2}else r+=2;else r+=4}return n}function er(e,t){for(var n=e[5],r=0;r<n.length;r++){var o=n[r],i=o[3][3][16];if(i!==t&&0==(16&i[2])){var s=o[1];Hn(s,o,s.template,o[8])}}}function tr(e,t){var n=hn(t,e);if(vn(n)&&80&n[2]){var r=n[1];Hn(r,n,r.template,n[8])}}function nr(e,t){var n=hn(t,e),r=n[1];!function(e,t){for(var n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n),jn(r,n,n[8])}function rr(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function or(e,t,n){var r=t[10];r.begin&&r.begin();try{Hn(e,t,e.template,n)}catch(o){throw function(e,t){var n=e[9],r=n?n.get(sn,null):null;r&&r.handleError(t)}(t,o),o}finally{r.end&&r.end()}}function ir(e){!function(e){for(var t=0;t<e.components.length;t++){var n=e.components[t],r=dn(n),o=r[1];Mn(o,r,o.template,n)}}(e[8])}function sr(e,t,n){pt(0),t(e,n)}var ar=Promise.resolve(null);function ur(e,t){var n=t[3];return-1===e.index?nt(n)?n:null:n}function lr(e,t,n,r,o){if(null!=r){var i,s=!1;nt(r)?i=r:tt(r)&&(s=!0,r=r[0]);var a=cn(r);0===e&&null!==n?null==o?dr(t,n,a):hr(t,n,a,o||null):1===e&&null!==n?hr(t,n,a,o||null):2===e?function(e,t,n){var r=pr(e,t);r&&function(e,t,n,r){Dt(e)?e.removeChild(t,n,r):t.removeChild(n)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function(e,t,n,r,o){var i=n[7];i!==cn(n)&&lr(t,e,r,i,o);for(var s=9;s<n.length;s++){var a=n[s];gr(a[1],a,e,t,r,i)}}(t,e,i,n,o)}}function cr(e,t){var n;return tt(e)&&(n=e[6])&&2===n.type?ur(n,e):e[3]===t?null:e[3]}function fr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r<n.length;r+=2){var o=t[n[r]];o instanceof Ot||n[r+1].call(o)}}(e,t),function(e,t){var n=e.cleanup;if(null!==n){for(var r=t[7],o=0;o<n.length-1;o+=2)if(\"string\"==typeof n[o]){var i=n[o+1],s=\"function\"==typeof i?i(t):cn(t[i]),a=r[n[o+2]],u=n[o+3];\"boolean\"==typeof u?s.removeEventListener(n[o],a,u):u>=0?r[u]():r[-u].unsubscribe(),o+=2}else n[o].call(r[n[o+1]]);t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Dt(t[11])&&t[11].destroy();var r=t[17];if(null!==r&&nt(t[3])){r!==t[3]&&function(e,t){var n=e[5],r=n.indexOf(t);n.splice(r,1)}(r,t);var o=t[5];null!==o&&o.detachView(e)}}}function hr(e,t,n,r){Dt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function dr(e,t,n){Dt(e)?e.appendChild(t,n):t.appendChild(n)}function vr(e,t,n,r){null!==r?hr(e,t,n,r):dr(e,t,n)}function pr(e,t){return Dt(e)?e.parentNode(t):t.parentNode}function yr(e,t,n,r){var o=function(e,t,n){for(var r,o,i=t.parent;null!=i&&(4===i.type||5===i.type);)i=(t=i).parent;if(null==i){var s=n[6];return 2===s.type?(o=ur(s,r=n))?pr(r[11],o[7]):null:n[0]}if(t&&5===t.type&&4&t.flags)return fn(t,n).parentNode;if(2&i.flags){var a=e.data,u=a[a[i.index].directiveStart].encapsulation;if(u!==Ze.ShadowDom&&u!==Ze.Native)return null}return fn(i,n)}(e,r,t);if(null!=o){var i=t[11],s=function(e,t){if(2===e.type){var n=ur(e,t);return null===n?null:function e(t,n){var r=9+t+1;if(r<n.length){var o=n[r],i=o[1].firstChild;if(null!==i)return function t(n,r){if(null!==r){var o=r.type;if(3===o)return fn(r,n);if(0===o)return e(-1,n[r.index]);if(4===o||5===o){var i=r.child;if(null!==i)return t(n,i);var s=n[r.index];return nt(s)?e(-1,s):cn(s)}var a=n[16],u=a[6],l=On(a),c=u.projection[r.projection];return null!=c?t(l,c):t(n,r.next)}return null}(o,i)}return n[7]}(n.indexOf(t,9)-9,n)}return 4===e.type||5===e.type?fn(e,t):null}(r.parent||t[6],t);if(Array.isArray(n))for(var a=0;a<n.length;a++)vr(i,o,n[a],s);else vr(i,o,n,s)}}function _r(e,t,n,r,o,i,s){for(;null!=n;){var a=r[n.index],u=n.type;s&&0===t&&(a&&_n(cn(a),r),n.flags|=4),64!=(64&n.flags)&&(4===u||5===u?(_r(e,t,n.child,r,o,i,!1),lr(t,e,o,a,i)):1===u?mr(e,t,r,n,o,i):lr(t,e,o,a,i)),n=s?n.projectionNext:n.next}}function gr(e,t,n,r,o,i){_r(n,r,e.node.child,t,o,i,!1)}function mr(e,t,n,r,o,i){var s=n[16],a=s[6].projection[r.projection];if(Array.isArray(a))for(var u=0;u<a.length;u++)lr(t,e,o,a[u],i);else _r(e,t,a,s[3],o,i,!0)}function kr(e,t,n){Dt(e)?e.setAttribute(t,\"style\",n):t.style.cssText=n}function br(e,t,n){Dt(e)?\"\"===n?e.removeAttribute(t,\"class\"):e.setAttribute(t,\"class\",n):t.className=n}var wr,Cr=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)))._view=e,n}return _inherits(t,e),_createClass(t,[{key:\"detectChanges\",value:function(){ir(this._view)}},{key:\"checkNoChanges\",value:function(){!function(e){dt(!0);try{ir(e)}finally{dt(!1)}}(this._view)}},{key:\"context\",get:function(){return null}}]),t}(function(){function e(t,n){_classCallCheck(this,e),this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null}return _createClass(e,[{key:\"destroy\",value:function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}!function(e,t){if(!(256&t[2])){var n=t[11];Dt(n)&&n.destroyNode&&gr(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return fr(e[1],e);for(;t;){var n=null;if(tt(t))n=t[13];else{var r=t[9];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)tt(t)&&fr(t[1],t),t=cr(t,e);null===t&&(t=e),tt(t)&&fr(t[1],t),n=t&&t[4]}t=n}}(t)}}(this._lView[1],this._lView)}},{key:\"onDestroy\",value:function(e){var t,n,r,o;t=this._lView[1],r=e,(o=n=this._lView,o[7]||(o[7]=[])).push(r),t.firstCreatePass&&function(e){return e.cleanup||(e.cleanup=[])}(t).push(n[7].length-1,null)}},{key:\"markForCheck\",value:function(){!function(e){for(;e;){e[2]|=64;var t=On(e);if(0!=(512&e[2])&&!t)return e;e=t}}(this._cdRefInjectingView||this._lView)}},{key:\"detach\",value:function(){this._lView[2]&=-129}},{key:\"reattach\",value:function(){this._lView[2]|=128}},{key:\"detectChanges\",value:function(){or(this._lView[1],this._lView,this.context)}},{key:\"checkNoChanges\",value:function(){!function(e,t,n){dt(!0);try{or(e,t,n)}finally{dt(!1)}}(this._lView[1],this._lView,this.context)}},{key:\"attachToViewContainerRef\",value:function(e){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=e}},{key:\"detachFromAppRef\",value:function(){var e;this._appRef=null,gr(this._lView[1],e=this._lView,e[11],2,null,null)}},{key:\"attachToAppRef\",value:function(e){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=e}},{key:\"rootNodes\",get:function(){var e=this._lView;return null==e[0]?function e(t,n,r,o){for(var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];null!==r;){var s=n[r.index];if(null!==s&&o.push(cn(s)),nt(s))for(var a=9;a<s.length;a++){var u=s[a],l=u[1].firstChild;null!==l&&e(u[1],u,l,o)}var c=r.type;if(4===c||5===c)e(t,n,r.child,o);else if(1===c){var f=n[16],h=f[6],d=On(f),v=h.projection[r.projection];null!==v&&null!==d&&e(d[1],d,v,o,!0)}r=i?r.projectionNext:r.next}return o}(e[1],e,e[6].child,[]):[]}},{key:\"context\",get:function(){return this._lView[8]}},{key:\"destroyed\",get:function(){return 256==(256&this._lView[2])}}]),e}());function Er(e,t,n){return wr||(wr=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),t}(e)),new wr(fn(t,n))}var xr=new Te(\"Set Injector scope.\"),Tr={},Sr={},Ir=[],Ar=void 0;function Or(){return void 0===Ar&&(Ar=new Fe),Ar}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return t=t||Or(),new Dr(e,n,t,r)}var Dr=function(){function e(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,e),this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;var s=[];n&&Le(n,(function(e){return o.processProvider(e,t,n)})),Le([t],(function(e){return o.processInjectorType(e,[],s)})),this.records.set(Se,Nr(void 0,this));var a=this.records.get(xr);this.scope=null!=a?a.value:null,this.injectorDefTypes.forEach((function(e){return o.get(e)})),this.source=i||(\"object\"==typeof t?null:ue(t))}return _createClass(e,[{key:\"destroy\",value:function(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((function(e){return e.ngOnDestroy()}))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}},{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ie,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;this.assertNotDestroyed();var r,o=De(this);try{if(!(n&K.SkipSelf)){var i=this.records.get(e);if(void 0===i){var s=(\"function\"==typeof(r=e)||\"object\"==typeof r&&r instanceof Te)&&ee(e);i=s&&this.injectableDefInScope(s)?Nr(Rr(e),Tr):null,this.records.set(e,i)}if(null!=i)return this.hydrate(e,i)}return(n&K.Self?Or():this.parent).get(e,t=n&K.Optional&&t===Ie?null:t)}catch(a){if(\"NullInjectorError\"===a.name){if((a.ngTempTokenPath=a.ngTempTokenPath||[]).unshift(ue(e)),o)throw a;return function(e,t,n,r){var o=e.ngTempTokenPath;throw t.__source&&o.unshift(t.__source),e.message=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;e=e&&\"\\n\"===e.charAt(0)&&\"\\u0275\"==e.charAt(1)?e.substr(2):e;var o=ue(t);if(Array.isArray(t))o=t.map(ue).join(\" -> \");else if(\"object\"==typeof t){var i=[];for(var s in t)if(t.hasOwnProperty(s)){var a=t[s];i.push(s+\":\"+(\"string\"==typeof a?JSON.stringify(a):ue(a)))}o=\"{\".concat(i.join(\", \"),\"}\")}return\"\".concat(n).concat(r?\"(\"+r+\")\":\"\",\"[\").concat(o,\"]: \").concat(e.replace(Ae,\"\\n  \"))}(\"\\n\"+e.message,o,\"R3InjectorError\",r),e.ngTokenPath=o,e.ngTempTokenPath=null,e}(a,e,0,this.source)}throw a}finally{De(o)}}},{key:\"toString\",value:function(){var e=[];return this.records.forEach((function(t,n){return e.push(ue(n))})),\"R3Injector[\".concat(e.join(\", \"),\"]\")}},{key:\"assertNotDestroyed\",value:function(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}},{key:\"processInjectorType\",value:function(e,t,n){var r=this;if(!(e=he(e)))return!1;var o=ne(e),i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==n.indexOf(s);if(void 0!==i&&(o=ne(i)),null==o)return!1;if(null!=o.imports&&!a){var u;n.push(s);try{Le(o.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===u&&(u=[]),u.push(e))}))}finally{}if(void 0!==u)for(var l=function(e){var t=u[e],n=t.ngModule,o=t.providers;Le(o,(function(e){return r.processProvider(e,n,o||Ir)}))},c=0;c<u.length;c++)l(c)}this.injectorDefTypes.add(s),this.records.set(s,Nr(o.factory,Tr));var f=o.providers;if(null!=f&&!a){var h=e;Le(f,(function(e){return r.processProvider(e,h,f)}))}return void 0!==i&&void 0!==e.providers}},{key:\"processProvider\",value:function(e,t,n){var r=Hr(e=he(e))?e:he(e&&e.provide),o=function(e,t,n){return jr(e)?Nr(void 0,e.useValue):Nr(function(e,t,n){var r,o=void 0;if(Hr(e))return Rr(he(e));if(jr(e))o=function(){return he(e.useValue)};else if((r=e)&&r.useFactory)o=function(){return e.useFactory.apply(e,_toConsumableArray(Me(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))o=function(){return je(he(e.useExisting))};else{var i=he(e&&(e.useClass||e.provide));if(i||function(e,t,n){var r=\"\";throw e&&t&&(r=\" - only instances of Provider and Type are allowed, got: [\".concat(t.map((function(e){return e==n?\"?\"+n+\"?\":\"...\"})).join(\", \"),\"]\")),new Error(\"Invalid provider for the NgModule '\".concat(ue(e),\"'\")+r)}(t,n,e),!function(e){return!!e.deps}(e))return Rr(i);o=function(){return _construct(i,_toConsumableArray(Me(e.deps)))}}return o}(e,t,n),Tr)}(e,t,n);if(Hr(e)||!0!==e.multi){var i=this.records.get(r);i&&void 0!==i.multi&&mn()}else{var s=this.records.get(r);s?void 0===s.multi&&mn():((s=Nr(void 0,Tr,!0)).factory=function(){return Me(s.multi)},this.records.set(r,s)),r=e,s.multi.push(e)}this.records.set(r,o)}},{key:\"hydrate\",value:function(e,t){var n;return t.value===Sr?function(e){throw new Error(\"Cannot instantiate cyclic dependency! \".concat(e))}(ue(e)):t.value===Tr&&(t.value=Sr,t.value=t.factory()),\"object\"==typeof t.value&&t.value&&null!==(n=t.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}},{key:\"injectableDefInScope\",value:function(e){return!!e.providedIn&&(\"string\"==typeof e.providedIn?\"any\"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();function Rr(e){var t=ee(e),n=null!==t?t.factory:Xe(e);if(null!==n)return n;var r=ne(e);if(null!==r)return r.factory;if(e instanceof Te)throw new Error(\"Token \".concat(ue(e),\" is missing a \\u0275prov definition.\"));if(e instanceof Function)return function(e){var t=e.length;if(t>0){var n=function(e,t){for(var n=[],r=0;r<e;r++)n.push(\"?\");return n}(t);throw new Error(\"Can't resolve all parameters for \".concat(ue(e),\": (\").concat(n.join(\", \"),\").\"))}var r=function(e){var t=e&&(e[re]||e[se]||e[ie]&&e[ie]());if(t){var n=function(e){if(e.hasOwnProperty(\"name\"))return e.name;var t=(\"\"+e).match(/^function\\s*([^\\s(]+)/);return null===t?\"\":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token \"'.concat(n,'\" that inherits its @Injectable decorator but does not provide one itself.\\n')+'This will become an error in v10. Please add @Injectable() to the \"'.concat(n,'\" class.')),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error(\"unreachable\")}function Nr(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{factory:e,value:t,multi:n?[]:void 0}}function jr(e){return null!==e&&\"object\"==typeof e&&Oe in e}function Hr(e){return\"function\"==typeof e}var Mr=function(e,t,n){return Pr({name:n},t,e,n)},Fr=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,null,[{key:\"create\",value:function(e,t){return Array.isArray(e)?Mr(e,t,\"\"):Mr(e.providers,e.parent,e.name||\"\")}}]),e}();return e.THROW_IF_NOT_FOUND=Ie,e.NULL=new Fe,e.\\u0275prov=$({token:e,providedIn:\"any\",factory:function(){return je(Se)}}),e.__NG_ELEMENT_ID__=-1,e}(),Vr=new Map,Lr=new Set;function zr(e){return\"string\"==typeof e?e:e.text()}function Zr(e,t){for(var n=e.styles,r=e.classes,o=0,i=0;i<t.length;i++){var s=t[i];\"number\"==typeof s?o=s:1==o?r=le(r,s):2==o&&(n=le(n,s+\": \"+t[++i]+\";\"))}null!==n&&(e.styles=n),null!==r&&(e.classes=r)}var Br=null;function Ur(){if(!Br){var e=ge.Symbol;if(e&&e.iterator)Br=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];\"entries\"!==r&&\"size\"!==r&&Map.prototype[r]===Map.prototype.entries&&(Br=r)}}return Br}function Wr(e,t){return e===t||\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}function qr(e){return!!Qr(e)&&(Array.isArray(e)||!(e instanceof Map)&&Ur()in e)}function Qr(e){return null!==e&&(\"function\"==typeof e||\"object\"==typeof e)}function Gr(e,t,n,r,o){var i=t.inputs,s=o?\"class\":\"style\";!function(e,t,n,r,o){for(var i=0;i<n.length;){var s=n[i++],a=n[i++],u=t[s],l=e.data[s];null!==l.setInput?l.setInput(u,o,r,a):u[a]=o}}(e,n,i[s]||o&&i.className,s,r)}function Jr(e){return!!e&&\"function\"==typeof e.then}function Kr(e,t){var n=dn(e)[1],r=n.data.length-1;Et(n,{directiveStart:r,directiveEnd:r+1})}var Yr=function e(){_classCallCheck(this,e)},$r=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"resolveComponentFactory\",value:function(e){throw function(e){var t=Error(\"No component factory found for \".concat(ue(e),\". Did you add it to @NgModule.entryComponents?\"));return t.ngComponent=e,t}(e)}}]),e}(),Xr=function(){var e=function e(){_classCallCheck(this,e)};return e.NULL=new $r,e}(),eo=function(){var e=function e(t){_classCallCheck(this,e),this.nativeElement=t};return e.__NG_ELEMENT_ID__=function(){return to(e)},e}(),to=function(e){return Er(e,lt(),at())},no=function e(){_classCallCheck(this,e)},ro=function(){var e={Important:1,DashCase:2};return e[e.Important]=\"Important\",e[e.DashCase]=\"DashCase\",e}(),oo=function(){var e=function e(){_classCallCheck(this,e)};return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return null}}),e}(),io=new function e(t){_classCallCheck(this,e),this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}(\"9.0.2\"),so=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return qr(e)}},{key:\"create\",value:function(e){return new uo(e)}}]),e}(),ao=function(e,t){return t},uo=function(){function e(t){_classCallCheck(this,e),this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||ao}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)}},{key:\"forEachOperation\",value:function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex<ho(n,r,o)?t:n,s=ho(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var f=c<o.length?o[c]:o[c]=0,h=f+c;l<=h&&h<u&&(o[c]=f+1)}o[i.previousIndex]=l-u}}s!==a&&e(i,s,a)}}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachMovedItem\",value:function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"forEachIdentityChange\",value:function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}},{key:\"diff\",value:function(e){if(null==e&&(e=[]),!qr(e))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only arrays and iterables are allowed\"));return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)r=e[a],o=this._trackByFn(a,r),null!==i&&Wr(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),Wr(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r,o=e[Ur()]();!(r=o.next()).done;)t(r.value)}(e,(function(e){o=t._trackByFn(n,e),null!==i&&Wr(i.trackById,o)?(s&&(i=t._verifyReinsertion(i,e,o,n)),Wr(i.item,e)||t._addIdentityChange(i,e)):(i=t._mismatch(i,e,o,n),s=!0),i=i._next,n++})),this.length=n;return this._truncate(i),this.collection=e,this.isDirty}},{key:\"_reset\",value:function(){if(this.isDirty){var e,t;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}},{key:\"_mismatch\",value:function(e,t,n,r){var o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Wr(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,r)):e=this._addAfter(new lo(t,n),o,r),e}},{key:\"_verifyReinsertion\",value:function(e,t,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?e=this._reinsertAfter(o,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}},{key:\"_truncate\",value:function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}},{key:\"_reinsertAfter\",value:function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,o=e._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_moveAfter\",value:function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}},{key:\"_addAfter\",value:function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}},{key:\"_insertAfter\",value:function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new fo),this._linkedRecords.put(e),e.currentIndex=n,e}},{key:\"_remove\",value:function(e){return this._addToRemovals(this._unlink(e))}},{key:\"_unlink\",value:function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}},{key:\"_addToMoves\",value:function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)}},{key:\"_addToRemovals\",value:function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new fo),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}},{key:\"_addIdentityChange\",value:function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}}]),e}(),lo=function e(t,n){_classCallCheck(this,e),this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},co=function(){function e(){_classCallCheck(this,e),this._head=null,this._tail=null}return _createClass(e,[{key:\"add\",value:function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}},{key:\"get\",value:function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Wr(n.trackById,e))return n;return null}},{key:\"remove\",value:function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}]),e}(),fo=function(){function e(){_classCallCheck(this,e),this.map=new Map}return _createClass(e,[{key:\"put\",value:function(e){var t=e.trackById,n=this.map.get(t);n||(n=new co,this.map.set(t,n)),n.add(e)}},{key:\"get\",value:function(e,t){var n=this.map.get(e);return n?n.get(e,t):null}},{key:\"remove\",value:function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}},{key:\"clear\",value:function(){this.map.clear()}},{key:\"isEmpty\",get:function(){return 0===this.map.size}}]),e}();function ho(e,t,n){var r=e.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+t+o}var vo=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"supports\",value:function(e){return e instanceof Map||Qr(e)}},{key:\"create\",value:function(){return new po}}]),e}(),po=function(){function e(){_classCallCheck(this,e),this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return _createClass(e,[{key:\"forEachItem\",value:function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)}},{key:\"forEachPreviousItem\",value:function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}},{key:\"forEachChangedItem\",value:function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}},{key:\"forEachAddedItem\",value:function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}},{key:\"forEachRemovedItem\",value:function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}},{key:\"diff\",value:function(e){if(e){if(!(e instanceof Map||Qr(e)))throw new Error(\"Error trying to diff '\".concat(ue(e),\"'. Only maps and objects are allowed\"))}else e=new Map;return this.check(e)?this:null}},{key:\"onDestroy\",value:function(){}},{key:\"check\",value:function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,(function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var o=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,o)}})),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}},{key:\"_insertBeforeOrAppend\",value:function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}},{key:\"_getOrCreateRecordForKey\",value:function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new yo(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}},{key:\"_reset\",value:function(){if(this.isDirty){var e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}},{key:\"_maybeAddToChanges\",value:function(e,t){Wr(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}},{key:\"_addToAdditions\",value:function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}},{key:\"_addToChanges\",value:function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}},{key:\"_forEach\",value:function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach((function(n){return t(e[n],n)}))}},{key:\"isDirty\",get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}}]),e}(),yo=function e(t){_classCallCheck(this,e),this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},_o=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t,n=this.factories.find((function(t){return t.supports(e)}));if(null!=n)return n;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"' of type '\").concat((t=e).name||typeof t,\"'\"))}}],[{key:\"create\",value:function(t,n){if(null!=n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new so])}}),e}(),go=function(){var e=function(){function e(t){_classCallCheck(this,e),this.factories=t}return _createClass(e,[{key:\"find\",value:function(e){var t=this.factories.find((function(t){return t.supports(e)}));if(t)return t;throw new Error(\"Cannot find a differ supporting object '\".concat(e,\"'\"))}}],[{key:\"create\",value:function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)}},{key:\"extend\",value:function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return e.create(t,n)},deps:[[e,new J,new Q]]}}}]),e}();return e.\\u0275prov=$({token:e,providedIn:\"root\",factory:function(){return new e([new vo])}}),e}(),mo=[new vo],ko=new _o([new so]),bo=new go(mo),wo={};function Co(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var Eo=new Te(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:function(){return Lt}}),xo=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).componentDef=e,r.ngModule=n,r.componentType=e.type,r.selector=e.selectors.map(In).join(\",\"),r.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],r.isBoundToModule=!!n,r}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e,t,n,r){var o,i,s=(r=r||this.ngModule)?function(e,t){return{get:function(n,r,o){var i=e.get(n,wo,o);return i!==wo||r===wo?i:t.get(n,r,o)}}}(e,r.injector):e,a=s.get(no,Rt),u=s.get(oo,null),l=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",f=n?function(e,t,n){if(Dt(e))return e.selectRootElement(t,n===Ze.ShadowDom);var r=\"string\"==typeof t?e.querySelector(t):t;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Dn(c,a.createRenderer(null,this.componentDef),function(e){var t=e.toLowerCase();return\"svg\"===t?\"http://www.w3.org/2000/svg\":\"math\"===t?\"http://www.w3.org/1998/MathML/\":null}(c)),h=this.componentDef.onPush?576:528,d=\"string\"==typeof n&&/^#root-ng-internal-isolated-\\d+/.test(n),v={components:[],scheduler:Lt,clean:ar,playerHandler:null,flags:0},p=Ln(0,-1,null,1,0,null,null,null,null,null),y=Rn(null,p,v,h,null,null,a,l,u,s);_t(y,null);try{var _=function(e,t,n,r,o,i){var s=n[1];n[19]=e;var a=Nn(s,null,0,3,null,null),u=a.mergedAttrs=t.hostAttrs;null!==u&&(Zr(a,u),null!==e&&(Nt(o,e,u),null!==a.classes&&br(o,e,a.classes),null!==a.styles&&kr(o,e,a.styles)));var l=r.createRenderer(e,t),c=Rn(n,Vn(t),null,t.onPush?64:16,n[19],a,r,l,void 0);return s.firstCreatePass&&(Jt(Wt(a,n),s,t.type),Qn(s,a),Jn(a,n.length,1)),rr(n,c),n[19]=c}(f,this.componentDef,y,a,l);if(f)if(n)Nt(l,f,[\"ng-version\",io.full]);else{var g=function(e){for(var t=[],n=[],r=1,o=2;r<e.length;){var i=e[r];if(\"string\"==typeof i)2===o?\"\"!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!En(o))break;o=i}r++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]),m=g.attrs,k=g.classes;m&&Nt(l,f,m),k&&k.length>0&&br(l,f,k.join(\" \"))}i=y[1].data[19],t&&(i.projection=t.map((function(e){return Array.from(e)}))),o=function(e,t,n,r,o){var i=n[1],s=function(e,t,n){var r=lt();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),qn(e,r,1),Kn(e,t,n));var o=$t(t,e,t.length-1,r);_n(o,t);var i=fn(r,t);return i&&_n(i,t),o}(i,n,t);r.components.push(s),e[8]=s,o&&o.forEach((function(e){return e(s,t)})),t.contentQueries&&t.contentQueries(1,s,n.length-1);var a=lt();if(i.firstCreatePass&&(null!==t.hostBindings||null!==t.hostAttrs)){Ct(a.index-19);var u=n[1];Bn(u,t),Un(u,n,t.hostVars),Wn(t,s)}return s}(_,this.componentDef,y,v,[Kr]),jn(p,y,null)}finally{wt()}var b=new To(this.componentType,o,Er(eo,i,y),y,i);return n&&!d||(b.hostView._tViewNode.child=i),b}},{key:\"inputs\",get:function(){return Co(this.componentDef.inputs)}},{key:\"outputs\",get:function(){return Co(this.componentDef.outputs)}}]),t}(Yr),To=function(e){function t(e,n,r,o,i){var s,a,u,l;return _classCallCheck(this,t),(s=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).location=r,s._rootLView=o,s._tNode=i,s.destroyCbs=[],s.instance=n,s.hostView=s.changeDetectorRef=new Cr(o),s.hostView._tViewNode=(a=o[1],u=o,null==(l=a.node)&&(a.node=l=zn(0,null,2,-1,null,null)),u[6]=l),s.componentType=e,s}return _inherits(t,e),_createClass(t,[{key:\"destroy\",value:function(){this.destroyCbs&&(this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}},{key:\"onDestroy\",value:function(e){this.destroyCbs&&this.destroyCbs.push(e)}},{key:\"injector\",get:function(){return new tn(this._tNode,this._rootLView)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),So=void 0,Io=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],So],[[\"AM\",\"PM\"],So,So],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],So,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],So,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",So,\"{1} 'at' {0}\",So],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===t&&0===n?1:5}],Ao={};function Oo(e){return e in Ao||(Ao[e]=ge.ng&&ge.ng.common&&ge.ng.common.locales&&ge.ng.common.locales[e]),Ao[e]}var Po=function(){var e={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,PluralCase:19,ExtraData:20};return e[e.LocaleId]=\"LocaleId\",e[e.DayPeriodsFormat]=\"DayPeriodsFormat\",e[e.DayPeriodsStandalone]=\"DayPeriodsStandalone\",e[e.DaysFormat]=\"DaysFormat\",e[e.DaysStandalone]=\"DaysStandalone\",e[e.MonthsFormat]=\"MonthsFormat\",e[e.MonthsStandalone]=\"MonthsStandalone\",e[e.Eras]=\"Eras\",e[e.FirstDayOfWeek]=\"FirstDayOfWeek\",e[e.WeekendRange]=\"WeekendRange\",e[e.DateFormat]=\"DateFormat\",e[e.TimeFormat]=\"TimeFormat\",e[e.DateTimeFormat]=\"DateTimeFormat\",e[e.NumberSymbols]=\"NumberSymbols\",e[e.NumberFormats]=\"NumberFormats\",e[e.CurrencyCode]=\"CurrencyCode\",e[e.CurrencySymbol]=\"CurrencySymbol\",e[e.CurrencyName]=\"CurrencyName\",e[e.Currencies]=\"Currencies\",e[e.PluralCase]=\"PluralCase\",e[e.ExtraData]=\"ExtraData\",e}();function Do(e){var t;null==(t=e)&&function(e,t,n,r){throw new Error(\"ASSERTION ERROR: \".concat(\"Expected localeId to be defined\")+\" [Expected=> null != \".concat(t,\" <=Actual]\"))}(0,t),\"string\"==typeof e&&e.toLowerCase().replace(/_/g,\"-\")}var Ro=new Map,No={provide:Xr,useClass:function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).ngModule=e,n}return _inherits(t,e),_createClass(t,[{key:\"resolveComponentFactory\",value:function(e){var t=$e(e);return new xo(t,this.ngModule)}}]),t}(Xr),deps:[Ve]},jo=function(e){function t(e,n){var r;_classCallCheck(this,t),(r=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._parent=n,r._bootstrapComponents=[],r.injector=_assertThisInitialized(r),r.destroyCbs=[];var o=et(e),i=e[Ce]||null;return i&&Do(i),r._bootstrapComponents=zt(o.bootstrap),r._r3Injector=Pr(e,n,[{provide:Ve,useValue:_assertThisInitialized(r)},No],ue(e)),r.instance=r.get(e),r}return _inherits(t,e),_createClass(t,[{key:\"get\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fr.THROW_IF_NOT_FOUND,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:K.Default;return e===Fr||e===Ve||e===Se?this:this._r3Injector.get(e,t,n)}},{key:\"destroy\",value:function(){var e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach((function(e){return e()})),this.destroyCbs=null}},{key:\"onDestroy\",value:function(e){this.destroyCbs.push(e)}},{key:\"componentFactoryResolver\",get:function(){return this.get(Xr)}}]),t}(Ve),Ho=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).moduleType=e,null!==et(e)&&function e(t){if(null!==t.\\u0275mod.id){var n=t.\\u0275mod.id;(function(e,t,n){if(t&&t!==n)throw new Error(\"Duplicate module registered for \".concat(e,\" - \").concat(ue(t),\" vs \").concat(ue(t.name)))})(n,Ro.get(n),t),Ro.set(n,t)}var r=t.\\u0275mod.imports;r instanceof Function&&(r=r()),r&&r.forEach((function(t){return e(t)}))}(e),n}return _inherits(t,e),_createClass(t,[{key:\"create\",value:function(e){return new jo(this.moduleType,e)}}]),t}(function(){return function e(){_classCallCheck(this,e)}}()),Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _classCallCheck(this,t),(e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).__isAsync=n,e}return _inherits(t,e),_createClass(t,[{key:\"emit\",value:function(e){_get(_getPrototypeOf(t.prototype),\"next\",this).call(this,e)}},{key:\"subscribe\",value:function(e,n,r){var o,i=function(e){return null},s=function(){return null};e&&\"object\"==typeof e?(o=this.__isAsync?function(t){setTimeout((function(){return e.next(t)}))}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout((function(){return e.error(t)}))}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout((function(){return e.complete()}))}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout((function(){return e(t)}))}:function(t){e(t)},n&&(i=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var a=_get(_getPrototypeOf(t.prototype),\"subscribe\",this).call(this,o,i,s);return e instanceof h&&e.add(a),a}}]),t}(T),Fo=new Te(\"Application Initializer\"),Vo=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((function(e,t){n.resolve=e,n.reject=t}))}return _createClass(e,[{key:\"runInitializers\",value:function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Jr(o)&&t.push(o)}Promise.all(t).then((function(){n()})).catch((function(t){e.reject(t)})),0===t.length&&n(),this.initialized=!0}}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fo,8))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Lo=new Te(\"AppId\"),zo={provide:Lo,useFactory:function(){return\"\".concat(Zo()).concat(Zo()).concat(Zo())},deps:[]};function Zo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Bo=new Te(\"Platform Initializer\"),Uo=new Te(\"Platform ID\"),Wo=new Te(\"appBootstrapListener\"),qo=function(){var e=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"log\",value:function(e){console.log(e)}},{key:\"warn\",value:function(e){console.warn(e)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),Qo=new Te(\"LocaleId\"),Go=new Te(\"DefaultCurrencyCode\"),Jo=function e(t,n){_classCallCheck(this,e),this.ngModuleFactory=t,this.componentFactories=n},Ko=function(e){return new Ho(e)},Yo=Ko,$o=function(e){return Promise.resolve(Ko(e))},Xo=function(e){var t=Ko(e),n=zt(et(e).declarations).reduce((function(e,t){var n=$e(t);return n&&e.push(new xo(n)),e}),[]);return new Jo(t,n)},ei=Xo,ti=function(e){return Promise.resolve(Xo(e))},ni=function(){var e=function(){function e(){_classCallCheck(this,e),this.compileModuleSync=Yo,this.compileModuleAsync=$o,this.compileModuleAndAllComponentsSync=ei,this.compileModuleAndAllComponentsAsync=ti}return _createClass(e,[{key:\"clearCache\",value:function(){}},{key:\"clearCacheFor\",value:function(e){}},{key:\"getModuleId\",value:function(e){}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),ri=new Te(\"compilerOptions\"),oi=Promise.resolve(0);function ii(e){\"undefined\"==typeof Zone?oi.then((function(){e&&e.apply(null,null)})):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",e)}var si=function(){function e(t){var n,r,o=t.enableLongStackTrace,i=void 0!==o&&o,s=t.shouldCoalesceEventChangeDetection,a=void 0!==s&&s;if(_classCallCheck(this,e),this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Mo(!1),this.onMicrotaskEmpty=new Mo(!1),this.onStable=new Mo(!1),this.onError=new Mo(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),i&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),this.shouldCoalesceEventChangeDetection=a,this.lastRequestAnimationFrameId=-1,this.nativeRequestAnimationFrame=function(){var e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&e&&t){var n=e[Zone.__symbol__(\"OriginalDelegate\")];n&&(e=n);var r=t[Zone.__symbol__(\"OriginalDelegate\")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,r=!!(n=this).shouldCoalesceEventChangeDetection&&n.nativeRequestAnimationFrame&&function(){!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,(function(){e.lastRequestAnimationFrameId=-1,ci(e),li(e)})),ci(e))}(n)},n._inner=n._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:r},onInvokeTask:function(e,t,o,i,s,a){try{return fi(n),e.invokeTask(o,i,s,a)}finally{r&&\"eventTask\"===i.type&&r(),hi(n)}},onInvoke:function(e,t,r,o,i,s,a){try{return fi(n),e.invoke(r,o,i,s,a)}finally{hi(n)}},onHasTask:function(e,t,r,o){e.hasTask(r,o),t===r&&(\"microTask\"==o.change?(n._hasPendingMicrotasks=o.microTask,ci(n),li(n)):\"macroTask\"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:function(e,t,r,o){return e.handleError(r,o),n.runOutsideAngular((function(){return n.onError.emit(o)})),!1}})}return _createClass(e,[{key:\"run\",value:function(e,t,n){return this._inner.run(e,t,n)}},{key:\"runTask\",value:function(e,t,n,r){var o=this._inner,i=o.scheduleEventTask(\"NgZoneEvent: \"+r,e,ui,ai,ai);try{return o.runTask(i,t,n)}finally{o.cancelTask(i)}}},{key:\"runGuarded\",value:function(e,t,n){return this._inner.runGuarded(e,t,n)}},{key:\"runOutsideAngular\",value:function(e){return this._outer.run(e)}}],[{key:\"isInAngularZone\",value:function(){return!0===Zone.current.get(\"isAngularZone\")}},{key:\"assertInAngularZone\",value:function(){if(!e.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}},{key:\"assertNotInAngularZone\",value:function(){if(e.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}}]),e}();function ai(){}var ui={};function li(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular((function(){return e.onStable.emit(null)}))}finally{e.isStable=!0}}}function ci(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||e.shouldCoalesceEventChangeDetection&&-1!==e.lastRequestAnimationFrameId)}function fi(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hi(e){e._nesting--,li(e)}var di,vi=function(){function e(){_classCallCheck(this,e),this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Mo,this.onMicrotaskEmpty=new Mo,this.onStable=new Mo,this.onError=new Mo}return _createClass(e,[{key:\"run\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runGuarded\",value:function(e,t,n){return e.apply(t,n)}},{key:\"runOutsideAngular\",value:function(e){return e()}},{key:\"runTask\",value:function(e,t,n,r){return e.apply(t,n)}}]),e}(),pi=function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((function(){n.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")}))}return _createClass(e,[{key:\"_watchAngularEvents\",value:function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular((function(){e._ngZone.onStable.subscribe({next:function(){si.assertNotInAngularZone(),ii((function(){e._isZoneStable=!0,e._runCallbacksIfReady()}))}})}))}},{key:\"increasePendingRequestCount\",value:function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}},{key:\"decreasePendingRequestCount\",value:function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}},{key:\"isStable\",value:function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}},{key:\"_runCallbacksIfReady\",value:function(){var e=this;if(this.isStable())ii((function(){for(;0!==e._callbacks.length;){var t=e._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(e._didWork)}e._didWork=!1}));else{var t=this.getPendingTasks();this._callbacks=this._callbacks.filter((function(e){return!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)})),this._didWork=!0}}},{key:\"getPendingTasks\",value:function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((function(e){return{source:e.source,creationLocation:e.creationLocation,data:e.data}})):[]}},{key:\"addCallback\",value:function(e,t,n){var r=this,o=-1;t&&t>0&&(o=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==o})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}},{key:\"whenStable\",value:function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}},{key:\"getPendingRequestCount\",value:function(){return this._pendingCount}},{key:\"findProviders\",value:function(e,t,n){return[]}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(si))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),yi=function(){var e=function(){function e(){_classCallCheck(this,e),this._applications=new Map,_i.addToWindow(this)}return _createClass(e,[{key:\"registerApplication\",value:function(e,t){this._applications.set(e,t)}},{key:\"unregisterApplication\",value:function(e){this._applications.delete(e)}},{key:\"unregisterAllApplications\",value:function(){this._applications.clear()}},{key:\"getTestability\",value:function(e){return this._applications.get(e)||null}},{key:\"getAllTestabilities\",value:function(){return Array.from(this._applications.values())}},{key:\"getAllRootElements\",value:function(){return Array.from(this._applications.keys())}},{key:\"findTestabilityInTree\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return _i.findTestabilityInTree(this,e,t)}}]),e}();return e.\\u0275fac=function(t){return new(t||e)},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}(),_i=new(function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){}},{key:\"findTestabilityInTree\",value:function(e,t,n){return null}}]),e}()),gi=function(e,t,n){var r=new Ho(n);if(0===Vr.size)return Promise.resolve(r);var o,i,s=(o=e.get(ri,[]).concat(t).map((function(e){return e.providers})),i=[],o.forEach((function(e){return e&&i.push.apply(i,_toConsumableArray(e))})),i);if(0===s.length)return Promise.resolve(r);var a=function(){var e=ge.ng;if(!e||!e.\\u0275compilerFacade)throw new Error(\"Angular JIT compilation failed: '@angular/compiler' not loaded!\\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n  - Alternatively provide the compiler with 'import \\\"@angular/compiler\\\";' before bootstrapping.\");return e.\\u0275compilerFacade}(),u=Fr.create({providers:s}).get(a.ResourceLoader);return function(e){var t=[],n=new Map;function r(e){var t=n.get(e);if(!t){var r=function(e){return Promise.resolve(u.get(e))}(e);n.set(e,t=r.then(zr))}return t}return Vr.forEach((function(e,n){var o=[];e.templateUrl&&o.push(r(e.templateUrl).then((function(t){e.template=t})));var i=e.styleUrls,s=e.styles||(e.styles=[]),a=e.styles.length;i&&i.forEach((function(t,n){s.push(\"\"),o.push(r(t).then((function(r){s[a+n]=r,i.splice(i.indexOf(t),1),0==i.length&&(e.styleUrls=void 0)})))}));var u=Promise.all(o).then((function(){return function(e){Lr.delete(e)}(n)}));t.push(u)})),Vr=new Map,Promise.all(t).then((function(){}))}().then((function(){return r}))},mi=new Te(\"AllowMultipleToken\");function ki(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=\"Platform: \".concat(t),o=new Te(r);return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=bi();if(!i||i.injector.get(mi,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var s=n.concat(t).concat({provide:o,useValue:!0},{provide:xr,useValue:\"platform\"});!function(e){if(di&&!di.destroyed&&!di.injector.get(mi,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");di=e.get(wi);var t=e.get(Bo,null);t&&t.forEach((function(e){return e()}))}(Fr.create({providers:s,name:r}))}return function(e){var t=bi();if(!t)throw new Error(\"No platform exists!\");if(!t.injector.get(e,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return t}(o)}}function bi(){return di&&!di.destroyed?di:null}var wi=function(){var e=function(){function e(t){_classCallCheck(this,e),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return _createClass(e,[{key:\"bootstrapModuleFactory\",value:function(e,t){var n,r,o=this,i=(n=t?t.ngZone:void 0,r=t&&t.ngZoneEventCoalescing||!1,\"noop\"===n?new vi:(\"zone.js\"===n?void 0:n)||new si({enableLongStackTrace:ln(),shouldCoalesceEventChangeDetection:r})),s=[{provide:si,useValue:i}];return i.run((function(){var t=Fr.create({providers:s,parent:o.injector,name:e.moduleType.name}),n=e.create(t),r=n.injector.get(sn,null);if(!r)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return n.onDestroy((function(){return Ti(o._modules,n)})),i.runOutsideAngular((function(){return i.onError.subscribe({next:function(e){r.handleError(e)}})})),function(e,t,r){try{var i=((s=n.injector.get(Vo)).runInitializers(),s.donePromise.then((function(){return Do(n.injector.get(Qo,\"en-US\")||\"en-US\"),o._moduleDoBootstrap(n),n})));return Jr(i)?i.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):i}catch(a){throw t.runOutsideAngular((function(){return e.handleError(a)})),a}var s}(r,i)}))}},{key:\"bootstrapModule\",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=Ci({},n);return gi(this.injector,r,e).then((function(e){return t.bootstrapModuleFactory(e,r)}))}},{key:\"_moduleDoBootstrap\",value:function(e){var t=e.injector.get(xi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error(\"The module \".concat(ue(e.instance.constructor),' was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ')+\"Please define one of these.\");e.instance.ngDoBootstrap(t)}this._modules.push(e)}},{key:\"onDestroy\",value:function(e){this._destroyListeners.push(e)}},{key:\"destroy\",value:function(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0}},{key:\"injector\",get:function(){return this._injector}},{key:\"destroyed\",get:function(){return this._destroyed}}]),e}();return e.\\u0275fac=function(t){return new(t||e)(je(Fr))},e.\\u0275prov=$({token:e,factory:e.\\u0275fac}),e}();function Ci(e,t){return Array.isArray(t)?t.reduce(Ci,e):Object.assign(Object.assign({},e),t)}var Ei,xi=((Ei=function(){function e(t,n,r,o,i,s){var a=this;_classCallCheck(this,e),this._zone=t,this._console=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=ln(),this._zone.onMicrotaskEmpty.subscribe({next:function(){a._zone.run((function(){a.tick()}))}});var u=new k((function(e){a._stable=a._zone.isStable&&!a._zone.hasPendingMacrotasks&&!a._zone.hasPendingMicrotasks,a._zone.runOutsideAngular((function(){e.next(a._stable),e.complete()}))})),l=new k((function(e){var t;a._zone.runOutsideAngular((function(){t=a._zone.onStable.subscribe((function(){si.assertNotInAngularZone(),ii((function(){a._stable||a._zone.hasPendingMacrotasks||a._zone.hasPendingMicrotasks||(a._stable=!0,e.next(!0))}))}))}));var n=a._zone.onUnstable.subscribe((function(){si.assertInAngularZone(),a._stable&&(a._stable=!1,a._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=Number.POSITIVE_INFINITY,i=null,s=t[t.length-1];return(r=s)&&\"function\"==typeof r.schedule?(i=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(o=t.pop())):\"number\"==typeof s&&(o=t.pop()),null===i&&1===t.length&&t[0]instanceof k?t[0]:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.POSITIVE_INFINITY;return\"function\"==typeof n?function(o){return o.pipe(e((function(e,r){return(o=t(e,r),o instanceof k?o:new k(P(o))).pipe(function(e,t){return function(t){return t.lift(new R(e,void 0))}}((function(t,o){return n(e,t,r,o)})));var o}),r))}:(\"number\"==typeof n&&(r=n),function(e){return e.lift(new j(t,r))})}(M,e)}(o)(function(e,t){return t?function(e,t){return new k((function(n){var r=new h,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}(e,t):new k(A(e))}(t,i))}(u,l.pipe((function(e){return F()((t=U,function(e){var n;n=\"function\"==typeof t?t:function(){return t};var r=Object.create(e,Z);return r.source=e,r.subjectFactory=n,r})(e));var t})))}return _createClass(e,[{key:\"bootstrap\",value:function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");n=e instanceof Yr?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n.isBoundToModule?void 0:this._injector.get(Ve),i=n.create(Fr.NULL,[],t||n.selector,o);i.onDestroy((function(){r._unloadComponent(i)}));var s=i.injector.get(pi,null);return s&&i.injector.get(yi).registerApplication(i.location.nativeElement,s),this._loadComponent(i),ln()&&this._console.log(\"Angular is running in the development mode. Call enableProdMode() to enable the production mode.\"),i}},{key:\"tick\",value:function(){var e=this;if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;var t=!0,n=!1,r=void 0;try{for(var o,i=this._views[Symbol.iterator]();!(t=(o=i.next()).done);t=!0)o.value.detectChanges()}catch(f){n=!0,r=f}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}if(this._enforceNoNewChanges){var s=!0,a=!1,u=void 0;try{for(var l,c=this._views[Symbol.iterator]();!(s=(l=c.next()).done);s=!0)l.value.checkNoChanges()}catch(f){a=!0,u=f}finally{try{s||null==c.return||c.return()}finally{if(a)throw u}}}}catch(h){this._zone.runOutsideAngular((function(){return e._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}}},{key:\"attachView\",value:function(e){var t=e;this._views.push(t),t.attachToAppRef(this)}},{key:\"detachView\",value:function(e){var t=e;Ti(this._views,t),t.detachFromAppRef()}},{key:\"_loadComponent\",value:function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Wo,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))}},{key:\"_unloadComponent\",value:function(e){this.detachView(e.hostView),Ti(this.components,e)}},{key:\"ngOnDestroy\",value:function(){this._views.slice().forEach((function(e){return e.destroy()}))}},{key:\"viewCount\",get:function(){return this._views.length}}]),e}()).\\u0275fac=function(e){return new(e||Ei)(je(si),je(qo),je(Fr),je(sn),je(Xr),je(Vo))},Ei.\\u0275prov=$({token:Ei,factory:Ei.\\u0275fac}),Ei);function Ti(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var Si=ki(null,\"core\",[{provide:Uo,useValue:\"unknown\"},{provide:wi,deps:[Fr]},{provide:yi,deps:[]},{provide:qo,deps:[]}]),Ii=[{provide:xi,useClass:xi,deps:[si,qo,Fr,sn,Xr,Vo]},{provide:Eo,deps:[si],useFactory:function(e){var t=[];return e.onStable.subscribe((function(){for(;t.length;)t.pop()()})),function(e){t.push(e)}}},{provide:Vo,useClass:Vo,deps:[[new Q,Fo]]},{provide:ni,useClass:ni,deps:[]},zo,{provide:_o,useFactory:function(){return ko},deps:[]},{provide:go,useFactory:function(){return bo},deps:[]},{provide:Qo,useFactory:function(e){return Do(e=e||\"undefined\"!=typeof $localize&&$localize.locale||\"en-US\"),e},deps:[[new q(Qo),new Q,new J]]},{provide:Go,useValue:\"USD\"}],Ai=function(){var e=function e(t){_classCallCheck(this,e)};return e.\\u0275mod=Ke({type:e}),e.\\u0275inj=X({factory:function(t){return new(t||e)(je(xi))},providers:Ii}),e}(),Oi=null;function Pi(){return Oi}var Di,Ri,Ni,ji,Hi,Mi,Fi=new Te(\"DocumentToken\"),Vi=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]=\"Zero\",e[e.One]=\"One\",e[e.Two]=\"Two\",e[e.Few]=\"Few\",e[e.Many]=\"Many\",e[e.Other]=\"Other\",e}(),Li=function e(){_classCallCheck(this,e)},zi=((Ri=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))).locale=e,n}return _inherits(t,e),_createClass(t,[{key:\"getPluralCategory\",value:function(e,t){switch(function(e){return function(e){var t=function(e){return e.toLowerCase().replace(/_/g,\"-\")}(e),n=Oo(t);if(n)return n;var r=t.split(\"-\")[0];if(n=Oo(r))return n;if(\"en\"===r)return Io;throw new Error('Missing locale data for the locale \"'.concat(e,'\".'))}(e)[Po.PluralCase]}(t||this.locale)(e)){case Vi.Zero:return\"zero\";case Vi.One:return\"one\";case Vi.Two:return\"two\";case Vi.Few:return\"few\";case Vi.Many:return\"many\";default:return\"other\"}}}]),t}(Li)).\\u0275fac=function(e){return new(e||Ri)(je(Qo))},Ri.\\u0275prov=$({token:Ri,factory:Ri.\\u0275fac}),Ri),Zi=((Di=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:Di}),Di.\\u0275inj=X({factory:function(e){return new(e||Di)},providers:[{provide:Li,useClass:zi}]}),Di),Bi=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:\"getProperty\",value:function(e,t){return e[t]}},{key:\"log\",value:function(e){window.console&&window.console.log&&window.console.log(e)}},{key:\"logGroup\",value:function(e){window.console&&window.console.group&&window.console.group(e)}},{key:\"logGroupEnd\",value:function(){window.console&&window.console.groupEnd&&window.console.groupEnd()}},{key:\"onAndCancel\",value:function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}}},{key:\"dispatchEvent\",value:function(e,t){e.dispatchEvent(t)}},{key:\"remove\",value:function(e){return e.parentNode&&e.parentNode.removeChild(e),e}},{key:\"getValue\",value:function(e){return e.value}},{key:\"createElement\",value:function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}},{key:\"createHtmlDocument\",value:function(){return document.implementation.createHTMLDocument(\"fakeTitle\")}},{key:\"getDefaultDocument\",value:function(){return document}},{key:\"isElementNode\",value:function(e){return e.nodeType===Node.ELEMENT_NODE}},{key:\"isShadowRoot\",value:function(e){return e instanceof DocumentFragment}},{key:\"getGlobalEventTarget\",value:function(e,t){return\"window\"===t?window:\"document\"===t?e:\"body\"===t?e.body:null}},{key:\"getHistory\",value:function(){return window.history}},{key:\"getLocation\",value:function(){return window.location}},{key:\"getBaseHref\",value:function(e){var t,n=Ui||(Ui=document.querySelector(\"base\"))?Ui.getAttribute(\"href\"):null;return null==n?null:(t=n,Ni||(Ni=document.createElement(\"a\")),Ni.setAttribute(\"href\",t),\"/\"===Ni.pathname.charAt(0)?Ni.pathname:\"/\"+Ni.pathname)}},{key:\"resetBaseElement\",value:function(){Ui=null}},{key:\"getUserAgent\",value:function(){return window.navigator.userAgent}},{key:\"performanceNow\",value:function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}},{key:\"supportsCookies\",value:function(){return!0}},{key:\"getCookie\",value:function(e){return function(e,t){t=encodeURIComponent(t);var n=!0,r=!1,o=void 0;try{for(var i,s=e.split(\";\")[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var a=i.value,u=a.indexOf(\"=\"),l=_slicedToArray(-1==u?[a,\"\"]:[a.slice(0,u),a.slice(u+1)],2),c=l[0],f=l[1];if(c.trim()===t)return decodeURIComponent(f)}}catch(h){r=!0,o=h}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}return null}(document.cookie,e)}}],[{key:\"makeCurrent\",value:function(){var e;e=new t,Oi||(Oi=e)}}]),t}(function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this))}return _inherits(t,e),_createClass(t,[{key:\"supportsDOMEvents\",value:function(){return!0}}]),t}(function(){return function e(){_classCallCheck(this,e)}}())),Ui=null,Wi=new Te(\"TRANSITION_ID\"),qi=[{provide:Fo,useFactory:function(e,t,n){return function(){n.get(Vo).donePromise.then((function(){var n=Pi();Array.prototype.slice.apply(t.querySelectorAll(\"style[ng-transition]\")).filter((function(t){return t.getAttribute(\"ng-transition\")===e})).forEach((function(e){return n.remove(e)}))}))}},deps:[Wi,Fi,Fr],multi:!0}],Qi=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"addToWindow\",value:function(e){ge.getAngularTestability=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.findTestabilityInTree(t,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},ge.getAllAngularTestabilities=function(){return e.getAllTestabilities()},ge.getAllAngularRootElements=function(){return e.getAllRootElements()},ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push((function(e){var t=ge.getAllAngularTestabilities(),n=t.length,r=!1,o=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(o)}))}))}},{key:\"findTestabilityInTree\",value:function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Pi().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}],[{key:\"init\",value:function(){var t;t=new e,_i=t}}]),e}(),Gi=new Te(\"EventManagerPlugins\"),Ji=((ji=function(){function e(t,n){var r=this;_classCallCheck(this,e),this._zone=n,this._eventNameToPlugin=new Map,t.forEach((function(e){return e.manager=r})),this._plugins=t.slice().reverse()}return _createClass(e,[{key:\"addEventListener\",value:function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}},{key:\"addGlobalEventListener\",value:function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}},{key:\"getZone\",value:function(){return this._zone}},{key:\"_findPluginFor\",value:function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(e))return this._eventNameToPlugin.set(e,o),o}throw new Error(\"No event manager plugin found for event \".concat(e))}}]),e}()).\\u0275fac=function(e){return new(e||ji)(je(Gi),je(si))},ji.\\u0275prov=$({token:ji,factory:ji.\\u0275fac}),ji),Ki=function(){function e(t){_classCallCheck(this,e),this._doc=t}return _createClass(e,[{key:\"addGlobalEventListener\",value:function(e,t,n){var r=Pi().getGlobalEventTarget(this._doc,e);if(!r)throw new Error(\"Unsupported event target \".concat(r,\" for event \").concat(t));return this.addEventListener(r,t,n)}}]),e}(),Yi=((Mi=function(){function e(){_classCallCheck(this,e),this._stylesSet=new Set}return _createClass(e,[{key:\"addStyles\",value:function(e){var t=this,n=new Set;e.forEach((function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))})),this.onStylesAdded(n)}},{key:\"onStylesAdded\",value:function(e){}},{key:\"getAllStyles\",value:function(){return Array.from(this._stylesSet)}}]),e}()).\\u0275fac=function(e){return new(e||Mi)},Mi.\\u0275prov=$({token:Mi,factory:Mi.\\u0275fac}),Mi),$i=((Hi=function(e){function t(e){var n;return _classCallCheck(this,t),(n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this)))._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return _inherits(t,e),_createClass(t,[{key:\"_addStylesToHost\",value:function(e,t){var n=this;e.forEach((function(e){var r=n._doc.createElement(\"style\");r.textContent=e,n._styleNodes.add(t.appendChild(r))}))}},{key:\"addHost\",value:function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)}},{key:\"removeHost\",value:function(e){this._hostNodes.delete(e)}},{key:\"onStylesAdded\",value:function(e){var t=this;this._hostNodes.forEach((function(n){return t._addStylesToHost(e,n)}))}},{key:\"ngOnDestroy\",value:function(){this._styleNodes.forEach((function(e){return Pi().remove(e)}))}}]),t}(Yi)).\\u0275fac=function(e){return new(e||Hi)(je(Fi))},Hi.\\u0275prov=$({token:Hi,factory:Hi.\\u0275fac}),Hi),Xi={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},es=/%COMP%/g;function ts(e,t,n){for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?ts(e,o,n):(o=o.replace(es,e),n.push(o))}return n}function ns(e){return function(t){if(\"__ngUnwrap__\"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}var rs,os,is,ss,as=((rs=function(){function e(t,n,r){_classCallCheck(this,e),this.eventManager=t,this.sharedStylesHost=n,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new us(t)}return _createClass(e,[{key:\"createRenderer\",value:function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case Ze.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new ls(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case Ze.Native:case Ze.ShadowDom:return new cs(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=ts(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}},{key:\"begin\",value:function(){}},{key:\"end\",value:function(){}}]),e}()).\\u0275fac=function(e){return new(e||rs)(je(Ji),je($i),je(Lo))},rs.\\u0275prov=$({token:rs,factory:rs.\\u0275fac}),rs),us=function(){function e(t){_classCallCheck(this,e),this.eventManager=t,this.data=Object.create(null)}return _createClass(e,[{key:\"destroy\",value:function(){}},{key:\"createElement\",value:function(e,t){return t?document.createElementNS(Xi[t]||t,e):document.createElement(e)}},{key:\"createComment\",value:function(e){return document.createComment(e)}},{key:\"createText\",value:function(e){return document.createTextNode(e)}},{key:\"appendChild\",value:function(e,t){e.appendChild(t)}},{key:\"insertBefore\",value:function(e,t,n){e&&e.insertBefore(t,n)}},{key:\"removeChild\",value:function(e,t){e&&e.removeChild(t)}},{key:\"selectRootElement\",value:function(e,t){var n=\"string\"==typeof e?document.querySelector(e):e;if(!n)throw new Error('The selector \"'.concat(e,'\" did not match any elements'));return t||(n.textContent=\"\"),n}},{key:\"parentNode\",value:function(e){return e.parentNode}},{key:\"nextSibling\",value:function(e){return e.nextSibling}},{key:\"setAttribute\",value:function(e,t,n,r){if(r){t=r+\":\"+t;var o=Xi[r];o?e.setAttributeNS(o,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}},{key:\"removeAttribute\",value:function(e,t,n){if(n){var r=Xi[n];r?e.removeAttributeNS(r,t):e.removeAttribute(\"\".concat(n,\":\").concat(t))}else e.removeAttribute(t)}},{key:\"addClass\",value:function(e,t){e.classList.add(t)}},{key:\"removeClass\",value:function(e,t){e.classList.remove(t)}},{key:\"setStyle\",value:function(e,t,n,r){r&ro.DashCase?e.style.setProperty(t,n,r&ro.Important?\"important\":\"\"):e.style[t]=n}},{key:\"removeStyle\",value:function(e,t,n){n&ro.DashCase?e.style.removeProperty(t):e.style[t]=\"\"}},{key:\"setProperty\",value:function(e,t,n){e[t]=n}},{key:\"setValue\",value:function(e,t){e.nodeValue=t}},{key:\"listen\",value:function(e,t,n){return\"string\"==typeof e?this.eventManager.addGlobalEventListener(e,t,ns(n)):this.eventManager.addEventListener(e,t,ns(n))}}]),e}(),ls=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).component=r;var s,a=ts(o+\"-\"+r.id,r.styles,[]);return n.addStyles(a),i.contentAttr=\"_ngcontent-%COMP%\".replace(es,o+\"-\"+r.id),i.hostAttr=(s=o+\"-\"+r.id,\"_nghost-%COMP%\".replace(es,s)),i}return _inherits(t,e),_createClass(t,[{key:\"applyToHost\",value:function(e){_get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,e,this.hostAttr,\"\")}},{key:\"createElement\",value:function(e,n){var r=_get(_getPrototypeOf(t.prototype),\"createElement\",this).call(this,e,n);return _get(_getPrototypeOf(t.prototype),\"setAttribute\",this).call(this,r,this.contentAttr,\"\"),r}}]),t}(us),cs=function(e){function t(e,n,r,o){var i;_classCallCheck(this,t),(i=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))).sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=o.encapsulation===Ze.ShadowDom?r.attachShadow({mode:\"open\"}):r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=ts(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement(\"style\");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return _inherits(t,e),_createClass(t,[{key:\"nodeOrShadowRoot\",value:function(e){return e===this.hostEl?this.shadowRoot:e}},{key:\"destroy\",value:function(){this.sharedStylesHost.removeHost(this.shadowRoot)}},{key:\"appendChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"appendChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"insertBefore\",value:function(e,n,r){return _get(_getPrototypeOf(t.prototype),\"insertBefore\",this).call(this,this.nodeOrShadowRoot(e),n,r)}},{key:\"removeChild\",value:function(e,n){return _get(_getPrototypeOf(t.prototype),\"removeChild\",this).call(this,this.nodeOrShadowRoot(e),n)}},{key:\"parentNode\",value:function(e){return this.nodeOrShadowRoot(_get(_getPrototypeOf(t.prototype),\"parentNode\",this).call(this,this.nodeOrShadowRoot(e)))}}]),t}(us),fs=((os=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return!0}},{key:\"addEventListener\",value:function(e,t,n){var r=this;return e.addEventListener(t,n,!1),function(){return r.removeEventListener(e,t,n)}}},{key:\"removeEventListener\",value:function(e,t,n){return e.removeEventListener(t,n)}}]),t}(Ki)).\\u0275fac=function(e){return new(e||os)(je(Fi))},os.\\u0275prov=$({token:os,factory:os.\\u0275fac}),os),hs=[\"alt\",\"control\",\"meta\",\"shift\"],ds={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},vs={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},ps={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ys=((is=function(e){function t(e){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e))}return _inherits(t,e),_createClass(t,[{key:\"supports\",value:function(e){return null!=t.parseEventName(e)}},{key:\"addEventListener\",value:function(e,n,r){var o=t.parseEventName(n),i=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Pi().onAndCancel(e,o.domEventName,i)}))}}],[{key:\"parseEventName\",value:function(e){var n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;var o=t._normalizeKey(n.pop()),i=\"\";if(hs.forEach((function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),i+=e+\".\")})),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s}},{key:\"getEventFullKey\",value:function(e){var t=\"\",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return\"Unidentified\";t.startsWith(\"U+\")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&vs.hasOwnProperty(t)&&(t=vs[t]))}return ds[t]||t}(e);return\" \"===(n=n.toLowerCase())?n=\"space\":\".\"===n&&(n=\"dot\"),hs.forEach((function(r){r!=n&&(0,ps[r])(e)&&(t+=r+\".\")})),t+=n}},{key:\"eventCallback\",value:function(e,n,r){return function(o){t.getEventFullKey(o)===e&&r.runGuarded((function(){return n(o)}))}}},{key:\"_normalizeKey\",value:function(e){switch(e){case\"esc\":return\"escape\";default:return e}}}]),t}(Ki)).\\u0275fac=function(e){return new(e||is)(je(Fi))},is.\\u0275prov=$({token:is,factory:is.\\u0275fac}),is),_s=ki(Si,\"browser\",[{provide:Uo,useValue:\"browser\"},{provide:Bo,useValue:function(){Bi.makeCurrent(),Qi.init()},multi:!0},{provide:Fi,useFactory:function(){return function(e){Pt=e}(document),document},deps:[]}]),gs=[[],{provide:xr,useValue:\"root\"},{provide:sn,useFactory:function(){return new sn},deps:[]},{provide:Gi,useClass:fs,multi:!0,deps:[Fi,si,Uo]},{provide:Gi,useClass:ys,multi:!0,deps:[Fi]},[],{provide:as,useClass:as,deps:[Ji,$i,Lo]},{provide:no,useExisting:as},{provide:Yi,useExisting:$i},{provide:$i,useClass:$i,deps:[Fi]},{provide:pi,useClass:pi,deps:[si]},{provide:Ji,useClass:Ji,deps:[Gi,si]},[]],ms=((ss=function(){function e(t){if(_classCallCheck(this,e),t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}return _createClass(e,null,[{key:\"withServerTransition\",value:function(t){return{ngModule:e,providers:[{provide:Lo,useValue:t.appId},{provide:Wi,useExisting:Lo},qi]}}}]),e}()).\\u0275mod=Ke({type:ss}),ss.\\u0275inj=X({factory:function(e){return new(e||ss)(je(ss,12))},providers:gs,imports:[Zi,Ai]}),ss);\"undefined\"!=typeof window&&window;var ks,bs,ws,Cs,Es,xs,Ts,Ss=((Ts=function e(){_classCallCheck(this,e),this.title=\"example\"}).\\u0275fac=function(e){return new(e||Ts)},Ts.\\u0275cmp=(Cs=(ws=(bs={type:Ts,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(e,t){1&e&&(function(e,t,n,r){var o=at(),i=ut(),s=19+e,a=o[11],u=o[s]=Dn(t,a,it.lFrame.currentNamespace),l=i.firstCreatePass?function(e,t,n,r,o,i,s){var a=t.consts,u=pn(a,i),l=Nn(t,n[6],e,3,o,u);return function(e,t,n,r){if(st()){var o=function(e,t,n){var r=e.directiveRegistry,o=null;if(r)for(var i=0;i<r.length;i++){var s=r[i];Tn(n,s.selectors,!1)&&(o||(o=[]),Jt(Wt(n,t),e,s.type),ot(s)?(2&n.flags&&gn(n),Qn(e,n),o.unshift(s)):o.push(s))}return o}(e,t,n),i=null===r?null:{\"\":-1};if(null!==o){var s=0;Jn(n,e.data.length,o.length);for(var a=0;a<o.length;a++){var u=o[a];u.providersResolver&&u.providersResolver(u)}qn(e,n,o.length);for(var l=!1,c=!1,f=0;f<o.length;f++){var h=o[f];n.mergedAttrs=jt(n.mergedAttrs,h.hostAttrs),Kn(e,t,h),Gn(e.data.length-1,h,i),null!==h.contentQueries&&(n.flags|=8),null===h.hostBindings&&null===h.hostAttrs&&0===h.hostVars||(n.flags|=128),!l&&(h.onChanges||h.onInit||h.doCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index-19),l=!0),c||!h.onChanges&&!h.doCheck||((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index-19),c=!0),Bn(e,h),s+=h.hostVars}!function(e,t){for(var n=t.directiveEnd,r=e.data,o=t.attrs,i=[],s=null,a=null,u=t.directiveStart;u<n;u++){var l=r[u],c=l.inputs;i.push(null!==o?Xn(c,o):null),s=Zn(c,u,s),a=Zn(l.outputs,u,a)}null!==s&&((s.hasOwnProperty(\"class\")||s.hasOwnProperty(\"className\"))&&(t.flags|=16),s.hasOwnProperty(\"style\")&&(t.flags|=32)),t.initialInputs=i,t.inputs=s,t.outputs=a}(e,n),Un(e,t,s)}i&&function(e,t,n){if(t)for(var r=e.localNames=[],o=0;o<t.length;o+=2){var i=n[t[o+1]];if(null==i)throw new Error(\"Export of name '\".concat(t[o+1],\"' not found!\"));r.push(t[o],i)}}(n,r,i)}n.mergedAttrs=jt(n.mergedAttrs,n.attrs)}(t,n,l,pn(a,s)),null!==l.mergedAttrs&&Zr(l,l.mergedAttrs),null!==t.queries&&t.queries.elementStart(t,l),l}(e,i,o,0,t,n,r):i.data[s];ct(l,!0);var c=l.mergedAttrs;null!==c&&Nt(a,u,c);var f=l.classes;null!==f&&br(a,u,f);var h=l.styles;null!==h&&kr(a,u,h),yr(i,o,u,l),0===it.lFrame.elementDepthCount&&_n(u,o),it.lFrame.elementDepthCount++,function(e){return 1==(1&e.flags)}(l)&&(function(e,t,n){st()&&(function(e,t,n,r){var o=n.directiveStart,i=n.directiveEnd;e.firstCreatePass||Wt(n,t),_n(r,t);for(var s=n.initialInputs,a=o;a<i;a++){var u=e.data[a],l=ot(u);l&&Yn(t,n,u);var c=$t(t,e,a,n);_n(c,t),null!==s&&$n(0,a-o,c,u,0,s),l&&(hn(n.index,t)[8]=c)}}(e,t,n,fn(n,t)),128==(128&n.flags)&&function(e,t,n){var r=n.directiveStart,o=n.directiveEnd,i=e.expandoInstructions,s=e.firstCreatePass,a=n.index-19;try{Ct(a);for(var u=r;u<o;u++){var l=e.data[u],c=t[u];null!==l.hostBindings||0!==l.hostVars||null!==l.hostAttrs?Wn(l,c):s&&i.push(null)}}finally{Ct(-1)}}(e,t,n))}(i,o,l),function(e,t,n){if(rt(t))for(var r=t.directiveEnd,o=t.directiveStart;o<r;o++){var i=e.data[o];i.contentQueries&&i.contentQueries(1,n[o],o)}}(i,l,o)),null!==r&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn,r=t.localNames;if(null!==r)for(var o=t.index+1,i=0;i<r.length;i+=2){var s=r[i+1],a=-1===s?n(t,e):e[s];e[o++]=a}}(o,l)}(0,\"div\",0),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=at(),r=ut(),o=e+19,i=r.firstCreatePass?Nn(r,n[6],e,3,null,null):r.data[o],s=n[o]=function(e,t){return Dt(t)?t.createText(e):t.createTextNode(e)}(t,n[11]);yr(r,n,s,i),ct(i,!1)}(1,\" Hello, World\\n\"),function(){var e=lt();ft()?it.lFrame.isParent=!1:ct(e=e.parent,!1);var t=e;it.lFrame.elementDepthCount--;var n=ut();n.firstCreatePass&&(Et(n,e),rt(e)&&n.queries.elementEnd(e)),null!==t.classes&&function(e){return 0!=(16&e.flags)}(t)&&Gr(n,t,at(),t.classes,!0),null!==t.styles&&function(e){return 0!=(32&e.flags)}(t)&&Gr(n,t,at(),t.styles,!1)}())},styles:[\"\"]}).type).prototype,(xs={type:ws,providersResolver:null,decls:bs.decls,vars:bs.vars,factory:null,template:bs.template||null,consts:bs.consts||null,ngContentSelectors:bs.ngContentSelectors,hostBindings:bs.hostBindings||null,hostVars:bs.hostVars||0,hostAttrs:bs.hostAttrs||null,contentQueries:bs.contentQueries||null,declaredInputs:Es={},inputs:null,outputs:null,exportAs:bs.exportAs||null,onChanges:null,onInit:Cs.ngOnInit||null,doCheck:Cs.ngDoCheck||null,afterContentInit:Cs.ngAfterContentInit||null,afterContentChecked:Cs.ngAfterContentChecked||null,afterViewInit:Cs.ngAfterViewInit||null,afterViewChecked:Cs.ngAfterViewChecked||null,onDestroy:Cs.ngOnDestroy||null,onPush:bs.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:bs.selectors||We,viewQuery:bs.viewQuery||null,features:bs.features||null,data:bs.data||{},encapsulation:bs.encapsulation||Ze.Emulated,id:\"c\",styles:bs.styles||We,_:null,setInput:null,schemas:bs.schemas||null,tView:null})._=Be((function(){var e=bs.directives,t=bs.features,n=bs.pipes;xs.id+=qe++,xs.inputs=Ye(bs.inputs,Es),xs.outputs=Ye(bs.outputs),t&&t.forEach((function(e){return e(xs)})),xs.directiveDefs=e?function(){return(\"function\"==typeof e?e():e).map(Qe)}:null,xs.pipeDefs=n?function(){return(\"function\"==typeof n?n():n).map(Ge)}:null})),xs),Ts),Is=((ks=function e(){_classCallCheck(this,e)}).\\u0275mod=Ke({type:ks,bootstrap:[Ss]}),ks.\\u0275inj=X({factory:function(e){return new(e||ks)},providers:[],imports:[[ms]]}),ks);(function(){if(un)throw new Error(\"Cannot enable prod mode after platform setup.\");an=!1})(),_s().bootstrapModule(Is).catch((function(e){return console.error(e)}))},zn8P:function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/dist/example/polyfills-es2015.ca64e4516afbb1b890d5.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{2:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const a=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(a||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class i{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==z.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return O.zone}static get currentTask(){return j}static __load_patch(t,r){if(z.hasOwnProperty(t)){if(a)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),z[t]=r(e,i,C),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{O=O.parent}}runGuarded(e,t=null,n,o){O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{O=O.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,b),e.runCount++;const r=j;j=e,O={parent:O,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(b,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),O=O.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(T,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,T,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==T&&e._transitionTo(b,T),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,b,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}i.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");_(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=a,!o)throw new Error(\"callback is not defined\");this.callback=o;const i=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,i,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,T)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],k=!1;function _(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!k){for(k=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){C.onUnhandledError(e)}}}C.microtaskDrainDone(),k=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",T=\"scheduling\",b=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",z={},C={symbol:s,currentZoneFrame:()=>O,onUnhandledError:R,microtaskDrainDone:R,scheduleMicroTask:_,showUncaughtError:()=>!i[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:R,patchMethod:()=>R,bindArguments:()=>[],patchThen:()=>R,patchMacroTask:()=>R,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>R,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>R,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>R,wrapWithCurrentZone:()=>R,filterProperties:()=>[],attachOriginToPatched:()=>R,_redefineProperty:()=>R,patchCallbacks:()=>R};let O={parent:null,zone:new i(null,null)},j=null,I=0;function R(){}o(\"Zone\",\"Zone\"),e.Zone=i}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,a=[],i=s(\"Promise\"),c=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;)for(;a.length;){const t=a.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){u(e)}}};const l=s(\"unhandledPromiseRejectionHandler\");function u(e){n.onUnhandledError(e);try{const n=t[l];n&&\"function\"==typeof n&&n.call(this,e)}catch(o){}}function h(e){return e&&e.then}function p(e){return e}function f(e){return Z.reject(e)}const d=s(\"state\"),g=s(\"value\"),k=s(\"finally\"),_=s(\"parentPromiseValue\"),m=s(\"parentPromiseState\");function y(e,t){return n=>{try{T(e,t,n)}catch(o){T(e,!1,o)}}}const v=s(\"currentTaskTrace\");function T(e,o,s){const i=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(null===e[d]){let u=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(u=s&&s.then)}catch(l){return i(()=>{T(e,!1,l)})(),e}if(!1!==o&&s instanceof Z&&s.hasOwnProperty(d)&&s.hasOwnProperty(g)&&null!==s[d])E(s),T(e,s[d],s[g]);else if(!1!==o&&\"function\"==typeof u)try{u.call(s,i(y(e,o)),i(y(e,!1)))}catch(l){i(()=>{T(e,!1,l)})()}else{e[d]=o;const i=e[g];if(e[g]=s,e[k]===k&&!0===o&&(e[d]=e[m],e[g]=e[_]),!1===o&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,v,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<i.length;)w(e,i[t++],i[t++],i[t++],i[t++]);if(0==i.length&&0==o){e[d]=0;try{throw new Error(\"Uncaught (in promise): \"+((c=s)&&c.toString===Object.prototype.toString?(c.constructor&&c.constructor.name||\"\")+\": \"+JSON.stringify(c):c?c.toString():Object.prototype.toString.call(c))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(l){const o=l;o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,a.push(o),n.scheduleMicroTask()}}}}var c;return e}const b=s(\"rejectionHandledHandler\");function E(e){if(0===e[d]){try{const n=t[b];n&&\"function\"==typeof n&&n.call(this,{rejection:e[g],promise:e})}catch(n){}e[d]=!1;for(let t=0;t<a.length;t++)e===a[t].promise&&a.splice(t,1)}}function w(e,t,n,o,r){E(e);const s=e[d],a=s?\"function\"==typeof o?o:p:\"function\"==typeof r?r:f;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[g],r=!!n&&k===n[k];r&&(n[_]=o,n[m]=s);const i=t.run(a,void 0,r&&a!==f&&a!==p?[]:[o]);T(n,!0,i)}catch(o){T(n,!1,o)}},n)}class Z{constructor(e){const t=this;if(!(t instanceof Z))throw new Error(\"Must be an instanceof Promise.\");t[d]=null,t[g]=[];try{e&&e(y(t,!0),y(t,!1))}catch(n){T(t,!1,n)}}static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return T(new this(null),!0,e)}static reject(e){return T(new this(null),!1,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let a of e)h(a)||(a=this.resolve(a)),a.then(r,s);return o}static all(e){return Z.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,a=0;const i=[];for(let l of e){h(l)||(l=this.resolve(l));const e=a;try{l.then(o=>{i[e]=t?t.thenCallback(o):o,s--,0===s&&n(i)},r=>{t?(i[e]=t.errorCallback(r),s--,0===s&&n(i)):o(r)})}catch(c){o(c)}s++,a++}return s-=2,0===s&&n(i),r}get[Symbol.toStringTag](){return\"Promise\"}then(e,n){const o=new this.constructor(null),r=t.current;return null==this[d]?this[g].push(r,o,e,n):w(this,r,o,e,n),o}catch(e){return this.then(null,e)}finally(e){const n=new this.constructor(null);n[k]=k;const o=t.current;return null==this[d]?this[g].push(o,n,e,e):w(this,o,n,e,e),n}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;const S=e[i]=e.Promise,D=t.__symbol__(\"ZoneAwarePromise\");let P=o(e,\"Promise\");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[D]?e[D]:e[i]},P.set=function(t){t===Z?e[D]=t:(e[i]=t,t.prototype[c]||C(t),n.setNativePromise(t))},r(e,\"Promise\",P)),e.Promise=Z;const z=s(\"thenPatched\");function C(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[c]=r,e.prototype.then=function(e,t){return new Z((e,t)=>{r.call(this,e,t)}).then(e,t)},e[z]=!0}if(n.patchThen=C,S){C(S);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(O=t,function(){let e=O.apply(this,arguments);if(e instanceof Z)return e;let t=e.constructor;return t[z]||C(t),e}))}var O;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=a,Z});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),i=Zone.__symbol__(\"\");function c(e,t){return Zone.current.wrap(e,t)}function l(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const u=Zone.__symbol__,h=\"undefined\"!=typeof window,p=h?window:void 0,f=h&&p||\"object\"==typeof self&&self||global,d=[null];function g(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=c(e[n],t+\"_\"+n));return e}function k(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const _=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m=!(\"nw\"in f)&&void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process),y=!m&&!_&&!(!h||!p.HTMLElement),v=void 0!==f.process&&\"[object process]\"==={}.toString.call(f.process)&&!_&&!(!h||!p.HTMLElement),T={},b=function(e){if(!(e=e||f.event))return;let t=T[e.type];t||(t=T[e.type]=u(\"ON_PROPERTY\"+e.type));const n=this||e.target||f,o=n[t];let r;if(y&&n===p&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function E(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const a=u(\"on\"+o+\"patched\");if(n.hasOwnProperty(a)&&n[a])return;delete s.writable,delete s.value;const i=s.get,c=s.set,l=o.substr(2);let h=T[l];h||(h=T[l]=u(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==f||(t=f),t&&(t[h]&&t.removeEventListener(l,b),c&&c.apply(t,d),\"function\"==typeof e?(t[h]=e,t.addEventListener(l,b,!1)):t[h]=null)},s.get=function(){let e=this;if(e||n!==f||(e=f),!e)return null;const t=e[h];if(t)return t;if(i){let t=i&&i.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[a]=!0}function w(e,t,n){if(t)for(let o=0;o<t.length;o++)E(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)E(e,t[o],n)}}const Z=u(\"originalInstance\");function S(e){const n=f[e];if(!n)return;f[u(e)]=n,f[e]=function(){const t=g(arguments,e);switch(t.length){case 0:this[Z]=new n;break;case 1:this[Z]=new n(t[0]);break;case 2:this[Z]=new n(t[0],t[1]);break;case 3:this[Z]=new n(t[0],t[1],t[2]);break;case 4:this[Z]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},z(f[e],n);const o=new n((function(){}));let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?f[e].prototype[n]=function(){return this[Z][n].apply(this[Z],arguments)}:t(f[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[Z][n]=c(t,e+\".\"+n),z(this[Z][n],t)):this[Z][n]=t},get:function(){return this[Z][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(f[e][r]=n[r])}function D(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const a=u(o);let i=null;if(s&&!(i=s[a])&&(i=s[a]=s[o],k(s&&e(s,o)))){const e=r(i,a,o);s[o]=function(){return e(this,arguments)},z(s[o],i)}return i}function P(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=D(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?l(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function z(e,t){e[u(\"OriginalDelegate\")]=t}let C=!1,O=!1;function j(){try{const e=p.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function I(){if(C)return O;C=!0;try{const e=p.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(O=!0)}catch(e){}return O}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=u(\"OriginalDelegate\"),o=u(\"Promise\"),r=u(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}});let R=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){R=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(ae){R=!1}const N={useG:!0},x={},L={},M=new RegExp(\"^\"+i+\"(\\\\w+)(true|false)$\"),A=u(\"propagationStopped\");function H(e,t,o){const r=o&&o.add||\"addEventListener\",s=o&&o.rm||\"removeEventListener\",a=o&&o.listeners||\"eventListeners\",c=o&&o.rmAll||\"removeAllListeners\",l=u(r),h=\".\"+r+\":\",p=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[s].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},f=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].false];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}},d=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[x[t.type].true];if(o)if(1===o.length)p(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[A]);o++)p(e[o],n,t)}};function g(t,o){if(!t)return!1;let p=!0;o&&void 0!==o.useG&&(p=o.useG);const g=o&&o.vh;let k=!0;o&&void 0!==o.chkDup&&(k=o.chkDup);let _=!1;o&&void 0!==o.rt&&(_=o.rt);let y=t;for(;y&&!y.hasOwnProperty(r);)y=n(y);if(!y&&t[r]&&(y=t),!y)return!1;if(y[l])return!1;const v=o&&o.eventNameToString,T={},b=y[l]=y[r],E=y[u(s)]=y[s],w=y[u(a)]=y[a],Z=y[u(c)]=y[c];let S;function D(e){R||\"boolean\"==typeof T.options||null==T.options||(e.options=!!T.options.capture,T.options=e.options)}o&&o.prepend&&(S=y[u(o.prepend)]=y[o.prepend]);const P=p?function(e){if(!T.isExisting)return D(e),b.call(T.target,T.eventName,T.capture?d:f,T.options)}:function(e){return D(e),b.call(T.target,T.eventName,e.invoke,T.options)},C=p?function(e){if(!e.isRemoved){const t=x[e.eventName];let n;t&&(n=t[e.capture?\"true\":\"false\"]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.call(e.target,e.eventName,e.capture?d:f,e.options)}:function(e){return E.call(e.target,e.eventName,e.invoke,e.options)},O=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},j=Zone[u(\"BLACK_LISTED_EVENTS\")],I=function(t,n,r,s,a=!1,c=!1){return function(){const l=this||e;let u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));let h=arguments[1];if(!h)return t.apply(this,arguments);if(m&&\"uncaughtException\"===u)return t.apply(this,arguments);let f=!1;if(\"function\"!=typeof h){if(!h.handleEvent)return t.apply(this,arguments);f=!0}if(g&&!g(t,h,l,arguments))return;const d=arguments[2];if(j)for(let e=0;e<j.length;e++)if(u===j[e])return t.apply(this,arguments);let _,y=!1;void 0===d?_=!1:!0===d?_=!0:!1===d?_=!1:(_=!!d&&!!d.capture,y=!!d&&!!d.once);const b=Zone.current,E=x[u];let w;if(E)w=E[_?\"true\":\"false\"];else{const e=(v?v(u):u)+\"false\",t=(v?v(u):u)+\"true\",n=i+e,o=i+t;x[u]={},x[u].false=n,x[u].true=o,w=_?o:n}let Z,S=l[w],D=!1;if(S){if(D=!0,k)for(let e=0;e<S.length;e++)if(O(S[e],h))return}else S=l[w]=[];const P=l.constructor.name,z=L[P];z&&(Z=z[u]),Z||(Z=P+n+(v?v(u):u)),T.options=d,y&&(T.options.once=!1),T.target=l,T.capture=_,T.eventName=u,T.isExisting=D;const C=p?N:void 0;C&&(C.taskData=T);const I=b.scheduleEventTask(Z,h,C,r,s);return T.target=null,C&&(C.taskData=null),y&&(d.once=!0),(R||\"boolean\"!=typeof I.options)&&(I.options=d),I.target=l,I.capture=_,I.eventName=u,f&&(I.originalDelegate=h),c?S.unshift(I):S.push(I),a?l:void 0}};return y[r]=I(b,h,P,C,_),S&&(y.prependListener=I(S,\".prependListener:\",(function(e){return S.call(T.target,T.eventName,e.invoke,T.options)}),C,_,!0)),y[s]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2];let s;s=void 0!==r&&(!0===r||!1!==r&&!!r&&!!r.capture);const a=arguments[1];if(!a)return E.apply(this,arguments);if(g&&!g(E,a,t,arguments))return;const c=x[n];let l;c&&(l=c[s?\"true\":\"false\"]);const u=l&&t[l];if(u)for(let e=0;e<u.length;e++){const o=u[e];if(O(o,a))return u.splice(e,1),o.isRemoved=!0,0===u.length&&(o.allRemoved=!0,t[l]=null,\"string\"==typeof n)&&(t[i+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),_?t:void 0}return E.apply(this,arguments)},y[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=F(t,v?v(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},y[c]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=x[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[s].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=M.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[c].call(this,o)}this[c].call(this,\"removeListener\")}if(_)return this},z(y[r],b),z(y[s],E),Z&&z(y[c],Z),w&&z(y[a],w),!0}let k=[];for(let n=0;n<t.length;n++)k[n]=g(t[n],o);return k}function F(e,t){const n=[];for(let o in e){const r=M.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}function G(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[A]=!0,e&&e.apply(t,n)})}function q(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const a=t[s]=t[o];t[o]=function(s,i,c){return i&&i.prototype&&r.forEach((function(t){const r=`${n}.${o}::`+t,s=i.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(i.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))})),a.call(t,s,i,c)},e.attachOriginToPatched(t[o],a)}const B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],W=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],U=[\"load\"],$=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],V=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],Y=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],J=[\"close\",\"error\",\"open\",\"message\"],K=[\"error\",\"message\"],Q=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function ee(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function te(e,t,n,o){e&&w(e,ee(e,t,n),o)}function ne(e,t){if(m&&!v)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(y){const e=window,t=j?[{target:e,ignoreProperties:[\"error\"]}]:[];te(e,Q.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),te(Document.prototype,Q,r),void 0!==e.SVGElement&&te(e.SVGElement.prototype,Q,r),te(Element.prototype,Q,r),te(HTMLElement.prototype,Q,r),te(HTMLMediaElement.prototype,W,r),te(HTMLFrameSetElement.prototype,B.concat($),r),te(HTMLBodyElement.prototype,B.concat($),r),te(HTMLFrameElement.prototype,U,r),te(HTMLIFrameElement.prototype,U,r);const o=e.HTMLMarqueeElement;o&&te(o.prototype,V,r);const s=e.Worker;s&&te(s.prototype,K,r)}const s=t.XMLHttpRequest;s&&te(s.prototype,X,r);const a=t.XMLHttpRequestEventTarget;a&&te(a&&a.prototype,X,r),\"undefined\"!=typeof IDBIndex&&(te(IDBIndex.prototype,Y,r),te(IDBRequest.prototype,Y,r),te(IDBOpenDBRequest.prototype,Y,r),te(IDBDatabase.prototype,Y,r),te(IDBTransaction.prototype,Y,r),te(IDBCursor.prototype,Y,r)),o&&te(WebSocket.prototype,J,r)}Zone.__load_patch(\"util\",(n,s,a)=>{a.patchOnProperties=w,a.patchMethod=D,a.bindArguments=g,a.patchMacroTask=P;const l=s.__symbol__(\"BLACK_LISTED_EVENTS\"),u=s.__symbol__(\"UNPATCHED_EVENTS\");n[u]&&(n[l]=n[u]),n[l]&&(s[l]=s[u]=n[l]),a.patchEventPrototype=G,a.patchEventTarget=H,a.isIEOrEdge=I,a.ObjectDefineProperty=t,a.ObjectGetOwnPropertyDescriptor=e,a.ObjectCreate=o,a.ArraySlice=r,a.patchClass=S,a.wrapWithCurrentZone=c,a.filterProperties=ee,a.attachOriginToPatched=z,a._redefineProperty=Object.defineProperty,a.patchCallbacks=q,a.getGlobalObjects=()=>({globalSources:L,zoneSymbolEventNames:x,eventNames:Q,isBrowser:y,isMix:v,isNode:m,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:i,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"})});const oe=u(\"zoneTask\");function re(e,t,n,o){let r=null,s=null;n+=o;const a={};function i(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[oe]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=D(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=l(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},i,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?a[n]=e:n&&(n[oe]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=D(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=a[r]:(s=r&&r[oe],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete a[r]:r&&(r[oe]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function se(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=a+(e+s),i=a+(e+r);o[e]={},o[e][s]=t,o[e][r]=i}const i=e.EventTarget;return i&&i.prototype?(t.patchEventTarget(e,[i&&i.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{re(e,\"set\",\"clear\",\"Timeout\"),re(e,\"set\",\"clear\",\"Interval\"),re(e,\"set\",\"clear\",\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{re(e,\"request\",\"cancel\",\"AnimationFrame\"),re(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),re(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)D(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),se(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),S(\"MutationObserver\"),S(\"WebKitMutationObserver\"),S(\"IntersectionObserver\"),S(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ne(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const p=e.XMLHttpRequest;if(!p)return;const f=p.prototype;let d=f[s],g=f[a];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[s],g=e[a]}}function k(e){const o=e.data,c=o.target;c[i]=!1,c[h]=!1;const l=c[r];d||(d=c[s],g=c[a]),l&&g.call(c,\"readystatechange\",l);const u=c[r]=()=>{if(c.readyState===c.DONE)if(!o.aborted&&c[i]&&\"scheduled\"===e.state){const n=c[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=c[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||\"scheduled\"!==e.state||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==c[i]||(c[h]=!0)};return d.call(c,\"readystatechange\",u),c[n]||(c[n]=e),b.apply(c,o.args),c[i]=!0,e}function _(){}function m(e){const t=e.data;return t.aborted=!0,E.apply(t.target,t.args)}const y=D(f,\"open\",()=>function(e,t){return e[o]=0==t[2],e[c]=t[1],y.apply(e,t)}),v=u(\"fetchTaskAborting\"),T=u(\"fetchTaskScheduling\"),b=D(f,\"send\",()=>function(e,n){if(!0===t.current[T])return b.apply(e,n);if(e[o])return b.apply(e,n);{const t={target:e,url:e[c],isPeriodic:!1,args:n,aborted:!1},o=l(\"XMLHttpRequest.send\",_,t,k,m);e&&!0===e[h]&&!t.aborted&&\"scheduled\"===o.state&&o.invoke()}}),E=D(f,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[v])return E.apply(e,o)})}(e);const n=u(\"xhrTask\"),o=u(\"xhrSync\"),r=u(\"xhrListener\"),i=u(\"xhrScheduled\"),c=u(\"xhrURL\"),h=u(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],a=t[s];if(a){if(!k(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,g(arguments,o+\".\"+s))};return z(t,e),t})(a)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){F(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[u(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[u(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[2,0]]]);"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/dist/example/polyfills-es5.277e2e1d6fb2daf91a5c.js",
    "content": "function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t}(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{\"+2oP\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"6LWA\"),a=n(\"I8vh\"),c=n(\"UMSQ\"),u=n(\"/GqU\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=n(\"tiKp\")(\"species\"),p=[].slice,h=Math.max;r({target:\"Array\",proto:!0,forced:!f(\"slice\")},{slice:function(t,e){var n,r,f,v=u(this),d=c(v.length),g=a(t,d),y=a(void 0===e?d:e,d);if(i(v)&&(\"function\"!=typeof(n=v.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[l])&&(n=void 0):n=void 0,n===Array||void 0===n))return p.call(v,g,y);for(r=new(void 0===n?Array:n)(h(y-g,0)),f=0;g<y;g++,f++)g in v&&s(r,f,v[g]);return r.length=f,r}})},\"+MLx\":function(t,e,n){var r=n(\"HAuM\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"/5zm\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.cosh,a=Math.abs,c=Math.E;r({target:\"Math\",stat:!0,forced:!i||i(710)===1/0},{cosh:function(t){var e=o(a(t)-1)+1;return(e+1/(e*c*c))*(c/2)}})},\"/GqU\":function(t,e,n){var r=n(\"RK3t\"),o=n(\"HYAF\");t.exports=function(t){return r(o(t))}},\"/b8u\":function(t,e,n){var r=n(\"STAE\");t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol()},\"/byt\":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},\"/qmn\":function(t,e,n){var r=n(\"2oRo\");t.exports=r.Promise},\"07d7\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"busE\"),i=n(\"sEFX\");r||o(Object.prototype,\"toString\",i,{unsafe:!0})},\"0BK2\":function(t,e){t.exports={}},\"0Dky\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"0GbY\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"2oRo\"),i=function(t){return\"function\"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},\"0eef\":function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},\"0oug\":function(t,e,n){n(\"dG/n\")(\"iterator\")},\"0rvr\":function(t,e,n){var r=n(\"glrk\"),o=n(\"O741\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},1:function(t,e,n){n(\"mRIq\"),n(\"R0gw\"),t.exports=n(\"hN/g\")},\"14Sl\":function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"0Dky\"),i=n(\"tiKp\"),a=n(\"kmMV\"),c=n(\"kRJp\"),u=i(\"species\"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")})),f=\"$0\"===\"a\".replace(/./,\"$0\"),l=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]}));t.exports=function(t,e,n,p){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=\"\"[t](e)})),d=v&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags=\"\",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](\"\"),!e}));if(!v||!d||\"replace\"===t&&(!s||!f)||\"split\"===t&&!l){var g=/./[h],y=n(h,\"\"[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f}),b=y[1];r(String.prototype,t,y[0]),r(RegExp.prototype,h,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}p&&c(RegExp.prototype[h],\"sham\",!0)}},\"1E5z\":function(t,e,n){var r=n(\"m/L8\").f,o=n(\"UTVS\"),i=n(\"tiKp\")(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},\"1Y/n\":function(t,e,n){var r=n(\"HAuM\"),o=n(\"ewvW\"),i=n(\"RK3t\"),a=n(\"UMSQ\"),c=function(t){return function(e,n,c,u){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(c<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;t?p>=0:l>p;p+=h)p in f&&(u=n(u,f[p],p,s));return u}};t.exports={left:c(!1),right:c(!0)}},\"2A+d\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"/GqU\"),i=n(\"UMSQ\");r({target:\"String\",stat:!0},{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(e[c++])),c<r&&a.push(String(arguments[c]));return a.join(\"\")}})},\"2B1R\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").map,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"map\"),c=a&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},\"2oRo\":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof global&&global)||Function(\"return this\")()},\"33Wh\":function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\");t.exports=Object.keys||function(t){return r(t,o)}},\"3I1R\":function(t,e,n){n(\"dG/n\")(\"hasInstance\")},\"3KgV\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"uy83\"),i=n(\"0Dky\"),a=n(\"hh1v\"),c=n(\"8YOa\").onFreeze,u=Object.freeze;r({target:\"Object\",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(t){return u&&a(t)?u(c(t)):t}})},\"3bBZ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"4mDm\"),a=n(\"kRJp\"),c=n(\"tiKp\"),u=c(\"iterator\"),s=c(\"toStringTag\"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(d){h[u]=f}if(h[s]||a(h,s,l),o[l])for(var v in i)if(h[v]!==i[v])try{a(h,v,i[v])}catch(d){h[v]=i[v]}}}},\"4Brf\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"g6v/\"),i=n(\"2oRo\"),a=n(\"UTVS\"),c=n(\"hh1v\"),u=n(\"m/L8\").f,s=n(\"6JNq\"),f=i.Symbol;if(o&&\"function\"==typeof f&&(!(\"description\"in f.prototype)||void 0!==f().description)){var l={},p=function t(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),n=this instanceof t?new f(e):void 0===e?f():f(e);return\"\"===e&&(l[n]=!0),n};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var v=h.toString,d=\"Symbol(test)\"==String(f(\"test\")),g=/^Symbol\\((.*)\\)[^)]+$/;u(h,\"description\",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=v.call(t);if(a(l,t))return\"\";var n=d?e.slice(7,-1):e.replace(g,\"$1\");return\"\"===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},\"4HCi\":function(t,e,n){var r=n(\"0Dky\"),o=n(\"WJkJ\");t.exports=function(t){return r((function(){return!!o[t]()||\"\\u200b\\x85\\u180e\"!=\"\\u200b\\x85\\u180e\"[t]()||o[t].name!==t}))}},\"4WOD\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"ewvW\"),i=n(\"93I0\"),a=n(\"4Xet\"),c=i(\"IE_PROTO\"),u=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},\"4Xet\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},\"4h0Y\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isFrozen;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(t){return!i(t)||!!a&&a(t)}})},\"4l63\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({global:!0,forced:parseInt!=o},{parseInt:o})},\"4mDm\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"RNIs\"),i=n(\"P4y1\"),a=n(\"afO8\"),c=n(\"fdAy\"),u=a.set,s=a.getterFor(\"Array Iterator\");t.exports=c(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==n?{value:r,done:!1}:\"values\"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),\"values\"),i.Arguments=i.Array,o(\"keys\"),o(\"values\"),o(\"entries\")},\"4oU/\":function(t,e,n){var r=n(\"2oRo\").isFinite;t.exports=Number.isFinite||function(t){return\"number\"==typeof t&&r(t)}},\"4syw\":function(t,e,n){var r=n(\"busE\");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},\"5D5o\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isSealed;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(t){return!i(t)||!!a&&a(t)}})},\"5DmW\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"/GqU\"),a=n(\"Bs8V\").f,c=n(\"g6v/\"),u=o((function(){a(1)}));r({target:\"Object\",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},\"5YOQ\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+\"08\")||22!==a(i+\"0x16\");t.exports=u?function(t,e){var n=o(String(t));return a(n,e>>>0||(c.test(n)?16:10))}:a},\"5Yz+\":function(t,e,n){\"use strict\";var r=n(\"/GqU\"),o=n(\"ppGB\"),i=n(\"UMSQ\"),a=n(\"swFL\"),c=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,f=a(\"lastIndexOf\");t.exports=s||f?function(t){if(s)return u.apply(this,arguments)||0;var e=r(this),n=i(e.length),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:u},\"5mdu\":function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},\"5s+n\":function(t,e,n){\"use strict\";var r,o,i,a,c=n(\"I+eb\"),u=n(\"xDBR\"),s=n(\"2oRo\"),f=n(\"0GbY\"),l=n(\"/qmn\"),p=n(\"busE\"),h=n(\"4syw\"),v=n(\"1E5z\"),d=n(\"JiZb\"),g=n(\"hh1v\"),y=n(\"HAuM\"),b=n(\"GarU\"),m=n(\"xrYK\"),k=n(\"iSVu\"),x=n(\"ImZN\"),E=n(\"HH4o\"),w=n(\"SEBh\"),S=n(\"LPSS\").set,_=n(\"tXUg\"),T=n(\"zfnd\"),O=n(\"RN6c\"),I=n(\"8GlL\"),M=n(\"5mdu\"),D=n(\"afO8\"),j=n(\"lMq5\"),R=n(\"tiKp\"),P=n(\"YK6W\"),N=R(\"species\"),A=\"Promise\",L=D.get,C=D.set,F=D.getterFor(A),Z=l,z=s.TypeError,W=s.document,G=s.process,U=f(\"fetch\"),H=I.f,B=H,K=\"process\"==m(G),V=!!(W&&W.createEvent&&s.dispatchEvent),Y=j(A,(function(){if(k(Z)===String(Z)){if(66===P)return!0;if(!K&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!Z.prototype.finally)return!0;if(P>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[N]=e,!(t.then((function(){}))instanceof e)})),q=Y||!E((function(t){Z.all(t).catch((function(){}))})),X=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;_((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var c,u,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,v=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?c=o:(v&&v.enter(),c=l(o),v&&(v.exit(),s=!0)),c===f.promise?h(z(\"Promise-chain cycle\")):(u=X(c))?u.call(c,p,h):p(c)):h(o)}catch(d){v&&!s&&v.exit(),h(d)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&$(t,e)}))}},Q=function(t,e,n){var r,o;V?((r=W.createEvent(\"Event\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s[\"on\"+t])?o(r):\"unhandledrejection\"===t&&O(\"Unhandled promise rejection\",n)},$=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=M((function(){K?G.emit(\"unhandledRejection\",r,t):Q(\"unhandledrejection\",t,r)})),e.rejection=K||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){K?G.emit(\"rejectionHandled\",t):Q(\"rejectionhandled\",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw z(\"Promise can't be resolved itself\");var i=X(r);i?_((function(){var o={done:!1};try{i.call(r,nt(t,e,o,n),nt(rt,e,o,n))}catch(a){rt(e,o,a,n)}})):(n.value=r,n.state=1,J(e,n,!1))}catch(a){rt(e,{done:!1},a,n)}}};Y&&(Z=function(t){b(this,Z,A),y(t),r.call(this);var e=L(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(n){rt(this,e,n)}},(r=function(t){C(this,{type:A,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(Z.prototype,{then:function(t,e){var n=F(this),r=H(w(this,Z));return r.ok=\"function\"!=typeof t||t,r.fail=\"function\"==typeof e&&e,r.domain=K?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},I.f=H=function(t){return t===Z||t===i?new o(t):B(t)},u||\"function\"!=typeof l||(a=l.prototype.then,p(l.prototype,\"then\",(function(t,e){var n=this;return new Z((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,U.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:Y},{Promise:Z}),v(Z,A,!1,!0),d(A),i=f(A),c({target:A,stat:!0,forced:Y},{reject:function(t){var e=H(this);return e.reject.call(void 0,t),e.promise}}),c({target:A,stat:!0,forced:u||Y},{resolve:function(t){return T(u&&this===i?Z:this,t)}}),c({target:A,stat:!0,forced:q},{all:function(t){var e=this,n=H(e),r=n.resolve,o=n.reject,i=M((function(){var n=y(e.resolve),i=[],a=0,c=1;x(t,(function(t){var u=a++,s=!1;i.push(void 0),c++,n.call(e,t).then((function(t){s||(s=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=H(e),r=n.reject,o=M((function(){var o=y(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},\"5uH8\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},\"6JNq\":function(t,e,n){var r=n(\"UTVS\"),o=n(\"Vu81\"),i=n(\"Bs8V\"),a=n(\"m/L8\");t.exports=function(t,e){for(var n=o(e),c=a.f,u=i.f,s=0;s<n.length;s++){var f=n[s];r(t,f)||c(t,f,u(e,f))}}},\"6LWA\":function(t,e,n){var r=n(\"xrYK\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"6VoE\":function(t,e,n){var r=n(\"tiKp\"),o=n(\"P4y1\"),i=r(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},\"6hpn\":function(t,e,n){n(\"Uydy\"),n(\"eajv\"),n(\"n/mU\"),n(\"PqOI\"),n(\"QNnp\"),n(\"/5zm\"),n(\"CsgD\"),n(\"9mRW\"),n(\"QFcT\"),n(\"vAFs\"),n(\"a5NK\"),n(\"yiG3\"),n(\"kNcU\"),n(\"KvGi\"),n(\"AmFO\"),n(\"eJiR\"),n(\"I9xj\"),n(\"tl/u\");var r=n(\"Qo9l\");t.exports=r.Math},\"6unK\":function(t,e,n){var r=n(\"0Dky\");t.exports=function(t){return r((function(){var e=\"\"[t]('\"');return e!==e.toLowerCase()||e.split('\"').length>3}))}},\"7+kd\":function(t,e,n){n(\"dG/n\")(\"isConcatSpreadable\")},\"7+zs\":function(t,e,n){var r=n(\"kRJp\"),o=n(\"UesL\"),i=n(\"tiKp\")(\"toPrimitive\"),a=Date.prototype;i in a||r(a,i,o)},\"7sbD\":function(t,e,n){n(\"qePV\"),n(\"NbN+\"),n(\"8AyJ\"),n(\"i6QF\"),n(\"kSko\"),n(\"WDsR\"),n(\"r/Vq\"),n(\"5uH8\"),n(\"w1rZ\"),n(\"JevA\"),n(\"toAj\"),n(\"VC3L\");var r=n(\"Qo9l\");t.exports=r.Number},\"8AyJ\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isFinite:n(\"4oU/\")})},\"8GlL\":function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},\"8YOa\":function(t,e,n){var r=n(\"0BK2\"),o=n(\"hh1v\"),i=n(\"UTVS\"),a=n(\"m/L8\").f,c=n(\"kOOl\"),u=n(\"uy83\"),s=c(\"meta\"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:\"O\"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,s)){if(!l(t))return\"F\";if(!e)return\"E\";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return u&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},\"90hW\":function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},\"93I0\":function(t,e,n){var r=n(\"VpIT\"),o=n(\"kOOl\"),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},\"9LPj\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"wE6v\");r({target:\"Date\",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=i(this),n=a(e);return\"number\"!=typeof n||isFinite(n)?e.toISOString():null}})},\"9N29\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").right;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduceRight\")},{reduceRight:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},\"9bJ7\":function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ZUd8\").codeAt;r({target:\"String\",proto:!0},{codePointAt:function(t){return o(this,t)}})},\"9d/t\":function(t,e,n){var r=n(\"AO7/\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"toStringTag\"),a=\"Arguments\"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:a?o(e):\"Object\"==(r=o(e))&&\"function\"==typeof e.callee?\"Arguments\":r}},\"9mRW\":function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{fround:n(\"vo4V\")})},\"9tb/\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"I8vh\"),i=String.fromCharCode,a=String.fromCodePoint;r({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join(\"\")}})},\"AO7/\":function(t,e,n){var r={};r[n(\"tiKp\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},AmFO:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"jrUv\"),a=Math.abs,c=Math.exp,u=Math.E;r({target:\"Math\",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return a(t=+t)<1?(i(t)-i(-t))/2:(c(t-1)-c(-t-1))*(u/2)}})},BNMt:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"blink\")},{blink:function(){return o(this,\"blink\",\"\",\"\")}})},BTho:function(t,e,n){\"use strict\";var r=n(\"HAuM\"),o=n(\"hh1v\"),i=[].slice,a={},c=function(t,e,n){if(!(e in a)){for(var r=[],o=0;o<e;o++)r[o]=\"a[\"+o+\"]\";a[e]=Function(\"C,a\",\"return new C(\"+r.join(\",\")+\")\")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=i.call(arguments,1),a=function r(){var o=n.concat(i.call(arguments));return this instanceof r?c(e,o.length,o):e.apply(t,o)};return o(e.prototype)&&(a.prototype=e.prototype),a}},\"BX/b\":function(t,e,n){var r=n(\"/GqU\"),o=n(\"JBy8\").f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},Bs8V:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0eef\"),i=n(\"XGwC\"),a=n(\"/GqU\"),c=n(\"wE6v\"),u=n(\"UTVS\"),s=n(\"DPsx\"),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e,!0),s)try{return f(t,e)}catch(n){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},CsgD:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\");r({target:\"Math\",stat:!0,forced:o!=Math.expm1},{expm1:o})},DEfu:function(t,e,n){var r=n(\"2oRo\");n(\"1E5z\")(r.JSON,\"JSON\",!0)},DMt2:function(t,e,n){var r=n(\"UMSQ\"),o=n(\"EUja\"),i=n(\"HYAF\"),a=Math.ceil,c=function(t){return function(e,n,c){var u,s,f=String(i(e)),l=f.length,p=void 0===c?\" \":String(c),h=r(n);return h<=l||\"\"==p?f:((s=o.call(p,a((u=h-l)/p.length))).length>u&&(s=s.slice(0,u)),t?f+s:s+f)}};t.exports={start:c(!1),end:c(!0)}},DPsx:function(t,e,n){var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"zBJ4\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},DQNa:function(t,e,n){var r=n(\"busE\"),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&r(o,\"toString\",(function(){var t=a.call(this);return t==t?i.call(this):\"Invalid Date\"}))},E5NM:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"big\")},{big:function(){return o(this,\"big\",\"\",\"\")}})},E9XD:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"1Y/n\").left;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"reduce\")},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},ENF9:function(t,e,n){\"use strict\";var r,o=n(\"2oRo\"),i=n(\"4syw\"),a=n(\"8YOa\"),c=n(\"bWFh\"),u=n(\"rKzb\"),s=n(\"hh1v\"),f=n(\"afO8\").enforce,l=n(\"f5p1\"),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=Object.isExtensible,v=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},d=t.exports=c(\"WeakMap\",v,u);if(l&&p){r=u.getConstructor(v,\"WeakMap\",!0),a.REQUIRED=!0;var g=d.prototype,y=g.delete,b=g.has,m=g.get,k=g.set;i(g,{delete:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),y.call(this,t)||e.frozen.delete(t)}return y.call(this,t)},has:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)||e.frozen.has(t)}return b.call(this,t)},get:function(t){if(s(t)&&!h(t)){var e=f(this);return e.frozen||(e.frozen=new r),b.call(this,t)?m.call(this,t):e.frozen.get(t)}return m.call(this,t)},set:function(t,e){if(s(t)&&!h(t)){var n=f(this);n.frozen||(n.frozen=new r),b.call(this,t)?k.call(this,t,e):n.frozen.set(t,e)}else k.call(this,t,e);return this}})}},EUja:function(t,e,n){\"use strict\";var r=n(\"ppGB\"),o=n(\"HYAF\");t.exports=\"\".repeat||function(t){var e=String(o(this)),n=\"\",i=r(t);if(i<0||i==1/0)throw RangeError(\"Wrong number of repetitions\");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},EnZy:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"ROdP\"),i=n(\"glrk\"),a=n(\"HYAF\"),c=n(\"SEBh\"),u=n(\"iqWW\"),s=n(\"UMSQ\"),f=n(\"FMNM\"),l=n(\"kmMV\"),p=n(\"0Dky\"),h=[].push,v=Math.min,d=!p((function(){return!RegExp(4294967295,\"y\")}));r(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(a(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var c,u,s,f=[],p=0,v=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(c=l.call(v,r))&&!((u=v.lastIndex)>p&&(f.push(r.slice(p,c.index)),c.length>1&&c.index<r.length&&h.apply(f,c.slice(1)),s=c[0].length,p=u,f.length>=i));)v.lastIndex===c.index&&v.lastIndex++;return p===r.length?!s&&v.test(\"\")||f.push(\"\"):f.push(r.slice(p)),f.length>i?f.slice(0,i):f}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=a(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var a=n(r,t,this,o,r!==e);if(a.done)return a.value;var l=i(t),p=String(this),h=c(l,RegExp),g=l.unicode,y=new h(d?l:\"^(?:\"+l.source+\")\",(l.ignoreCase?\"i\":\"\")+(l.multiline?\"m\":\"\")+(l.unicode?\"u\":\"\")+(d?\"y\":\"g\")),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===f(y,p)?[p]:[];for(var m=0,k=0,x=[];k<p.length;){y.lastIndex=d?k:0;var E,w=f(y,d?p:p.slice(k));if(null===w||(E=v(s(y.lastIndex+(d?0:k)),p.length))===m)k=u(p,k,g);else{if(x.push(p.slice(m,k)),x.length===b)return x;for(var S=1;S<=w.length-1;S++)if(x.push(w[S]),x.length===b)return x;k=m=E}}return x.push(p.slice(m)),x}]}),!d)},Ep9I:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},ExoC:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{setPrototypeOf:n(\"0rvr\")})},F8JR:function(t,e,n){\"use strict\";var r=n(\"tycR\").forEach,o=n(\"swFL\");t.exports=o(\"forEach\")?function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach},FF6l:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\"),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=i(n.length),u=o(t,c),s=o(e,c),f=arguments.length>2?arguments[2]:void 0,l=a((void 0===f?c:o(f,c))-s,c-u),p=1;for(s<u&&u<s+l&&(p=-1,s+=l-1,u+=l-1);l-- >0;)s in n?n[u]=n[s]:delete n[u],u+=p,s+=p;return n}},FMNM:function(t,e,n){var r=n(\"xrYK\"),o=n(\"kmMV\");t.exports=function(t,e){var n=t.exec;if(\"function\"==typeof n){var i=n.call(t,e);if(\"object\"!=typeof i)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return i}if(\"RegExp\"!==r(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(t,e)}},FZtP:function(t,e,n){var r=n(\"2oRo\"),o=n(\"/byt\"),i=n(\"F8JR\"),a=n(\"kRJp\");for(var c in o){var u=r[c],s=u&&u.prototype;if(s&&s.forEach!==i)try{a(s,\"forEach\",i)}catch(f){s.forEach=i}}},\"G+Rx\":function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"document\",\"documentElement\")},GKVU:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"anchor\")},{anchor:function(t){return o(this,\"a\",\"name\",t)}})},GRPF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontsize\")},{fontsize:function(t){return o(this,\"font\",\"size\",t)}})},GXvd:function(t,e,n){n(\"dG/n\")(\"species\")},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},H0pb:function(t,e,n){n(\"ma9I\"),n(\"07d7\"),n(\"pNMO\"),n(\"tjZM\"),n(\"4Brf\"),n(\"3I1R\"),n(\"7+kd\"),n(\"0oug\"),n(\"KhsS\"),n(\"jt2F\"),n(\"gOCb\"),n(\"a57n\"),n(\"GXvd\"),n(\"I1Gw\"),n(\"gXIK\"),n(\"lEou\"),n(\"gbiT\"),n(\"I9xj\"),n(\"DEfu\");var r=n(\"Qo9l\");t.exports=r.Symbol},HAuM:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},HH4o:function(t,e,n){var r=n(\"tiKp\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},HRxU:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperties:n(\"N+g0\")})},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},Hd5f:function(t,e,n){var r=n(\"0Dky\"),o=n(\"tiKp\"),i=n(\"YK6W\"),a=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HsHA:function(t,e){var n=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:n(1+t)}},\"I+eb\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"Bs8V\").f,i=n(\"kRJp\"),a=n(\"busE\"),c=n(\"zk60\"),u=n(\"6JNq\"),s=n(\"lMq5\");t.exports=function(t,e){var n,f,l,p,h,v=t.target,d=t.global,g=t.stat;if(n=d?r:g?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],l=t.noTargetGet?(h=o(n,f))&&h.value:n[f],!s(d?f:v+(g?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;u(p,l)}(t.sham||l&&l.sham)&&i(p,\"sham\",!0),a(n,f,p,t)}}},I1Gw:function(t,e,n){n(\"dG/n\")(\"split\")},I8vh:function(t,e,n){var r=n(\"ppGB\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},I9xj:function(t,e,n){n(\"1E5z\")(Math,\"Math\",!0)},ImZN:function(t,e,n){var r=n(\"glrk\"),o=n(\"6VoE\"),i=n(\"UMSQ\"),a=n(\"+MLx\"),c=n(\"NaFW\"),u=n(\"m92n\"),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,v,d,g,y,b,m=a(e,n,f?2:1);if(l)p=t;else{if(\"function\"!=typeof(h=c(t)))throw TypeError(\"Target is not iterable\");if(o(h)){for(v=0,d=i(t.length);d>v;v++)if((g=f?m(r(b=t[v])[0],b[1]):m(t[v]))&&g instanceof s)return g;return new s(!1)}p=h.call(t)}for(y=p.next;!(b=y.call(p)).done;)if(\"object\"==typeof(g=u(p,m,b.value,f))&&g&&g instanceof s)return g;return new s(!1)}).stop=function(t){return new s(!0,t)}},IxXR:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"strike\")},{strike:function(){return o(this,\"strike\",\"\",\"\")}})},J30X:function(t,e,n){n(\"I+eb\")({target:\"Array\",stat:!0},{isArray:n(\"6LWA\")})},JBy8:function(t,e,n){var r=n(\"yoRg\"),o=n(\"eDl+\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},JTJg:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WjRb\"),i=n(\"HYAF\");r({target:\"String\",proto:!0,forced:!n(\"qxPZ\")(\"includes\")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},JevA:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5YOQ\");r({target:\"Number\",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},JfAA:function(t,e,n){\"use strict\";var r=n(\"busE\"),o=n(\"glrk\"),i=n(\"0Dky\"),a=n(\"rW0t\"),c=RegExp.prototype,u=c.toString;(i((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})}))||\"toString\"!=u.name)&&r(RegExp.prototype,\"toString\",(function(){var t=o(this),e=String(t.source),n=t.flags;return\"/\"+e+\"/\"+String(void 0===n&&t instanceof RegExp&&!(\"flags\"in c)?a.call(t):n)}),{unsafe:!0})},JiZb:function(t,e,n){\"use strict\";var r=n(\"0GbY\"),o=n(\"m/L8\"),i=n(\"tiKp\"),a=n(\"g6v/\"),c=i(\"species\");t.exports=function(t){var e=r(t);a&&e&&!e[c]&&(0,o.f)(e,c,{configurable:!0,get:function(){return this}})}},KhsS:function(t,e,n){n(\"dG/n\")(\"match\")},KvGi:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{sign:n(\"90hW\")})},Kxld:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0},{is:n(\"Ep9I\")})},LKBx:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".startsWith,p=Math.min,h=s(\"startsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"startsWith\"),r&&!r.writable)||h)},{startsWith:function(t){var e=String(u(this));c(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},LPSS:function(t,e,n){var r,o,i,a=n(\"2oRo\"),c=n(\"0Dky\"),u=n(\"xrYK\"),s=n(\"+MLx\"),f=n(\"G+Rx\"),l=n(\"zBJ4\"),p=n(\"tinx\"),h=a.location,v=a.setImmediate,d=a.clearImmediate,g=a.process,y=a.MessageChannel,b=a.Dispatch,m=0,k={},x=function(t){if(k.hasOwnProperty(t)){var e=k[t];delete k[t],e()}},E=function(t){return function(){x(t)}},w=function(t){x(t.data)},S=function(t){a.postMessage(t+\"\",h.protocol+\"//\"+h.host)};v&&d||(v=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return k[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},d=function(t){delete k[t]},\"process\"==u(g)?r=function(t){g.nextTick(E(t))}:b&&b.now?r=function(t){b.now(E(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||c(S)?r=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(E(t),0)}:(r=S,a.addEventListener(\"message\",w,!1))),t.exports={set:v,clear:d}},\"N+g0\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"glrk\"),a=n(\"33Wh\");t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),c=r.length,u=0;c>u;)o.f(t,n=r[u++],e[n]);return t}},NBAS:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"ewvW\"),a=n(\"4WOD\"),c=n(\"4Xet\");r({target:\"Object\",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(t){return a(i(t))}})},NaFW:function(t,e,n){var r=n(\"9d/t\"),o=n(\"P4y1\"),i=n(\"tiKp\")(\"iterator\");t.exports=function(t){if(null!=t)return t[i]||t[\"@@iterator\"]||o[r(t)]}},\"NbN+\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)})},O741:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},OM9Z:function(t,e,n){n(\"I+eb\")({target:\"String\",proto:!0},{repeat:n(\"EUja\")})},P4y1:function(t,e){t.exports={}},PKPk:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt,o=n(\"afO8\"),i=n(\"fdAy\"),a=o.set,c=o.getterFor(\"String Iterator\");i(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},PqOI:function(t,e,n){var r=n(\"I+eb\"),o=n(\"90hW\"),i=Math.abs,a=Math.pow;r({target:\"Math\",stat:!0},{cbrt:function(t){return o(t=+t)*a(i(t),1/3)}})},QFcT:function(t,e,n){var r=n(\"I+eb\"),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,o=0,c=0,u=arguments.length,s=0;c<u;)s<(n=i(arguments[c++]))?(o=o*(r=s/n)*r+1,s=n):o+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(o)}})},QIpd:function(t,e,n){var r=n(\"xrYK\");t.exports=function(t){if(\"number\"!=typeof t&&\"Number\"!=r(t))throw TypeError(\"Incorrect invocation\");return+t}},QNnp:function(t,e,n){var r=n(\"I+eb\"),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:\"Math\",stat:!0},{clz32:function(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},QWBl:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"F8JR\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},Qo9l:function(t,e,n){var r=n(\"2oRo\");t.exports=r},R0gw:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";var t,e,n,r,o,i;function a(){t=Zone.__symbol__,e=Object[t(\"defineProperty\")]=Object.defineProperty,n=Object[t(\"getOwnPropertyDescriptor\")]=Object.getOwnPropertyDescriptor,r=Object.create,o=t(\"unconfigurables\"),Object.defineProperty=function(t,e,n){if(u(t,e))throw new TypeError(\"Cannot assign to read only property '\"+e+\"' of \"+t);var r=n.configurable;return\"prototype\"!==e&&(n=s(t,e,n)),f(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return\"object\"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=s(t,n,e[n])})),r(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var r=n(t,e);return r&&u(t,e)&&(r.configurable=!1),r}}function c(t,e,n){var r=n.configurable;return f(t,e,n=s(t,e,n),r)}function u(t,e){return t&&t[o]&&t[o][e]}function s(t,n,r){return Object.isFrozen(r)||(r.configurable=!0),r.configurable||(t[o]||Object.isFrozen(t)||e(t,o,{writable:!0,value:{}}),t[o]&&(t[o][n]=!0)),r}function f(t,n,r,o){try{return e(t,n,r)}catch(a){if(!r.configurable)throw a;void 0===o?delete r.configurable:r.configurable=o;try{return e(t,n,r)}catch(a){var i=null;try{i=JSON.stringify(r)}catch(a){i=r.toString()}console.log(\"Attempting to configure '\"+n+\"' with descriptor '\"+i+\"' on object '\"+t+\"' and got error, giving up: \"+a)}}}function l(t,e){var n=e.getGlobalObjects(),r=n.eventNames,o=n.globalSources,i=n.zoneSymbolEventNames,a=n.TRUE_STR,c=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,s=\"ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket\".split(\",\"),f=[],l=t.wtf,p=\"Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video\".split(\",\");l?f=p.map((function(t){return\"HTML\"+t+\"Element\"})).concat(s):t.EventTarget?f.push(\"EventTarget\"):f=s;for(var h=t.__Zone_disable_IE_check||!1,v=t.__Zone_enable_cross_context_check||!1,d=e.isIEOrEdge(),g=\"function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }\",y={MSPointerCancel:\"pointercancel\",MSPointerDown:\"pointerdown\",MSPointerEnter:\"pointerenter\",MSPointerHover:\"pointerhover\",MSPointerLeave:\"pointerleave\",MSPointerMove:\"pointermove\",MSPointerOut:\"pointerout\",MSPointerOver:\"pointerover\",MSPointerUp:\"pointerup\"},b=0;b<r.length;b++){var m=u+((S=r[b])+c),k=u+(S+a);i[S]={},i[S][c]=m,i[S][a]=k}for(b=0;b<p.length;b++)for(var x=p[b],E=o[x]={},w=0;w<r.length;w++){var S;E[S=r[w]]=x+\".addEventListener:\"+S}var _=[];for(b=0;b<f.length;b++){var T=t[f[b]];_.push(T&&T.prototype)}return e.patchEventTarget(t,_,{vh:function(t,e,n,r){if(!h&&d){if(v)try{var o;if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}catch(i){return t.apply(n,r),!1}else if(\"[object FunctionWrapper]\"===(o=e.toString())||o==g)return t.apply(n,r),!1}else if(v)try{e.toString()}catch(i){return t.apply(n,r),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol(\"patchEventTarget\")]=!!t.EventTarget,!0}function p(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!function(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,\"onclick\")&&\"undefined\"!=typeof Element){var r=t.ObjectGetOwnPropertyDescriptor(Element.prototype,\"onclick\");if(r&&!r.configurable)return!1;if(r){t.ObjectDefineProperty(Element.prototype,\"onclick\",{enumerable:!0,configurable:!0,get:function(){return!0}});var o=!!document.createElement(\"div\").onclick;return t.ObjectDefineProperty(Element.prototype,\"onclick\",r),o}}var i=e.XMLHttpRequest;if(!i)return!1;var a=i.prototype,c=t.ObjectGetOwnPropertyDescriptor(a,\"onreadystatechange\");if(c)return t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return!0}}),o=!!(s=new i).onreadystatechange,t.ObjectDefineProperty(a,\"onreadystatechange\",c||{}),o;var u=t.symbol(\"fake\");t.ObjectDefineProperty(a,\"onreadystatechange\",{enumerable:!0,configurable:!0,get:function(){return this[u]},set:function(t){this[u]=t}});var s=new i,f=function(){};return s.onreadystatechange=f,o=s[u]===f,s.onreadystatechange=null,o}(t,e)){var r=\"undefined\"!=typeof WebSocket;!function(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol(\"unbound\"),r=function(r){var o=e[r],i=\"on\"+o;self.addEventListener(o,(function(e){var r,o,a=e.target;for(o=a?a.constructor.name+\".\"+i:\"unknown.\"+i;a;)a[i]&&!a[i][n]&&((r=t.wrapWithCurrentZone(a[i],o))[n]=a[i],a[i]=r),a=a.parentElement}),!0)},o=0;o<e.length;o++)r(o)}(t),t.patchClass(\"XMLHttpRequest\"),r&&function(t,e){var n=t.getGlobalObjects(),r=n.ADD_EVENT_LISTENER_STR,o=n.REMOVE_EVENT_LISTENER_STR,i=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[i.prototype]),e.WebSocket=function(e,n){var a,c,u=arguments.length>1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(u,\"onmessage\");return s&&!1===s.configurable?(a=t.ObjectCreate(u),c=u,[r,o,\"send\",\"close\"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var c=Zone.__symbol__(\"ON_PROPERTY\"+i);u[c]=a[c]}}return u[e].apply(u,n)}}))):a=u,t.patchOnProperties(a,[\"close\",\"error\",\"message\",\"open\"],c),a};var a=e.WebSocket;for(var c in i)a[c]=i[c]}(t,e),Zone[t.symbol(\"patchEvents\")]=!0}}(i=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{})[(i.__Zone_symbol_prefix||\"__zone_symbol__\")+\"legacyPatch\"]=function(){var t=i.Zone;t.__load_patch(\"defineProperty\",(function(t,e,n){n._redefineProperty=c,a()})),t.__load_patch(\"registerElement\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&\"registerElement\"in t.document&&e.patchCallbacks(e,document,\"Document\",\"registerElement\",[\"createdCallback\",\"attachedCallback\",\"detachedCallback\",\"attributeChangedCallback\"])}(t,n)})),t.__load_patch(\"EventTargetLegacy\",(function(t,e,n){l(t,n),p(n,t)}))}})?r.call(e,n,e,t):r)||(t.exports=o)},RK3t:function(t,e,n){var r=n(\"0Dky\"),o=n(\"xrYK\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},RN6c:function(t,e,n){var r=n(\"2oRo\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},RNIs:function(t,e,n){var r=n(\"tiKp\"),o=n(\"fHMY\"),i=n(\"m/L8\"),a=r(\"unscopables\"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},ROdP:function(t,e,n){var r=n(\"hh1v\"),o=n(\"xrYK\"),i=n(\"tiKp\")(\"match\");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:\"RegExp\"==o(t))}},Rfxz:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").some;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"some\")},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},Rm1S:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"UMSQ\"),a=n(\"HYAF\"),c=n(\"iqWW\"),u=n(\"FMNM\");r(\"match\",1,(function(t,e,n){return[function(e){var n=a(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var a=o(t),s=String(this);if(!a.global)return u(a,s);var f=a.unicode;a.lastIndex=0;for(var l,p=[],h=0;null!==(l=u(a,s));){var v=String(l[0]);p[h]=v,\"\"===v&&(a.lastIndex=c(s,i(a.lastIndex),f)),h++}return 0===h?null:p}]}))},SEBh:function(t,e,n){var r=n(\"glrk\"),o=n(\"HAuM\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},STAE:function(t,e,n){var r=n(\"0Dky\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},SYor:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"WKiH\").trim;r({target:\"String\",proto:!0,forced:n(\"4HCi\")(\"trim\")},{trim:function(){return o(this)}})},TFPT:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sub\")},{sub:function(){return o(this,\"sub\",\"\",\"\")}})},TWNs:function(t,e,n){var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"cVYH\"),c=n(\"m/L8\").f,u=n(\"JBy8\").f,s=n(\"ROdP\"),f=n(\"rW0t\"),l=n(\"n3/R\"),p=n(\"busE\"),h=n(\"0Dky\"),v=n(\"afO8\").set,d=n(\"JiZb\"),g=n(\"tiKp\")(\"match\"),y=o.RegExp,b=y.prototype,m=/a/g,k=/a/g,x=new y(m)!==m,E=l.UNSUPPORTED_Y;if(r&&i(\"RegExp\",!x||E||h((function(){return k[g]=!1,y(m)!=m||y(k)==k||\"/a/i\"!=y(m,\"i\")})))){for(var w=function t(e,n){var r,o=this instanceof t,i=s(e),c=void 0===n;if(!o&&i&&e.constructor===t&&c)return e;x?i&&!c&&(e=e.source):e instanceof t&&(c&&(n=f.call(e)),e=e.source),E&&(r=!!n&&n.indexOf(\"y\")>-1)&&(n=n.replace(/y/g,\"\"));var u=a(x?new y(e,n):y(e,n),o?this:b,t);return E&&r&&v(u,{sticky:r}),u},S=function(t){t in w||c(w,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},_=u(y),T=0;_.length>T;)S(_[T++]);b.constructor=w,w.prototype=b,p(o,\"RegExp\",w)}d(\"RegExp\")},TWQb:function(t,e,n){var r=n(\"/GqU\"),o=n(\"UMSQ\"),i=n(\"I8vh\"),a=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((c=u[f++])!=c)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},TeQF:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").filter,i=n(\"0Dky\"),a=n(\"Hd5f\")(\"filter\"),c=a&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:\"Array\",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},TfTi:function(t,e,n){\"use strict\";var r=n(\"+MLx\"),o=n(\"ewvW\"),i=n(\"m92n\"),a=n(\"6VoE\"),c=n(\"UMSQ\"),u=n(\"hBjN\"),s=n(\"NaFW\");t.exports=function(t){var e,n,f,l,p,h=o(t),v=\"function\"==typeof this?this:Array,d=arguments.length,g=d>1?arguments[1]:void 0,y=void 0!==g,b=0,m=s(h);if(y&&(g=r(g,d>2?arguments[2]:void 0,2)),null==m||v==Array&&a(m))for(n=new v(e=c(h.length));e>b;b++)u(n,b,y?g(h[b],b):h[b]);else for(p=(l=m.call(h)).next,n=new v;!(f=p.call(l)).done;b++)u(n,b,y?i(l,g,[f.value,b],!0):f.value);return n.length=b,n}},ToJy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"HAuM\"),i=n(\"ewvW\"),a=n(\"0Dky\"),c=n(\"swFL\"),u=[],s=u.sort,f=a((function(){u.sort(void 0)})),l=a((function(){u.sort(null)})),p=c(\"sort\");r({target:\"Array\",proto:!0,forced:f||!l||p},{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),o(t))}})},Tskq:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},U3f4:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"rW0t\"),a=n(\"n3/R\").UNSUPPORTED_Y;r&&(\"g\"!=/./g.flags||a)&&o.f(RegExp.prototype,\"flags\",{configurable:!0,get:i})},UMSQ:function(t,e,n){var r=n(\"ppGB\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UesL:function(t,e,n){\"use strict\";var r=n(\"glrk\"),o=n(\"wE6v\");t.exports=function(t){if(\"string\"!==t&&\"number\"!==t&&\"default\"!==t)throw TypeError(\"Incorrect hint\");return o(r(this),\"number\"!==t)}},UxlC:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ppGB\"),u=n(\"HYAF\"),s=n(\"iqWW\"),f=n(\"FMNM\"),l=Math.max,p=Math.min,h=Math.floor,v=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,d=/\\$([$&'`]|\\d\\d?)/g;r(\"replace\",2,(function(t,e,n,r){return[function(n,r){var o=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,i){if(r.REPLACE_KEEPS_$0||\"string\"==typeof i&&-1===i.indexOf(\"$0\")){var u=n(e,t,this,i);if(u.done)return u.value}var h=o(t),v=String(this),d=\"function\"==typeof i;d||(i=String(i));var y=h.global;if(y){var b=h.unicode;h.lastIndex=0}for(var m=[];;){var k=f(h,v);if(null===k)break;if(m.push(k),!y)break;\"\"===String(k[0])&&(h.lastIndex=s(v,a(h.lastIndex),b))}for(var x,E=\"\",w=0,S=0;S<m.length;S++){k=m[S];for(var _=String(k[0]),T=l(p(c(k.index),v.length),0),O=[],I=1;I<k.length;I++)O.push(void 0===(x=k[I])?x:String(x));var M=k.groups;if(d){var D=[_].concat(O,T,v);void 0!==M&&D.push(M);var j=String(i.apply(void 0,D))}else j=g(_,v,T,O,M,i);T>=w&&(E+=v.slice(w,T)+j,w=T+_.length)}return E+v.slice(w)}];function g(t,n,r,o,a,c){var u=r+t.length,s=o.length,f=d;return void 0!==a&&(a=i(a),f=v),e.call(c,f,(function(e,i){var c;switch(i.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return n.slice(0,r);case\"'\":return n.slice(u);case\"<\":c=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c}))}}))},Uydy:function(t,e,n){var r=n(\"I+eb\"),o=n(\"HsHA\"),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:\"Math\",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?a(t)+u:o(t-1+c(t-1)*c(t+1))}})},VC3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"QIpd\"),a=1..toPrecision;r({target:\"Number\",proto:!0,forced:o((function(){return\"1\"!==a.call(1,void 0)}))||!o((function(){a.call({})}))},{toPrecision:function(t){return void 0===t?a.call(i(this)):a.call(i(this),t)}})},VpIT:function(t,e,n){var r=n(\"xDBR\"),o=n(\"xs3f\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.0\",mode:r?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},Vu81:function(t,e,n){var r=n(\"0GbY\"),o=n(\"JBy8\"),i=n(\"dBg+\"),a=n(\"glrk\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(a(t)),n=i.f;return n?e.concat(n(t)):e}},WDsR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"Xol8\"),i=Math.abs;r({target:\"Number\",stat:!0},{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},WJkJ:function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\xa0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\"},WKiH:function(t,e,n){var r=n(\"HYAF\"),o=\"[\"+n(\"WJkJ\")+\"]\",i=RegExp(\"^\"+o+o+\"*\"),a=RegExp(o+o+\"*$\"),c=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,\"\")),2&t&&(n=n.replace(a,\"\")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},WjRb:function(t,e,n){var r=n(\"ROdP\");t.exports=function(t){if(r(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xe3L:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hBjN\");r({target:\"Array\",stat:!0,forced:o((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(\"function\"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},Xol8:function(t,e,n){var r=n(\"hh1v\"),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},YGK4:function(t,e,n){\"use strict\";var r=n(\"bWFh\"),o=n(\"ZWaQ\");t.exports=r(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},YK6W:function(t,e,n){var r,o,i=n(\"2oRo\"),a=n(\"s5pE\"),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split(\".\"))[0]+r[1]:a&&(!(r=a.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\\/(\\d+)/))&&(o=r[1]),t.exports=o&&+o},YNrV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"0Dky\"),i=n(\"33Wh\"),a=n(\"dBg+\"),c=n(\"0eef\"),u=n(\"ewvW\"),s=n(\"RK3t\"),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[n]||\"abcdefghijklmnopqrst\"!=i(f({},e)).join(\"\")}))?function(t,e){for(var n=u(t),o=arguments.length,f=1,l=a.f,p=c.f;o>f;)for(var h,v=s(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)h=d[y++],r&&!p.call(v,h)||(n[h]=v[h]);return n}:f},ZOXb:function(t,e,n){\"use strict\";var r=n(\"0Dky\"),o=n(\"DMt2\").start,i=Math.abs,a=Date.prototype,c=a.getTime,u=a.toISOString;t.exports=r((function(){return\"0385-07-25T07:06:39.999Z\"!=u.call(new Date(-5e13-1))}))||!r((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError(\"Invalid time value\");var t=this.getUTCFullYear(),e=this.getUTCMilliseconds(),n=t<0?\"-\":t>9999?\"+\":\"\";return n+o(i(t),n?6:4,0)+\"-\"+o(this.getUTCMonth()+1,2,0)+\"-\"+o(this.getUTCDate(),2,0)+\"T\"+o(this.getUTCHours(),2,0)+\":\"+o(this.getUTCMinutes(),2,0)+\":\"+o(this.getUTCSeconds(),2,0)+\".\"+o(e,3,0)+\"Z\"}:u},ZUd8:function(t,e,n){var r=n(\"ppGB\"),o=n(\"HYAF\"),i=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?\"\":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWaQ:function(t,e,n){\"use strict\";var r=n(\"m/L8\").f,o=n(\"fHMY\"),i=n(\"4syw\"),a=n(\"+MLx\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"fdAy\"),f=n(\"JiZb\"),l=n(\"g6v/\"),p=n(\"8YOa\").fastKey,h=n(\"afO8\"),v=h.set,d=h.getterFor;t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){c(t,f,e),v(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),l||(t.size=0),null!=r&&u(r,t[s],t,n)})),h=d(e),g=function(t,e,n){var r,o,i=h(t),a=y(t,e);return a?a.value=n:(i.last=a={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:t.size++,\"F\"!==o&&(i.index[o]=a)),t},y=function(t,e){var n,r=h(t),o=p(e);if(\"F\"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(f.prototype,{clear:function(){for(var t=h(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,l?t.size=0:this.size=0},delete:function(t){var e=h(this),n=y(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),l?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=h(this),r=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!y(this,t)}}),i(f.prototype,n?{get:function(t){var e=y(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),l&&r(f.prototype,\"size\",{get:function(){return h(this).size}}),f},setStrong:function(t,e,n){var r=e+\" Iterator\",o=d(e),i=d(r);s(t,e,(function(t,e){v(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?\"keys\"==e?{value:n.key,done:!1}:\"values\"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?\"entries\":\"values\",!n,!0),f(e)}}},ZfDv:function(t,e,n){var r=n(\"hh1v\"),o=n(\"6LWA\"),i=n(\"tiKp\")(\"species\");t.exports=function(t,e){var n;return o(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},Zk8X:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"sup\")},{sup:function(){return o(this,\"sup\",\"\",\"\")}})},a57n:function(t,e,n){n(\"dG/n\")(\"search\")},a5NK:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LOG10E;r({target:\"Math\",stat:!0},{log10:function(t){return o(t)*i}})},afO8:function(t,e,n){var r,o,i,a=n(\"f5p1\"),c=n(\"2oRo\"),u=n(\"hh1v\"),s=n(\"kRJp\"),f=n(\"UTVS\"),l=n(\"93I0\"),p=n(\"0BK2\");if(a){var h=new(0,c.WeakMap),v=h.get,d=h.has,g=h.set;r=function(t,e){return g.call(h,t,e),e},o=function(t){return v.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var y=l(\"state\");p[y]=!0,r=function(t,e){return s(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}}},\"b+VT\":function(t,e,n){var r=n(\"2oRo\"),o=n(\"WKiH\").trim,i=n(\"WJkJ\"),a=r.parseFloat,c=1/a(i+\"-0\")!=-1/0;t.exports=c?function(t){var e=o(String(t)),n=a(e);return 0===n&&\"-\"==e.charAt(0)?-0:n}:a},bWFh:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"8YOa\"),u=n(\"ImZN\"),s=n(\"GarU\"),f=n(\"hh1v\"),l=n(\"0Dky\"),p=n(\"HH4o\"),h=n(\"1E5z\"),v=n(\"cVYH\");t.exports=function(t,e,n){var d=-1!==t.indexOf(\"Map\"),g=-1!==t.indexOf(\"Weak\"),y=d?\"set\":\"add\",b=o[t],m=b&&b.prototype,k=b,x={},E=function(t){var e=m[t];a(m,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,\"function\"!=typeof b||!(g||m.forEach&&!l((function(){(new b).entries().next()})))))k=n.getConstructor(e,t,d,y),c.REQUIRED=!0;else if(i(t,!0)){var w=new k,S=w[y](g?{}:-0,1)!=w,_=l((function(){w.has(1)})),T=p((function(t){new b(t)})),O=!g&&l((function(){for(var t=new b,e=5;e--;)t[y](e,e);return!t.has(-0)}));T||((k=e((function(e,n){s(e,k,t);var r=v(new b,e,k);return null!=n&&u(n,r[y],r,d),r}))).prototype=m,m.constructor=k),(_||O)&&(E(\"delete\"),E(\"has\"),d&&E(\"get\")),(O||S)&&E(y),g&&m.clear&&delete m.clear}return x[t]=k,r({global:!0,forced:k!=b},x),h(k,t),g||n.setStrong(k,t,d),k}},brp2:function(t,e,n){n(\"I+eb\")({target:\"Date\",stat:!0},{now:function(){return(new Date).getTime()}})},busE:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\"),i=n(\"UTVS\"),a=n(\"zk60\"),c=n(\"iSVu\"),u=n(\"afO8\"),s=u.get,f=u.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,c){var u=!!c&&!!c.unsafe,s=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),f(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(u?!p&&t[e]&&(s=!0):delete t[e],s?t[e]=n:o(t,e,n)):s?t[e]=n:a(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&s(this).source||c(this)}))},cDke:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"BX/b\").f;r({target:\"Object\",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},cVYH:function(t,e,n){var r=n(\"hh1v\"),o=n(\"0rvr\");t.exports=function(t,e,n){var i,a;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(t,a),t}},\"dBg+\":function(t,e){e.f=Object.getOwnPropertySymbols},\"dG/n\":function(t,e,n){var r=n(\"Qo9l\"),o=n(\"UTVS\"),i=n(\"wDLo\"),a=n(\"m/L8\").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},\"eDl+\":function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},eJiR:function(t,e,n){var r=n(\"I+eb\"),o=n(\"jrUv\"),i=Math.exp;r({target:\"Math\",stat:!0},{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},eajv:function(t,e,n){var r=n(\"I+eb\"),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:\"Math\",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):i(e+a(e*e+1)):e}})},eoL8:function(t,e,n){var r=n(\"I+eb\"),o=n(\"g6v/\");r({target:\"Object\",stat:!0,forced:!o,sham:!o},{defineProperty:n(\"m/L8\").f})},ewvW:function(t,e,n){var r=n(\"HYAF\");t.exports=function(t){return Object(r(t))}},f5p1:function(t,e,n){var r=n(\"2oRo\"),o=n(\"iSVu\"),i=r.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o(i))},fHMY:function(t,e,n){var r,o=n(\"glrk\"),i=n(\"N+g0\"),a=n(\"eDl+\"),c=n(\"0BK2\"),u=n(\"G+Rx\"),s=n(\"zBJ4\"),f=n(\"93I0\")(\"IE_PROTO\"),l=function(){},p=function(t){return\"<script>\"+t+\"<\\/script>\"},h=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(o){}var t,e;h=r?function(t){t.write(p(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(p(\"document.F=Object\")),t.close(),t.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=o(t),n=new l,l.prototype=null,n[f]=t):n=h(),void 0===e?n:i(n,e)}},fbCW:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").find,i=n(\"RNIs\"),a=!0;\"find\"in[]&&Array(1).find((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"find\")},fdAy:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ntOU\"),i=n(\"4WOD\"),a=n(\"0rvr\"),c=n(\"1E5z\"),u=n(\"kRJp\"),s=n(\"busE\"),f=n(\"tiKp\"),l=n(\"xDBR\"),p=n(\"P4y1\"),h=n(\"rpNk\"),v=h.IteratorPrototype,d=h.BUGGY_SAFARI_ITERATORS,g=f(\"iterator\"),y=function(){return this};t.exports=function(t,e,n,f,h,b,m){o(n,e,f);var k,x,E,w=function(t){if(t===h&&I)return I;if(!d&&t in T)return T[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+\" Iterator\",_=!1,T=t.prototype,O=T[g]||T[\"@@iterator\"]||h&&T[h],I=!d&&O||w(h),M=\"Array\"==e&&T.entries||O;if(M&&(k=i(M.call(new t)),v!==Object.prototype&&k.next&&(l||i(k)===v||(a?a(k,v):\"function\"!=typeof k[g]&&u(k,g,y)),c(k,S,!0,!0),l&&(p[S]=y))),\"values\"==h&&O&&\"values\"!==O.name&&(_=!0,I=function(){return O.call(this)}),l&&!m||T[g]===I||u(T,g,I),p[e]=I,h)if(x={values:w(\"values\"),keys:b?I:w(\"keys\"),entries:w(\"entries\")},m)for(E in x)!d&&!_&&E in T||s(T,E,x[E]);else r({target:e,proto:!0,forced:d||_},x);return x}},ftKg:function(t,e,n){n(\"brp2\"),n(\"9LPj\"),n(\"rMz7\"),n(\"DQNa\"),n(\"7+zs\");var r=n(\"Qo9l\");t.exports=r.Date},\"g6v/\":function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},gOCb:function(t,e,n){n(\"dG/n\")(\"replace\")},gXIK:function(t,e,n){n(\"dG/n\")(\"toPrimitive\")},gbiT:function(t,e,n){n(\"dG/n\")(\"unscopables\")},gdVl:function(t,e,n){\"use strict\";var r=n(\"ewvW\"),o=n(\"I8vh\"),i=n(\"UMSQ\");t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,c=o(a>1?arguments[1]:void 0,n),u=a>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>c;)e[c++]=t;return e}},glrk:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},hBjN:function(t,e,n){\"use strict\";var r=n(\"wE6v\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},hByQ:function(t,e,n){\"use strict\";var r=n(\"14Sl\"),o=n(\"glrk\"),i=n(\"HYAF\"),a=n(\"Ep9I\"),c=n(\"FMNM\");r(\"search\",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var f=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===f?-1:f.index}]}))},\"hN/g\":function(t,e,n){\"use strict\";n.r(e),n(\"pDpN\")},hXpO:function(t,e,n){var r=n(\"HYAF\"),o=/\"/g;t.exports=function(t,e,n,i){var a=String(r(t)),c=\"<\"+e;return\"\"!==n&&(c+=\" \"+n+'=\"'+String(i).replace(o,\"&quot;\")+'\"'),c+\">\"+a+\"</\"+e+\">\"}},hh1v:function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},i6QF:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isInteger:n(\"Xol8\")})},iSVu:function(t,e,n){var r=n(\"xs3f\"),o=Function.toString;\"function\"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},inlA:function(t,e,n){\"use strict\";var r,o=n(\"I+eb\"),i=n(\"Bs8V\").f,a=n(\"UMSQ\"),c=n(\"WjRb\"),u=n(\"HYAF\"),s=n(\"qxPZ\"),f=n(\"xDBR\"),l=\"\".endsWith,p=Math.min,h=s(\"endsWith\");o({target:\"String\",proto:!0,forced:!(!f&&!h&&(r=i(String.prototype,\"endsWith\"),r&&!r.writable)||h)},{endsWith:function(t){var e=String(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=a(e.length),o=void 0===n?r:p(a(n),r),i=String(t);return l?l.call(e,i,o):e.slice(o-i.length,o)===i}})},iqWW:function(t,e,n){\"use strict\";var r=n(\"ZUd8\").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},jrUv:function(t,e){var n=Math.expm1,r=Math.exp;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:r(t)-1}:n},jt2F:function(t,e,n){n(\"dG/n\")(\"matchAll\")},kNcU:function(t,e,n){var r=n(\"I+eb\"),o=Math.log,i=Math.LN2;r({target:\"Math\",stat:!0},{log2:function(t){return o(t)/i}})},kOOl:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+r).toString(36)}},kRJp:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\"),i=n(\"XGwC\");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kSko:function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},kmMV:function(t,e,n){\"use strict\";var r,o,i=n(\"rW0t\"),a=n(\"n3/R\"),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,f=(o=/b*/g,c.call(r=/a/,\"a\"),c.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),v=a.source,d=0,g=t;return s&&(-1===(h=h.replace(\"y\",\"\")).indexOf(\"g\")&&(h+=\"g\"),g=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==t[a.lastIndex-1])&&(v=\"(?: \"+v+\")\",g=\" \"+g,d++),n=new RegExp(\"^(?:\"+v+\")\",h)),p&&(n=new RegExp(\"^\"+v+\"$(?!\\\\s)\",h)),f&&(e=a.lastIndex),r=c.call(s?n:a,g),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=s},l2dK:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fontcolor\")},{fontcolor:function(t){return o(this,\"font\",\"color\",t)}})},lEou:function(t,e,n){n(\"dG/n\")(\"toStringTag\")},lMq5:function(t,e,n){var r=n(\"0Dky\"),o=/#|\\.prototype\\./,i=function(t,e){var n=c[a(t)];return n==s||n!=u&&(\"function\"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},c=i.data={},u=i.NATIVE=\"N\",s=i.POLYFILL=\"P\";t.exports=i},ls82:function(t,e,n){var r=function(t){\"use strict\";var e=Object.prototype,n=e.hasOwnProperty,r=\"function\"==typeof Symbol?Symbol:{},o=r.iterator||\"@@iterator\",i=r.asyncIterator||\"@@asyncIterator\",a=r.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=Object.create((e&&e.prototype instanceof f?e:f).prototype),i=new E(r||[]);return o._invoke=function(t,e,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=m(a,n);if(c){if(c===s)continue;return c}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var f=u(t,e,n);if(\"normal\"===f.type){if(r=n.done?\"completed\":\"suspendedYield\",f.arg===s)continue;return{value:f.arg,done:n.done}}\"throw\"===f.type&&(r=\"completed\",n.method=\"throw\",n.arg=f.arg)}}}(t,n,i),o}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(r){return{type:\"throw\",arg:r}}}t.wrap=c;var s={};function f(){}function l(){}function p(){}var h={};h[o]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(w([])));d&&d!==e&&n.call(d,o)&&(h=d);var g=p.prototype=f.prototype=Object.create(h);function y(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function b(t){var e;this._invoke=function(r,o){function i(){return new Promise((function(e,i){!function e(r,o,i,a){var c=u(t[r],t,o);if(\"throw\"!==c.type){var s=c.arg,f=s.value;return f&&\"object\"==typeof f&&n.call(f,\"__await\")?Promise.resolve(f.__await).then((function(t){e(\"next\",t,i,a)}),(function(t){e(\"throw\",t,i,a)})):Promise.resolve(f).then((function(t){s.value=t,i(s)}),(function(t){return e(\"throw\",t,i,a)}))}a(c.arg)}(r,o,e,i)}))}return e=e?e.then(i,i):i()}}function m(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,m(t,e),\"throw\"===e.method))return s;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return s}var r=u(n,t.iterator,e.arg);if(\"throw\"===r.type)return e.method=\"throw\",e.arg=r.arg,e.delegate=null,s;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,s):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,s)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function w(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return l.prototype=g.constructor=p,p.constructor=l,p[a]=l.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a in t||(t[a]=\"GeneratorFunction\")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},y(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o){var i=new b(c(e,n,r,o));return t.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},y(g),g[a]=\"Generator\",g[o]=function(){return this},g.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=w,E.prototype={constructor:E,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type=\"throw\",a.arg=t,e.next=n,r&&(e.method=\"next\",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,s):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),s},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;x(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:w(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=r}catch(o){Function(\"r\",\"regeneratorRuntime = r\")(r)}},\"m/L8\":function(t,e,n){var r=n(\"g6v/\"),o=n(\"DPsx\"),i=n(\"glrk\"),a=n(\"wE6v\"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var r=n(\"glrk\");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},mRH6:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"link\")},{link:function(t){return o(this,\"a\",\"href\",t)}})},mRIq:function(t,e,n){\"use strict\";n.r(e),n(\"H0pb\"),n(\"wLYn\"),n(\"sMBO\"),n(\"tW5y\"),n(\"uL8W\"),n(\"eoL8\"),n(\"HRxU\"),n(\"5DmW\"),n(\"NBAS\"),n(\"tkto\"),n(\"cDke\"),n(\"3KgV\"),n(\"r5Og\"),n(\"zuhW\"),n(\"4h0Y\"),n(\"5D5o\"),n(\"yQYn\"),n(\"zKZe\"),n(\"Kxld\"),n(\"ExoC\"),n(\"07d7\"),n(\"ma9I\"),n(\"J30X\"),n(\"pjDv\"),n(\"Xe3L\"),n(\"oVuX\"),n(\"+2oP\"),n(\"pDQq\"),n(\"ToJy\"),n(\"QWBl\"),n(\"2B1R\"),n(\"TeQF\"),n(\"Rfxz\"),n(\"piMb\"),n(\"E9XD\"),n(\"9N29\"),n(\"yXV3\"),n(\"uqXc\"),n(\"qHT+\"),n(\"yyme\"),n(\"fbCW\"),n(\"x0AG\"),n(\"4mDm\"),n(\"9tb/\"),n(\"2A+d\"),n(\"SYor\"),n(\"PKPk\"),n(\"9bJ7\"),n(\"inlA\"),n(\"JTJg\"),n(\"OM9Z\"),n(\"LKBx\"),n(\"GKVU\"),n(\"E5NM\"),n(\"BNMt\"),n(\"zHFu\"),n(\"x83w\"),n(\"l2dK\"),n(\"GRPF\"),n(\"xdBZ\"),n(\"mRH6\"),n(\"yWo2\"),n(\"IxXR\"),n(\"TFPT\"),n(\"Zk8X\"),n(\"Rm1S\"),n(\"UxlC\"),n(\"hByQ\"),n(\"EnZy\"),n(\"4l63\"),n(\"rNhl\"),n(\"7sbD\"),n(\"6hpn\"),n(\"ftKg\"),n(\"TWNs\"),n(\"JfAA\"),n(\"U3f4\"),n(\"Tskq\"),n(\"ENF9\"),n(\"YGK4\"),n(\"FZtP\"),n(\"3bBZ\"),n(\"5s+n\"),n(\"DEfu\"),n(\"ls82\")},ma9I:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"6LWA\"),a=n(\"hh1v\"),c=n(\"ewvW\"),u=n(\"UMSQ\"),s=n(\"hBjN\"),f=n(\"ZfDv\"),l=n(\"Hd5f\"),p=n(\"tiKp\"),h=n(\"YK6W\"),v=p(\"isConcatSpreadable\"),d=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=l(\"concat\"),y=function(t){if(!a(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,forced:!d||!g},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?a:arguments[e])){if(p+(o=u(i.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n<o;n++,p++)n in i&&s(l,p,i[n])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");s(l,p++,i)}return l.length=p,l}})},\"n/mU\":function(t,e,n){var r=n(\"I+eb\"),o=Math.atanh,i=Math.log;r({target:\"Math\",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},\"n3/R\":function(t,e,n){\"use strict\";var r=n(\"0Dky\");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),e.BROKEN_CARET=r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},ntOU:function(t,e,n){\"use strict\";var r=n(\"rpNk\").IteratorPrototype,o=n(\"fHMY\"),i=n(\"XGwC\"),a=n(\"1E5z\"),c=n(\"P4y1\"),u=function(){return this};t.exports=function(t,e,n){var s=e+\" Iterator\";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),c[s]=u,t}},oVuX:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"RK3t\"),i=n(\"/GqU\"),a=n(\"swFL\"),c=[].join,u=o!=Object,s=a(\"join\",\",\");r({target:\"Array\",proto:!0,forced:u||s},{join:function(t){return c.call(i(this),void 0===t?\",\":t)}})},pDQq:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"I8vh\"),i=n(\"ppGB\"),a=n(\"UMSQ\"),c=n(\"ewvW\"),u=n(\"ZfDv\"),s=n(\"hBjN\"),f=n(\"Hd5f\"),l=Math.max,p=Math.min;r({target:\"Array\",proto:!0,forced:!f(\"splice\")},{splice:function(t,e){var n,r,f,h,v,d,g=c(this),y=a(g.length),b=o(t,y),m=arguments.length;if(0===m?n=r=0:1===m?(n=0,r=y-b):(n=m-2,r=p(l(i(e),0),y-b)),y+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(f=u(g,r),h=0;h<r;h++)(v=b+h)in g&&s(f,h,g[v]);if(f.length=r,n<r){for(h=b;h<y-r;h++)d=h+n,(v=h+r)in g?g[d]=g[v]:delete g[d];for(h=y;h>y-r+n;h--)delete g[h-1]}else if(n>r)for(h=y-r;h>b;h--)d=h+n-1,(v=h+r-1)in g?g[d]=g[v]:delete g[d];for(h=0;h<n;h++)g[h+b]=arguments[h+2];return g.length=y-r+n,f}})},pDpN:function(t,e,n){var r,o;void 0===(o=\"function\"==typeof(r=function(){\"use strict\";!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n(\"Zone\");var o=t.__Zone_symbol_prefix||\"__zone_symbol__\";function i(t){return o+t}var a=!0===t[i(\"forceDuplicateZoneCheck\")];if(t.Zone){if(a||\"function\"!=typeof t.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return t.Zone}var c=function(){function e(t,n){_classCallCheck(this,e),this._parent=t,this._name=n?n.name||\"unnamed\":\"<root>\",this._properties=n&&n.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,n)}return _createClass(e,[{key:\"get\",value:function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]}},{key:\"getZoneWith\",value:function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}},{key:\"fork\",value:function(t){if(!t)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,t)}},{key:\"wrap\",value:function(t,e){if(\"function\"!=typeof t)throw new Error(\"Expecting function got: \"+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}},{key:\"run\",value:function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}}},{key:\"runGuarded\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}}},{key:\"runTask\",value:function(t,e,n){if(t.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");if(t.state!==k||t.type!==I&&t.type!==O){var r=t.state!=w;r&&t._transitionTo(w,E),t.runCount++;var o=R;R=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==k&&t.state!==_&&(t.type==I||t.data&&t.data.isPeriodic?r&&t._transitionTo(E,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(k,w,k))),j=j.parent,R=o}}}},{key:\"scheduleTask\",value:function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error(\"can not reschedule task to \".concat(this.name,\" which is descendants of the original zone \").concat(t.zone.name));e=e.parent}t._transitionTo(x,k);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(_,x,k),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==x&&t._transitionTo(E,x),t}},{key:\"scheduleMicroTask\",value:function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))}},{key:\"scheduleMacroTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}},{key:\"scheduleEventTask\",value:function(t,e,n,r,o){return this.scheduleTask(new l(I,t,e,n,r,o))}},{key:\"cancelTask\",value:function(t){if(t.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(t.zone||m).name+\"; Execution: \"+this.name+\")\");t._transitionTo(S,E,w);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(_,S),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(k,S),t.runCount=0,t}},{key:\"_updateTaskCount\",value:function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(t.type,e)}},{key:\"parent\",get:function(){return this._parent}},{key:\"name\",get:function(){return this._name}}],[{key:\"assertZonePatched\",value:function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}},{key:\"__load_patch\",value:function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error(\"Already loaded patch: \"+o)}else if(!t[\"__Zone_disable_\"+o]){var c=\"Zone:\"+o;n(c),M[o]=i(t,e,D),r(c,c)}}},{key:\"root\",get:function(){for(var t=e.current;t.parent;)t=t.parent;return t}},{key:\"current\",get:function(){return j.zone}},{key:\"currentTask\",get:function(){return R}}]),e}();c.__symbol__=i;var u,s={name:\"\",onHasTask:function(t,e,n,r){return t.hasTask(n,r)},onScheduleTask:function(t,e,n,r){return t.scheduleTask(n,r)},onInvokeTask:function(t,e,n,r,o,i){return t.invokeTask(n,r,o,i)},onCancelTask:function(t,e,n,r){return t.cancelTask(n,r)}},f=function(){function t(e,n,r){_classCallCheck(this,t),this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=n,this._forkZS=r&&(r&&r.onFork?r:n._forkZS),this._forkDlgt=r&&(r.onFork?n:n._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:n._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:n._interceptZS),this._interceptDlgt=r&&(r.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:n._invokeZS),this._invokeDlgt=r&&(r.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:n._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:n._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:n._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:n._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=r&&r.onHasTask;(o||n&&n._hasTaskZS)&&(this._hasTaskZS=o?r:s,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,r.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}return _createClass(t,[{key:\"fork\",value:function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new c(t,e)}},{key:\"intercept\",value:function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}},{key:\"invoke\",value:function(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}},{key:\"handleError\",value:function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}},{key:\"scheduleTask\",value:function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=T)throw new Error(\"Task is missing scheduleFn.\");y(e)}return n}},{key:\"invokeTask\",value:function(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}},{key:\"cancelTask\",value:function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error(\"Task is not cancelable\");n=e.cancelFn(e)}return n}},{key:\"hasTask\",value:function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}},{key:\"_updateTaskCount\",value:function(t,e){var n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error(\"More tasks executed then were scheduled.\");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}]),t}(),l=function(){function e(n,r,o,i,a,c){if(_classCallCheck(this,e),this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,!o)throw new Error(\"callback is not defined\");this.callback=o;var u=this;this.invoke=n===I&&i&&i.useG?e.invokeTask:function(){return e.invokeTask.call(t,u,this,arguments)}}return _createClass(e,[{key:\"cancelScheduleRequest\",value:function(){this._transitionTo(k,x)}},{key:\"_transitionTo\",value:function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(\"\".concat(this.type,\" '\").concat(this.source,\"': can not transition to '\").concat(t,\"', expecting state '\").concat(e,\"'\").concat(n?\" or '\"+n+\"'\":\"\",\", was '\").concat(this._state,\"'.\"));this._state=t,t==k&&(this._zoneDelegates=null)}},{key:\"toString\",value:function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}},{key:\"toJSON\",value:function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}},{key:\"zone\",get:function(){return this._zone}},{key:\"state\",get:function(){return this._state}}],[{key:\"invokeTask\",value:function(t,e,n){t||(t=this),P++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==P&&b(),P--}}}]),e}(),p=i(\"setTimeout\"),h=i(\"Promise\"),v=i(\"then\"),d=[],g=!1;function y(e){if(0===P&&0===d.length)if(u||t[h]&&(u=t[h].resolve(0)),u){var n=u[v];n||(n=u.then),n.call(u,b)}else t[p](b,0);e&&d.push(e)}function b(){if(!g){for(g=!0;d.length;){var t=d;d=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){D.onUnhandledError(r)}}}D.microtaskDrainDone(),g=!1}}var m={name:\"NO ZONE\"},k=\"notScheduled\",x=\"scheduling\",E=\"scheduled\",w=\"running\",S=\"canceling\",_=\"unknown\",T=\"microTask\",O=\"macroTask\",I=\"eventTask\",M={},D={symbol:i,currentZoneFrame:function(){return j},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:y,showUncaughtError:function(){return!c[i(\"ignoreConsoleErrorUncaughtError\")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&\"function\"==typeof t.resolve&&(u=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},j={parent:null,zone:new c(null,null)},R=null,P=0;function N(){}r(\"Zone\",\"Zone\"),t.Zone=c}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(function(t,e,n){var r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,a=[],c=i(\"Promise\"),u=i(\"then\");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error(\"Unhandled Promise rejection:\",e instanceof Error?e.message:e,\"; Zone:\",t.zone.name,\"; Task:\",t.task&&t.task.source,\"; Value:\",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(;a.length;)for(var t=function(){var t=a.shift();try{t.zone.runGuarded((function(){throw t}))}catch(e){f(e)}};a.length;)t()};var s=i(\"unhandledPromiseRejectionHandler\");function f(t){n.onUnhandledError(t);try{var r=e[s];r&&\"function\"==typeof r&&r.call(this,t)}catch(o){}}function l(t){return t&&t.then}function p(t){return t}function h(t){return _.reject(t)}var v=i(\"state\"),d=i(\"value\"),g=i(\"finally\"),y=i(\"parentPromiseValue\"),b=i(\"parentPromiseState\");function m(t,e){return function(n){try{x(t,e,n)}catch(r){x(t,!1,r)}}}var k=i(\"currentTaskTrace\");function x(t,r,i){var c,u,s=(c=!1,function(t){return function(){c||(c=!0,t.apply(null,arguments))}});if(t===i)throw new TypeError(\"Promise resolved with itself\");if(null===t[v]){var f=null;try{\"object\"!=typeof i&&\"function\"!=typeof i||(f=i&&i.then)}catch(T){return s((function(){x(t,!1,T)}))(),t}if(!1!==r&&i instanceof _&&i.hasOwnProperty(v)&&i.hasOwnProperty(d)&&null!==i[v])w(i),x(t,i[v],i[d]);else if(!1!==r&&\"function\"==typeof f)try{f.call(i,s(m(t,r)),s(m(t,!1)))}catch(T){s((function(){x(t,!1,T)}))()}else{t[v]=r;var l=t[d];if(t[d]=i,t[g]===g&&!0===r&&(t[v]=t[b],t[d]=t[y]),!1===r&&i instanceof Error){var p=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;p&&o(i,k,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<l.length;)S(t,l[h++],l[h++],l[h++],l[h++]);if(0==l.length&&0==r){t[v]=0;try{throw new Error(\"Uncaught (in promise): \"+((u=i)&&u.toString===Object.prototype.toString?(u.constructor&&u.constructor.name||\"\")+\": \"+JSON.stringify(u):u?u.toString():Object.prototype.toString.call(u))+(i&&i.stack?\"\\n\"+i.stack:\"\"))}catch(T){var E=T;E.rejection=i,E.promise=t,E.zone=e.current,E.task=e.currentTask,a.push(E),n.scheduleMicroTask()}}}}return t}var E=i(\"rejectionHandledHandler\");function w(t){if(0===t[v]){try{var n=e[E];n&&\"function\"==typeof n&&n.call(this,{rejection:t[d],promise:t})}catch(o){}t[v]=!1;for(var r=0;r<a.length;r++)t===a[r].promise&&a.splice(r,1)}}function S(t,e,n,r,o){w(t);var i=t[v],a=i?\"function\"==typeof r?r:p:\"function\"==typeof o?o:h;e.scheduleMicroTask(\"Promise.then\",(function(){try{var r=t[d],o=!!n&&g===n[g];o&&(n[y]=r,n[b]=i);var c=e.run(a,void 0,o&&a!==h&&a!==p?[]:[r]);x(n,!0,c)}catch(u){x(n,!1,u)}}),n)}var _=function(){function t(e){_classCallCheck(this,t);if(!(this instanceof t))throw new Error(\"Must be an instanceof Promise.\");this[v]=null,this[d]=[];try{e&&e(m(this,!0),m(this,!1))}catch(n){x(this,!1,n)}}return _createClass(t,[{key:\"then\",value:function(t,n){var r=new this.constructor(null),o=e.current;return null==this[v]?this[d].push(o,r,t,n):S(this,o,r,t,n),r}},{key:\"catch\",value:function(t){return this.then(null,t)}},{key:\"finally\",value:function(t){var n=new this.constructor(null);n[g]=g;var r=e.current;return null==this[v]?this[d].push(r,n,t,t):S(this,r,n,t,t),n}},{key:Symbol.toStringTag,get:function(){return\"Promise\"}}],[{key:\"toString\",value:function(){return\"function ZoneAwarePromise() { [native code] }\"}},{key:\"resolve\",value:function(t){return x(new this(null),!0,t)}},{key:\"reject\",value:function(t){return x(new this(null),!1,t)}},{key:\"race\",value:function(t){var e,n,r=new this((function(t,r){e=t,n=r}));function o(t){e(t)}function i(t){n(t)}var a=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var p=s.value;l(p)||(p=this.resolve(p)),p.then(o,i)}}catch(h){c=!0,u=h}finally{try{a||null==f.return||f.return()}finally{if(c)throw u}}return r}},{key:\"all\",value:function(e){return t.allWithCallback(e)}},{key:\"allSettled\",value:function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:\"fulfilled\",value:t}},errorCallback:function(t){return{status:\"rejected\",reason:t}}})}},{key:\"allWithCallback\",value:function(t,e){var n,r,o=this,i=new this((function(t,e){n=t,r=e})),a=2,c=0,u=[],s=!0,f=!1,p=void 0;try{for(var h,v=function(){var t=h.value;l(t)||(t=o.resolve(t));var i=c;try{t.then((function(t){u[i]=e?e.thenCallback(t):t,0===--a&&n(u)}),(function(t){e?(u[i]=e.errorCallback(t),0===--a&&n(u)):r(t)}))}catch(s){r(s)}a++,c++},d=t[Symbol.iterator]();!(s=(h=d.next()).done);s=!0)v()}catch(g){f=!0,p=g}finally{try{s||null==d.return||d.return()}finally{if(f)throw p}}return 0===(a-=2)&&n(u),i}}]),t}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var T=t[c]=t.Promise,O=e.__symbol__(\"ZoneAwarePromise\"),I=r(t,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return t[O]?t[O]:t[c]},I.set=function(e){e===_?t[O]=e:(t[c]=e,e.prototype[u]||j(e),n.setNativePromise(e))},o(t,\"Promise\",I)),t.Promise=_;var M,D=i(\"thenPatched\");function j(t){var e=t.prototype,n=r(e,\"then\");if(!n||!1!==n.writable&&n.configurable){var o=e.then;e[u]=o,t.prototype.then=function(t,e){var n=this;return new _((function(t,e){o.call(n,t,e)})).then(t,e)},t[D]=!0}}if(n.patchThen=j,T){j(T);var R=t.fetch;\"function\"==typeof R&&(t[n.symbol(\"fetch\")]=R,t.fetch=(M=R,function(){var t=M.apply(this,arguments);if(t instanceof _)return t;var e=t.constructor;return e[D]||j(e),t}))}return Promise[e.__symbol__(\"uncaughtPromiseErrors\")]=a,_}));var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i=Zone.__symbol__(\"addEventListener\"),a=Zone.__symbol__(\"removeEventListener\"),c=Zone.__symbol__(\"\");function u(t,e){return Zone.current.wrap(t,e)}function s(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}var f=Zone.__symbol__,l=\"undefined\"!=typeof window,p=l?window:void 0,h=l&&p||\"object\"==typeof self&&self||global,v=[null];function d(t,e){for(var n=t.length-1;n>=0;n--)\"function\"==typeof t[n]&&(t[n]=u(t[n],e+\"_\"+n));return t}function g(t){return!t||!1!==t.writable&&!(\"function\"==typeof t.get&&void 0===t.set)}var y=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!(\"nw\"in h)&&void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process),m=!b&&!y&&!(!l||!p.HTMLElement),k=void 0!==h.process&&\"[object process]\"==={}.toString.call(h.process)&&!y&&!(!l||!p.HTMLElement),x={},E=function(t){if(t=t||h.event){var e=x[t.type];e||(e=x[t.type]=f(\"ON_PROPERTY\"+t.type));var n,r=this||t.target||h,o=r[e];if(m&&r===p&&\"error\"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function w(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=f(\"on\"+r+\"patched\");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var c=i.get,u=i.set,s=r.substr(2),l=x[s];l||(l=x[s]=f(\"ON_PROPERTY\"+s)),i.set=function(t){var e=this;e||n!==h||(e=h),e&&(e[l]&&e.removeEventListener(s,E),u&&u.apply(e,v),\"function\"==typeof t?(e[l]=t,e.addEventListener(s,E,!1)):e[l]=null)},i.get=function(){var t=this;if(t||n!==h||(t=h),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),\"function\"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function S(t,e,n){if(e)for(var r=0;r<e.length;r++)w(t,\"on\"+e[r],n);else{var o=[];for(var i in t)\"on\"==i.substr(0,2)&&o.push(i);for(var a=0;a<o.length;a++)w(t,o[a],n)}}var _=f(\"originalInstance\");function T(t){var n=h[t];if(n){h[f(t)]=n,h[t]=function(){var e=d(arguments,t);switch(e.length){case 0:this[_]=new n;break;case 1:this[_]=new n(e[0]);break;case 2:this[_]=new n(e[0],e[1]);break;case 3:this[_]=new n(e[0],e[1],e[2]);break;case 4:this[_]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error(\"Arg list too long.\")}},M(h[t],n);var r,o=new n((function(){}));for(r in o)\"XMLHttpRequest\"===t&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?h[t].prototype[n]=function(){return this[_][n].apply(this[_],arguments)}:e(h[t].prototype,n,{set:function(e){\"function\"==typeof e?(this[_][n]=u(e,t+\".\"+n),M(this[_][n],e)):this[_][n]=e},get:function(){return this[_][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(h[t][r]=n[r])}}function O(e,r,o){for(var i=e;i&&!i.hasOwnProperty(r);)i=n(i);!i&&e[r]&&(i=e);var a=f(r),c=null;if(i&&!(c=i[a])&&(c=i[a]=i[r],g(i&&t(i,r)))){var u=o(c,a,r);i[r]=function(){return u(this,arguments)},M(i[r],c)}return c}function I(t,e,n){var r=null;function o(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},r.apply(e.target,e.args),t}r=O(t,e,(function(t){return function(e,r){var i=n(e,r);return i.cbIdx>=0&&\"function\"==typeof r[i.cbIdx]?s(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function M(t,e){t[f(\"OriginalDelegate\")]=e}var D=!1,j=!1;function R(){try{var t=p.navigator.userAgent;if(-1!==t.indexOf(\"MSIE \")||-1!==t.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function P(){if(D)return j;D=!0;try{var t=p.navigator.userAgent;-1===t.indexOf(\"MSIE \")&&-1===t.indexOf(\"Trident/\")&&-1===t.indexOf(\"Edge/\")||(j=!0)}catch(e){}return j}Zone.__load_patch(\"toString\",(function(t){var e=Function.prototype.toString,n=f(\"OriginalDelegate\"),r=f(\"Promise\"),o=f(\"Error\"),i=function(){if(\"function\"==typeof this){var i=this[n];if(i)return\"function\"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var c=t[o];if(c)return e.call(c)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":a.call(this)}}));var N=!1;if(\"undefined\"!=typeof window)try{var A=Object.defineProperty({},\"passive\",{get:function(){N=!0}});window.addEventListener(\"test\",A,A),window.removeEventListener(\"test\",A,A)}catch(ct){N=!1}var L={useG:!0},C={},F={},Z=new RegExp(\"^\"+c+\"(\\\\w+)(true|false)$\"),z=f(\"propagationStopped\");function W(t,e,r){var o=r&&r.add||\"addEventListener\",i=r&&r.rm||\"removeEventListener\",a=r&&r.listeners||\"eventListeners\",u=r&&r.rmAll||\"removeAllListeners\",s=f(o),l=\".\"+o+\":\",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;\"object\"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;o&&\"object\"==typeof o&&o.once&&e[i].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}},v=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[C[e.type].true];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i<o.length&&(!e||!0!==e[z]);i++)p(o[i],n,e)}};function d(e,r){if(!e)return!1;var p=!0;r&&void 0!==r.useG&&(p=r.useG);var d=r&&r.vh,g=!0;r&&void 0!==r.chkDup&&(g=r.chkDup);var y=!1;r&&void 0!==r.rt&&(y=r.rt);for(var m=e;m&&!m.hasOwnProperty(o);)m=n(m);if(!m&&e[o]&&(m=e),!m)return!1;if(m[s])return!1;var k,x=r&&r.eventNameToString,E={},w=m[s]=m[o],S=m[f(i)]=m[i],_=m[f(a)]=m[a],T=m[f(u)]=m[u];function O(t){N||\"boolean\"==typeof E.options||null==E.options||(t.options=!!E.options.capture,E.options=t.options)}r&&r.prepend&&(k=m[f(r.prepend)]=m[r.prepend]);var I=p?function(t){if(!E.isExisting)return O(t),w.call(E.target,E.eventName,E.capture?v:h,E.options)}:function(t){return O(t),w.call(E.target,E.eventName,t.invoke,E.options)},D=p?function(t){if(!t.isRemoved){var e,n=C[t.eventName];n&&(e=n[t.capture?\"true\":\"false\"]);var r=e&&t.target[e];if(r)for(var o=0;o<r.length;o++)if(r[o]===t){r.splice(o,1),t.isRemoved=!0,0===r.length&&(t.allRemoved=!0,t.target[e]=null);break}}if(t.allRemoved)return S.call(t.target,t.eventName,t.capture?v:h,t.options)}:function(t){return S.call(t.target,t.eventName,t.invoke,t.options)},j=r&&r.diff?r.diff:function(t,e){var n=typeof e;return\"function\"===n&&t.callback===e||\"object\"===n&&t.originalDelegate===e},R=Zone[f(\"BLACK_LISTED_EVENTS\")],P=function(e,n,o,i){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){var s=this||t,f=arguments[0];r&&r.transferEventName&&(f=r.transferEventName(f));var l=arguments[1];if(!l)return e.apply(this,arguments);if(b&&\"uncaughtException\"===f)return e.apply(this,arguments);var h=!1;if(\"function\"!=typeof l){if(!l.handleEvent)return e.apply(this,arguments);h=!0}if(!d||d(e,l,s,arguments)){var v=arguments[2];if(R)for(var y=0;y<R.length;y++)if(f===R[y])return e.apply(this,arguments);var m,k=!1;void 0===v?m=!1:!0===v?m=!0:!1===v?m=!1:(m=!!v&&!!v.capture,k=!!v&&!!v.once);var w,S=Zone.current,_=C[f];if(_)w=_[m?\"true\":\"false\"];else{var T=(x?x(f):f)+\"false\",O=(x?x(f):f)+\"true\",I=c+T,M=c+O;C[f]={},C[f].false=I,C[f].true=M,w=m?M:I}var D,P=s[w],A=!1;if(P){if(A=!0,g)for(var Z=0;Z<P.length;Z++)if(j(P[Z],l))return}else P=s[w]=[];var z=s.constructor.name,W=F[z];W&&(D=W[f]),D||(D=z+n+(x?x(f):f)),E.options=v,k&&(E.options.once=!1),E.target=s,E.capture=m,E.eventName=f,E.isExisting=A;var G=p?L:void 0;G&&(G.taskData=E);var U=S.scheduleEventTask(D,l,G,o,i);return E.target=null,G&&(G.taskData=null),k&&(v.once=!0),(N||\"boolean\"!=typeof U.options)&&(U.options=v),U.target=s,U.capture=m,U.eventName=f,h&&(U.originalDelegate=l),u?P.unshift(U):P.push(U),a?s:void 0}}};return m[o]=P(w,l,I,D,y),k&&(m.prependListener=P(k,\".prependListener:\",(function(t){return k.call(E.target,E.eventName,t.invoke,E.options)}),D,y,!0)),m[i]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));var o,i=arguments[2];o=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var a=arguments[1];if(!a)return S.apply(this,arguments);if(!d||d(S,a,e,arguments)){var u,s=C[n];s&&(u=s[o?\"true\":\"false\"]);var f=u&&e[u];if(f)for(var l=0;l<f.length;l++){var p=f[l];if(j(p,a))return f.splice(l,1),p.isRemoved=!0,0===f.length&&(p.allRemoved=!0,e[u]=null,\"string\"==typeof n)&&(e[c+\"ON_PROPERTY\"+n]=null),p.zone.cancelTask(p),y?e:void 0}return S.apply(this,arguments)}},m[a]=function(){var e=this||t,n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));for(var o=[],i=G(e,x?x(n):n),a=0;a<i.length;a++){var c=i[a];o.push(c.originalDelegate?c.originalDelegate:c.callback)}return o},m[u]=function(){var e=this||t,n=arguments[0];if(n){r&&r.transferEventName&&(n=r.transferEventName(n));var o=C[n];if(o){var a=e[o.false],c=e[o.true];if(a)for(var s=a.slice(),f=0;f<s.length;f++){var l=s[f];this[i].call(this,n,l.originalDelegate?l.originalDelegate:l.callback,l.options)}if(c)for(var p=c.slice(),h=0;h<p.length;h++){var v=p[h];this[i].call(this,n,v.originalDelegate?v.originalDelegate:v.callback,v.options)}}}else{for(var d=Object.keys(e),g=0;g<d.length;g++){var b=Z.exec(d[g]),m=b&&b[1];m&&\"removeListener\"!==m&&this[u].call(this,m)}this[u].call(this,\"removeListener\")}if(y)return this},M(m[o],w),M(m[i],S),T&&M(m[u],T),_&&M(m[a],_),!0}for(var g=[],y=0;y<e.length;y++)g[y]=d(e[y],r);return g}function G(t,e){var n=[];for(var r in t){var o=Z.exec(r),i=o&&o[1];if(i&&(!e||i===e)){var a=t[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function U(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,\"stopImmediatePropagation\",(function(t){return function(e,n){e[z]=!0,t&&t.apply(e,n)}}))}function H(t,e,n,r,o){var i=Zone.__symbol__(r);if(!e[i]){var a=e[i]=e[r];e[r]=function(i,c,u){return c&&c.prototype&&o.forEach((function(e){var o=\"\".concat(n,\".\").concat(r,\"::\")+e,i=c.prototype;if(i.hasOwnProperty(e)){var a=t.ObjectGetOwnPropertyDescriptor(i,e);a&&a.value?(a.value=t.wrapWithCurrentZone(a.value,o),t._redefineProperty(c.prototype,e,a)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))})),a.call(e,i,c,u)},t.attachOriginToPatched(e[r],a)}}var B=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplyconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],K=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],V=[\"load\"],Y=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],q=[\"bounce\",\"finish\",\"start\"],X=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],J=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],Q=[\"close\",\"error\",\"open\",\"message\"],$=[\"error\",\"message\"],tt=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],B,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function et(t,e,n){if(!n||0===n.length)return e;var r=n.filter((function(e){return e.target===t}));if(!r||0===r.length)return e;var o=r[0].ignoreProperties;return e.filter((function(t){return-1===o.indexOf(t)}))}function nt(t,e,n,r){t&&S(t,et(t,e,n),r)}function rt(t,e){if((!b||k)&&!Zone[t.symbol(\"patchEvents\")]){var r=\"undefined\"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(m){var i=window,a=R?[{target:i,ignoreProperties:[\"error\"]}]:[];nt(i,tt.concat([\"messageerror\"]),o?o.concat(a):o,n(i)),nt(Document.prototype,tt,o),void 0!==i.SVGElement&&nt(i.SVGElement.prototype,tt,o),nt(Element.prototype,tt,o),nt(HTMLElement.prototype,tt,o),nt(HTMLMediaElement.prototype,K,o),nt(HTMLFrameSetElement.prototype,B.concat(Y),o),nt(HTMLBodyElement.prototype,B.concat(Y),o),nt(HTMLFrameElement.prototype,V,o),nt(HTMLIFrameElement.prototype,V,o);var c=i.HTMLMarqueeElement;c&&nt(c.prototype,q,o);var u=i.Worker;u&&nt(u.prototype,$,o)}var s=e.XMLHttpRequest;s&&nt(s.prototype,X,o);var f=e.XMLHttpRequestEventTarget;f&&nt(f&&f.prototype,X,o),\"undefined\"!=typeof IDBIndex&&(nt(IDBIndex.prototype,J,o),nt(IDBRequest.prototype,J,o),nt(IDBOpenDBRequest.prototype,J,o),nt(IDBDatabase.prototype,J,o),nt(IDBTransaction.prototype,J,o),nt(IDBCursor.prototype,J,o)),r&&nt(WebSocket.prototype,Q,o)}}Zone.__load_patch(\"util\",(function(n,i,a){a.patchOnProperties=S,a.patchMethod=O,a.bindArguments=d,a.patchMacroTask=I;var s=i.__symbol__(\"BLACK_LISTED_EVENTS\"),f=i.__symbol__(\"UNPATCHED_EVENTS\");n[f]&&(n[s]=n[f]),n[s]&&(i[s]=i[f]=n[s]),a.patchEventPrototype=U,a.patchEventTarget=W,a.isIEOrEdge=P,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=r,a.ArraySlice=o,a.patchClass=T,a.wrapWithCurrentZone=u,a.filterProperties=et,a.attachOriginToPatched=M,a._redefineProperty=Object.defineProperty,a.patchCallbacks=H,a.getGlobalObjects=function(){return{globalSources:F,zoneSymbolEventNames:C,eventNames:tt,isBrowser:m,isMix:k,isNode:b,TRUE_STR:\"true\",FALSE_STR:\"false\",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:\"addEventListener\",REMOVE_EVENT_LISTENER_STR:\"removeEventListener\"}}}));var ot=f(\"zoneTask\");function it(t,e,n,r){var o=null,i=null;n+=r;var a={};function c(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||(\"number\"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[ot]=null))}},n.handleId=o.apply(t,n.args),e}function u(t){return i(t.data.handleId)}o=O(t,e+=r,(function(n){return function(o,i){if(\"function\"==typeof i[0]){var f=s(e,i[0],{isPeriodic:\"Interval\"===r,delay:\"Timeout\"===r||\"Interval\"===r?i[1]||0:void 0,args:i},c,u);if(!f)return f;var l=f.data.handleId;return\"number\"==typeof l?a[l]=f:l&&(l[ot]=f),l&&l.ref&&l.unref&&\"function\"==typeof l.ref&&\"function\"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),\"number\"==typeof l||l?l:f}return n.apply(t,i)}})),i=O(t,n,(function(e){return function(n,r){var o,i=r[0];\"number\"==typeof i?o=a[i]:(o=i&&i[ot])||(o=i),o&&\"string\"==typeof o.type?\"notScheduled\"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(\"number\"==typeof i?delete a[i]:i&&(i[ot]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))}function at(t,e){if(!Zone[e.symbol(\"patchEventTarget\")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,c=n.ZONE_SYMBOL_PREFIX,u=0;u<r.length;u++){var s=r[u],f=c+(s+a),l=c+(s+i);o[s]={},o[s][a]=f,o[s][i]=l}var p=t.EventTarget;return p&&p.prototype?(e.patchEventTarget(t,[p&&p.prototype]),!0):void 0}}Zone.__load_patch(\"legacy\",(function(t){var e=t[Zone.__symbol__(\"legacyPatch\")];e&&e()})),Zone.__load_patch(\"timers\",(function(t){it(t,\"set\",\"clear\",\"Timeout\"),it(t,\"set\",\"clear\",\"Interval\"),it(t,\"set\",\"clear\",\"Immediate\")})),Zone.__load_patch(\"requestAnimationFrame\",(function(t){it(t,\"request\",\"cancel\",\"AnimationFrame\"),it(t,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),it(t,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")})),Zone.__load_patch(\"blocking\",(function(t,e){for(var n=[\"alert\",\"prompt\",\"confirm\"],r=0;r<n.length;r++)O(t,n[r],(function(n,r,o){return function(r,i){return e.current.run(n,t,i,o)}}))})),Zone.__load_patch(\"EventTarget\",(function(t,e,n){!function(t,e){e.patchEventPrototype(t,e)}(t,n),at(t,n);var r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype]),T(\"MutationObserver\"),T(\"WebKitMutationObserver\"),T(\"IntersectionObserver\"),T(\"FileReader\")})),Zone.__load_patch(\"on_property\",(function(t,e,n){rt(n,t)})),Zone.__load_patch(\"customElements\",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&t.customElements&&\"customElements\"in t&&e.patchCallbacks(e,t.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(t,n)})),Zone.__load_patch(\"XHR\",(function(t,e){!function(t){var p=t.XMLHttpRequest;if(p){var h=p.prototype,v=h[i],d=h[a];if(!v){var g=t.XMLHttpRequestEventTarget;if(g){var y=g.prototype;v=y[i],d=y[a]}}var b=O(h,\"open\",(function(){return function(t,e){return t[r]=0==e[2],t[u]=e[1],b.apply(t,e)}})),m=f(\"fetchTaskAborting\"),k=f(\"fetchTaskScheduling\"),x=O(h,\"send\",(function(){return function(t,n){if(!0===e.current[k])return x.apply(t,n);if(t[r])return x.apply(t,n);var o={target:t,url:t[u],isPeriodic:!1,args:n,aborted:!1},i=s(\"XMLHttpRequest.send\",S,o,w,_);t&&!0===t[l]&&!o.aborted&&\"scheduled\"===i.state&&i.invoke()}})),E=O(h,\"abort\",(function(){return function(t,r){var o=t[n];if(o&&\"string\"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[m])return E.apply(t,r)}}))}function w(t){var r=t.data,u=r.target;u[c]=!1,u[l]=!1;var s=u[o];v||(v=u[i],d=u[a]),s&&d.call(u,\"readystatechange\",s);var f=u[o]=function(){if(u.readyState===u.DONE)if(!r.aborted&&u[c]&&\"scheduled\"===t.state){var n=u[e.__symbol__(\"loadfalse\")];if(n&&n.length>0){var o=t.invoke;t.invoke=function(){for(var n=u[e.__symbol__(\"loadfalse\")],i=0;i<n.length;i++)n[i]===t&&n.splice(i,1);r.aborted||\"scheduled\"!==t.state||o.call(t)},n.push(t)}else t.invoke()}else r.aborted||!1!==u[c]||(u[l]=!0)};return v.call(u,\"readystatechange\",f),u[n]||(u[n]=t),x.apply(u,r.args),u[c]=!0,t}function S(){}function _(t){var e=t.data;return e.aborted=!0,E.apply(e.target,e.args)}}(t);var n=f(\"xhrTask\"),r=f(\"xhrSync\"),o=f(\"xhrListener\"),c=f(\"xhrScheduled\"),u=f(\"xhrURL\"),l=f(\"xhrErrorBeforeScheduled\")})),Zone.__load_patch(\"geolocation\",(function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var i=n[o],a=e[i];if(a){if(!g(t(e,i)))return\"continue\";e[i]=function(t){var e=function(){return t.apply(this,d(arguments,r+\".\"+i))};return M(e,t),e}(a)}},i=0;i<n.length;i++)o(i)}(e.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])})),Zone.__load_patch(\"PromiseRejectionEvent\",(function(t,e){function n(e){return function(n){G(t,e).forEach((function(r){var o=t.PromiseRejectionEvent;if(o){var i=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(i)}}))}}t.PromiseRejectionEvent&&(e[f(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),e[f(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))}))})?r.call(e,n,e,t):r)||(t.exports=o)},pNMO:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"2oRo\"),i=n(\"0GbY\"),a=n(\"xDBR\"),c=n(\"g6v/\"),u=n(\"STAE\"),s=n(\"/b8u\"),f=n(\"0Dky\"),l=n(\"UTVS\"),p=n(\"6LWA\"),h=n(\"hh1v\"),v=n(\"glrk\"),d=n(\"ewvW\"),g=n(\"/GqU\"),y=n(\"wE6v\"),b=n(\"XGwC\"),m=n(\"fHMY\"),k=n(\"33Wh\"),x=n(\"JBy8\"),E=n(\"BX/b\"),w=n(\"dBg+\"),S=n(\"Bs8V\"),_=n(\"m/L8\"),T=n(\"0eef\"),O=n(\"kRJp\"),I=n(\"busE\"),M=n(\"VpIT\"),D=n(\"93I0\"),j=n(\"0BK2\"),R=n(\"kOOl\"),P=n(\"tiKp\"),N=n(\"wDLo\"),A=n(\"dG/n\"),L=n(\"1E5z\"),C=n(\"afO8\"),F=n(\"tycR\").forEach,Z=D(\"hidden\"),z=P(\"toPrimitive\"),W=C.set,G=C.getterFor(\"Symbol\"),U=Object.prototype,H=o.Symbol,B=i(\"JSON\",\"stringify\"),K=S.f,V=_.f,Y=E.f,q=T.f,X=M(\"symbols\"),J=M(\"op-symbols\"),Q=M(\"string-to-symbol-registry\"),$=M(\"symbol-to-string-registry\"),tt=M(\"wks\"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=c&&f((function(){return 7!=m(V({},\"a\",{get:function(){return V(this,\"a\",{value:7}).a}})).a}))?function(t,e,n){var r=K(U,e);r&&delete U[e],V(t,e,n),r&&t!==U&&V(U,e,r)}:V,ot=function(t,e){var n=X[t]=m(H.prototype);return W(n,{type:\"Symbol\",tag:t,description:e}),c||(n.description=e),n},it=u&&\"symbol\"==typeof H.iterator?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof H},at=function t(e,n,r){e===U&&t(J,n,r),v(e);var o=y(n,!0);return v(r),l(X,o)?(r.enumerable?(l(e,Z)&&e[Z][o]&&(e[Z][o]=!1),r=m(r,{enumerable:b(0,!1)})):(l(e,Z)||V(e,Z,b(1,{})),e[Z][o]=!0),rt(e,o,r)):V(e,o,r)},ct=function(t,e){v(t);var n=g(e),r=k(n).concat(lt(n));return F(r,(function(e){c&&!ut.call(n,e)||at(t,e,n[e])})),t},ut=function(t){var e=y(t,!0),n=q.call(this,e);return!(this===U&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,Z)&&this[Z][e])||n)},st=function(t,e){var n=g(t),r=y(e,!0);if(n!==U||!l(X,r)||l(J,r)){var o=K(n,r);return!o||!l(X,r)||l(n,Z)&&n[Z][r]||(o.enumerable=!0),o}},ft=function(t){var e=Y(g(t)),n=[];return F(e,(function(t){l(X,t)||l(j,t)||n.push(t)})),n},lt=function(t){var e=t===U,n=Y(e?J:g(t)),r=[];return F(n,(function(t){!l(X,t)||e&&!l(U,t)||r.push(X[t])})),r};u||(I((H=function(){if(this instanceof H)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=R(t),n=function t(n){this===U&&t.call(J,n),l(this,Z)&&l(this[Z],e)&&(this[Z][e]=!1),rt(this,e,b(1,n))};return c&&nt&&rt(U,e,{configurable:!0,set:n}),ot(e,t)}).prototype,\"toString\",(function(){return G(this).tag})),T.f=ut,_.f=at,S.f=st,x.f=E.f=ft,w.f=lt,c&&(V(H.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||I(U,\"propertyIsEnumerable\",ut,{unsafe:!0}))),s||(N.f=function(t){return ot(P(t),t)}),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:H}),F(k(tt),(function(t){A(t)})),r({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=H(e);return Q[e]=n,$[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+\" is not a symbol\");if(l($,t))return $[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:\"Object\",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?m(t):ct(m(t),e)},defineProperty:at,defineProperties:ct,getOwnPropertyDescriptor:st}),r({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:\"Object\",stat:!0,forced:f((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(d(t))}}),B&&r({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=H();return\"[null]\"!=B([t])||\"{}\"!=B({a:t})||\"{}\"!=B(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if(\"function\"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,B.apply(null,o)}}),H.prototype[z]||O(H.prototype,z,H.prototype.valueOf),L(H,\"Symbol\"),j[Z]=!0},piMb:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").every;r({target:\"Array\",proto:!0,forced:n(\"swFL\")(\"every\")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},pjDv:function(t,e,n){var r=n(\"I+eb\"),o=n(\"TfTi\");r({target:\"Array\",stat:!0,forced:!n(\"HH4o\")((function(t){Array.from(t)}))},{from:o})},ppGB:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},\"qHT+\":function(t,e,n){var r=n(\"I+eb\"),o=n(\"FF6l\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{copyWithin:o}),i(\"copyWithin\")},qePV:function(t,e,n){\"use strict\";var r=n(\"g6v/\"),o=n(\"2oRo\"),i=n(\"lMq5\"),a=n(\"busE\"),c=n(\"UTVS\"),u=n(\"xrYK\"),s=n(\"cVYH\"),f=n(\"wE6v\"),l=n(\"0Dky\"),p=n(\"fHMY\"),h=n(\"JBy8\").f,v=n(\"Bs8V\").f,d=n(\"m/L8\").f,g=n(\"WKiH\").trim,y=o.Number,b=y.prototype,m=\"Number\"==u(p(b)),k=function(t){var e,n,r,o,i,a,c,u,s=f(t,!1);if(\"string\"==typeof s&&s.length>2)if(43===(e=(s=g(s)).charCodeAt(0))||45===e){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;c<a;c++)if((u=i.charCodeAt(c))<48||u>o)return NaN;return parseInt(i,r)}return+s};if(i(\"Number\",!y(\" 0o1\")||!y(\"0b1\")||y(\"+0x1\"))){for(var x,E=function t(e){var n=arguments.length<1?0:e,r=this;return r instanceof t&&(m?l((function(){b.valueOf.call(r)})):\"Number\"!=u(r))?s(new y(k(n)),r,t):k(n)},w=r?h(y):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),S=0;w.length>S;S++)c(y,x=w[S])&&!c(E,x)&&d(E,x,v(y,x));E.prototype=b,b.constructor=E,a(o,\"Number\",E)}},qxPZ:function(t,e,n){var r=n(\"tiKp\")(\"match\");t.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(n){try{return e[r]=!1,\"/./\"[t](e)}catch(o){}}return!1}},\"r/Vq\":function(t,e,n){n(\"I+eb\")({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},r5Og:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.seal;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(t){return u&&o(t)?u(i(t)):t}})},rKzb:function(t,e,n){\"use strict\";var r=n(\"4syw\"),o=n(\"8YOa\").getWeakData,i=n(\"glrk\"),a=n(\"hh1v\"),c=n(\"GarU\"),u=n(\"ImZN\"),s=n(\"tycR\"),f=n(\"UTVS\"),l=n(\"afO8\"),p=l.set,h=l.getterFor,v=s.find,d=s.findIndex,g=0,y=function(t){return t.frozen||(t.frozen=new b)},b=function(){this.entries=[]},m=function(t,e){return v(t.entries,(function(t){return t[0]===e}))};b.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=d(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e),p(t,{type:e,id:g++,frozen:void 0}),null!=r&&u(r,t[s],t,n)})),v=h(e),d=function(t,e,n){var r=v(t),a=o(i(e),!0);return!0===a?y(r).set(e,n):a[r.id]=n,t};return r(l.prototype,{delete:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).delete(t):n&&f(n,e.id)&&delete n[e.id]},has:function(t){var e=v(this);if(!a(t))return!1;var n=o(t);return!0===n?y(e).has(t):n&&f(n,e.id)}}),r(l.prototype,n?{get:function(t){var e=v(this);if(a(t)){var n=o(t);return!0===n?y(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return d(this,t,e)}}:{add:function(t){return d(this,t,!0)}}),l}}},rMz7:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ZOXb\");r({target:\"Date\",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},rNhl:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({global:!0,forced:parseFloat!=o},{parseFloat:o})},rW0t:function(t,e,n){\"use strict\";var r=n(\"glrk\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},rpNk:function(t,e,n){\"use strict\";var r,o,i,a=n(\"4WOD\"),c=n(\"kRJp\"),u=n(\"UTVS\"),s=n(\"tiKp\"),f=n(\"xDBR\"),l=s(\"iterator\"),p=!1;[].keys&&(\"next\"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):p=!0),null==r&&(r={}),f||u(r,l)||c(r,l,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},s5pE:function(t,e,n){var r=n(\"0GbY\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},sEFX:function(t,e,n){\"use strict\";var r=n(\"AO7/\"),o=n(\"9d/t\");t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},sMBO:function(t,e,n){var r=n(\"g6v/\"),o=n(\"m/L8\").f,i=Function.prototype,a=i.toString,c=/^\\s*function ([^ (]*)/;!r||\"name\"in i||o(i,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return\"\"}}})},swFL:function(t,e,n){\"use strict\";var r=n(\"0Dky\");t.exports=function(t,e){var n=[][t];return!n||!r((function(){n.call(null,e||function(){throw 1},1)}))}},tW5y:function(t,e,n){\"use strict\";var r=n(\"hh1v\"),o=n(\"m/L8\"),i=n(\"4WOD\"),a=n(\"tiKp\")(\"hasInstance\"),c=Function.prototype;a in c||o.f(c,a,{value:function(t){if(\"function\"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},tXUg:function(t,e,n){var r,o,i,a,c,u,s,f,l=n(\"2oRo\"),p=n(\"Bs8V\").f,h=n(\"xrYK\"),v=n(\"LPSS\").set,d=n(\"tinx\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.process,b=l.Promise,m=\"process\"==h(y),k=p(l,\"queueMicrotask\"),x=k&&k.value;x||(r=function(){var t,e;for(m&&(t=y.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},m?a=function(){y.nextTick(r)}:g&&!d?(c=!0,u=document.createTextNode(\"\"),new g(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(s=b.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){v.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},tiKp:function(t,e,n){var r=n(\"2oRo\"),o=n(\"VpIT\"),i=n(\"UTVS\"),a=n(\"kOOl\"),c=n(\"STAE\"),u=n(\"/b8u\"),s=o(\"wks\"),f=r.Symbol,l=u?f:a;t.exports=function(t){return i(s,t)||(s[t]=c&&i(f,t)?f[t]:l(\"Symbol.\"+t)),s[t]}},tinx:function(t,e,n){var r=n(\"s5pE\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},tjZM:function(t,e,n){n(\"dG/n\")(\"asyncIterator\")},tkto:function(t,e,n){var r=n(\"I+eb\"),o=n(\"ewvW\"),i=n(\"33Wh\");r({target:\"Object\",stat:!0,forced:n(\"0Dky\")((function(){i(1)}))},{keys:function(t){return i(o(t))}})},\"tl/u\":function(t,e,n){var r=n(\"I+eb\"),o=Math.ceil,i=Math.floor;r({target:\"Math\",stat:!0},{trunc:function(t){return(t>0?i:o)(t)}})},toAj:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"ppGB\"),i=n(\"QIpd\"),a=n(\"EUja\"),c=n(\"0Dky\"),u=1..toFixed,s=Math.floor,f=function t(e,n,r){return 0===n?r:n%2==1?t(e,n-1,r*e):t(e*e,n/2,r)};r({target:\"Number\",proto:!0,forced:u&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(t){var e,n,r,c,u=i(this),l=o(t),p=[0,0,0,0,0,0],h=\"\",v=\"0\",d=function(t,e){for(var n=-1,r=e;++n<6;)p[n]=(r+=t*p[n])%1e7,r=s(r/1e7)},g=function(t){for(var e=6,n=0;--e>=0;)p[e]=s((n+=p[e])/t),n=n%t*1e7},y=function(){for(var t=6,e=\"\";--t>=0;)if(\"\"!==e||0===t||0!==p[t]){var n=String(p[t]);e=\"\"===e?n:e+a.call(\"0\",7-n.length)+n}return e};if(l<0||l>20)throw RangeError(\"Incorrect fraction digits\");if(u!=u)return\"NaN\";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h=\"-\",u=-u),u>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(u*f(2,69,1))-69)<0?u*f(2,-e,1):u/f(2,e,1),n*=4503599627370496,(e=52-e)>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(f(10,r,1),0),r=e-1;r>=23;)g(1<<23),r-=23;g(1<<r),d(1,1),g(2),v=y()}else d(0,n),d(1<<-e,0),v=y()+a.call(\"0\",l);return l>0?h+((c=v.length)<=l?\"0.\"+a.call(\"0\",l-c)+v:v.slice(0,c-l)+\".\"+v.slice(c-l)):h+v}})},tycR:function(t,e,n){var r=n(\"+MLx\"),o=n(\"RK3t\"),i=n(\"ewvW\"),a=n(\"UMSQ\"),c=n(\"ZfDv\"),u=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,v,d,g){for(var y,b,m=i(h),k=o(m),x=r(v,d,3),E=a(k.length),w=0,S=g||c,_=e?S(h,E):n?S(h,0):void 0;E>w;w++)if((p||w in k)&&(b=x(y=k[w],w,m),t))if(e)_[w]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:u.call(_,y)}else if(f)return!1;return l?-1:s||f?f:_}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},uL8W:function(t,e,n){n(\"I+eb\")({target:\"Object\",stat:!0,sham:!n(\"g6v/\")},{create:n(\"fHMY\")})},uqXc:function(t,e,n){var r=n(\"I+eb\"),o=n(\"5Yz+\");r({target:\"Array\",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},uy83:function(t,e,n){var r=n(\"0Dky\");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},vAFs:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=Math.imul;r({target:\"Math\",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},vo4V:function(t,e,n){var r=n(\"90hW\"),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=o(t),f=r(t);return i<s?f*(i/s/c+1/a-1/a)*s*c:(n=(e=(1+c/a)*i)-(e-i))>u||n!=n?f*(1/0):f*n}},w1rZ:function(t,e,n){var r=n(\"I+eb\"),o=n(\"b+VT\");r({target:\"Number\",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},wDLo:function(t,e,n){var r=n(\"tiKp\");e.f=r},wE6v:function(t,e,n){var r=n(\"hh1v\");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},wLYn:function(t,e,n){n(\"I+eb\")({target:\"Function\",proto:!0},{bind:n(\"BTho\")})},x0AG:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"tycR\").findIndex,i=n(\"RNIs\"),a=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){a=!1})),r({target:\"Array\",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(\"findIndex\")},x83w:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"fixed\")},{fixed:function(){return o(this,\"tt\",\"\",\"\")}})},xDBR:function(t,e){t.exports=!1},xdBZ:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"italics\")},{italics:function(){return o(this,\"i\",\"\",\"\")}})},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},xs3f:function(t,e,n){var r=n(\"2oRo\"),o=n(\"zk60\"),i=r[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});t.exports=i},yQYn:function(t,e,n){var r=n(\"I+eb\"),o=n(\"0Dky\"),i=n(\"hh1v\"),a=Object.isExtensible;r({target:\"Object\",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(t){return!!i(t)&&(!a||a(t))}})},yWo2:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"small\")},{small:function(){return o(this,\"small\",\"\",\"\")}})},yXV3:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"TWQb\").indexOf,i=n(\"swFL\"),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,u=i(\"indexOf\");r({target:\"Array\",proto:!0,forced:c||u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},yiG3:function(t,e,n){n(\"I+eb\")({target:\"Math\",stat:!0},{log1p:n(\"HsHA\")})},yoRg:function(t,e,n){var r=n(\"UTVS\"),o=n(\"/GqU\"),i=n(\"TWQb\").indexOf,a=n(\"0BK2\");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)!r(a,n)&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}},yyme:function(t,e,n){var r=n(\"I+eb\"),o=n(\"gdVl\"),i=n(\"RNIs\");r({target:\"Array\",proto:!0},{fill:o}),i(\"fill\")},zBJ4:function(t,e,n){var r=n(\"2oRo\"),o=n(\"hh1v\"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},zHFu:function(t,e,n){\"use strict\";var r=n(\"I+eb\"),o=n(\"hXpO\");r({target:\"String\",proto:!0,forced:n(\"6unK\")(\"bold\")},{bold:function(){return o(this,\"b\",\"\",\"\")}})},zKZe:function(t,e,n){var r=n(\"I+eb\"),o=n(\"YNrV\");r({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},zfnd:function(t,e,n){var r=n(\"glrk\"),o=n(\"hh1v\"),i=n(\"8GlL\");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},zk60:function(t,e,n){var r=n(\"2oRo\"),o=n(\"kRJp\");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},zuhW:function(t,e,n){var r=n(\"I+eb\"),o=n(\"hh1v\"),i=n(\"8YOa\").onFreeze,a=n(\"uy83\"),c=n(\"0Dky\"),u=Object.preventExtensions;r({target:\"Object\",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(t){return u&&o(t)?u(i(t)):t}})}},[[1,0]]]);"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/dist/example/runtime-es2015.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/dist/example/runtime-es5.0811dcefd377500b5b1a.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/dist/example/styles.18138bb15891daf44583.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;order:-1}.order-last{-webkit-box-ordinal-group:14;order:13}.order-0{-webkit-box-ordinal-group:1;order:0}.order-1{-webkit-box-ordinal-group:2;order:1}.order-2{-webkit-box-ordinal-group:3;order:2}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-5{-webkit-box-ordinal-group:6;order:5}.order-6{-webkit-box-ordinal-group:7;order:6}.order-7{-webkit-box-ordinal-group:8;order:7}.order-8{-webkit-box-ordinal-group:9;order:8}.order-9{-webkit-box-ordinal-group:10;order:9}.order-10{-webkit-box-ordinal-group:11;order:10}.order-11{-webkit-box-ordinal-group:12;order:11}.order-12{-webkit-box-ordinal-group:13;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;order:13}.order-sm-0{-webkit-box-ordinal-group:1;order:0}.order-sm-1{-webkit-box-ordinal-group:2;order:1}.order-sm-2{-webkit-box-ordinal-group:3;order:2}.order-sm-3{-webkit-box-ordinal-group:4;order:3}.order-sm-4{-webkit-box-ordinal-group:5;order:4}.order-sm-5{-webkit-box-ordinal-group:6;order:5}.order-sm-6{-webkit-box-ordinal-group:7;order:6}.order-sm-7{-webkit-box-ordinal-group:8;order:7}.order-sm-8{-webkit-box-ordinal-group:9;order:8}.order-sm-9{-webkit-box-ordinal-group:10;order:9}.order-sm-10{-webkit-box-ordinal-group:11;order:10}.order-sm-11{-webkit-box-ordinal-group:12;order:11}.order-sm-12{-webkit-box-ordinal-group:13;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;order:-1}.order-md-last{-webkit-box-ordinal-group:14;order:13}.order-md-0{-webkit-box-ordinal-group:1;order:0}.order-md-1{-webkit-box-ordinal-group:2;order:1}.order-md-2{-webkit-box-ordinal-group:3;order:2}.order-md-3{-webkit-box-ordinal-group:4;order:3}.order-md-4{-webkit-box-ordinal-group:5;order:4}.order-md-5{-webkit-box-ordinal-group:6;order:5}.order-md-6{-webkit-box-ordinal-group:7;order:6}.order-md-7{-webkit-box-ordinal-group:8;order:7}.order-md-8{-webkit-box-ordinal-group:9;order:8}.order-md-9{-webkit-box-ordinal-group:10;order:9}.order-md-10{-webkit-box-ordinal-group:11;order:10}.order-md-11{-webkit-box-ordinal-group:12;order:11}.order-md-12{-webkit-box-ordinal-group:13;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;order:13}.order-lg-0{-webkit-box-ordinal-group:1;order:0}.order-lg-1{-webkit-box-ordinal-group:2;order:1}.order-lg-2{-webkit-box-ordinal-group:3;order:2}.order-lg-3{-webkit-box-ordinal-group:4;order:3}.order-lg-4{-webkit-box-ordinal-group:5;order:4}.order-lg-5{-webkit-box-ordinal-group:6;order:5}.order-lg-6{-webkit-box-ordinal-group:7;order:6}.order-lg-7{-webkit-box-ordinal-group:8;order:7}.order-lg-8{-webkit-box-ordinal-group:9;order:8}.order-lg-9{-webkit-box-ordinal-group:10;order:9}.order-lg-10{-webkit-box-ordinal-group:11;order:10}.order-lg-11{-webkit-box-ordinal-group:12;order:11}.order-lg-12{-webkit-box-ordinal-group:13;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;order:13}.order-xl-0{-webkit-box-ordinal-group:1;order:0}.order-xl-1{-webkit-box-ordinal-group:2;order:1}.order-xl-2{-webkit-box-ordinal-group:3;order:2}.order-xl-3{-webkit-box-ordinal-group:4;order:3}.order-xl-4{-webkit-box-ordinal-group:5;order:4}.order-xl-5{-webkit-box-ordinal-group:6;order:5}.order-xl-6{-webkit-box-ordinal-group:7;order:6}.order-xl-7{-webkit-box-ordinal-group:8;order:7}.order-xl-8{-webkit-box-ordinal-group:9;order:8}.order-xl-9{-webkit-box-ordinal-group:10;order:9}.order-xl-10{-webkit-box-ordinal-group:11;order:10}.order-xl-11{-webkit-box-ordinal-group:12;order:11}.order-xl-12{-webkit-box-ordinal-group:13;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-webkit-box-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;flex:1}.list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { ProductTableComponent } from \"./components/productTable.component\";\nimport { ProductFormComponent } from \"./components/productForm.component\";\n// import { PaDiscountDisplayComponent } from \"./discountDisplay.component\";\n// import { PaDiscountEditorComponent } from \"./discountEditor.component\";\nimport { ModelModule } from \"./model/model.module\";\nimport { CommonModule } from \"./common/common.module\";\nimport { ComponentsModule } from \"./components/components.module\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule,\n        ModelModule, CommonModule, ComponentsModule],\n    declarations: [ProductComponent],\n    bootstrap: [ProductFormComponent, ProductTableComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/common/addTax.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\n\n@Pipe({\n    name: \"addTax\"\n})\nexport class PaAddTaxPipe {\n\n    defaultRate: number = 10;\n\n    transform(value: any, rate?: any): number {\n        let valueNumber = Number.parseFloat(value);\n        let rateNumber = rate == undefined ? \n            this.defaultRate : Number.parseInt(rate);\n        return valueNumber + (valueNumber * (rateNumber / 100));\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/common/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n         SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n            from \"@angular/core\";\nimport { Product } from \"../model/product.model\";            \n\n@Directive({\n    selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n    @Input(\"pa-attr\")\n    @HostBinding(\"class\")\n    bgClass: string;\n\n    @Input(\"pa-product\")\n    product: Product;\n\n    @Output(\"pa-category\")\n    click = new EventEmitter<string>();\n\n    @HostListener(\"click\")\n    triggerCustomEvent() {\n        if (this.product != null) {\n            this.click.emit(this.product.category);\n        }\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/common/categoryFilter.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\n\n@Pipe({\n    name: \"filter\",\n    pure: false\n})\nexport class PaCategoryFilterPipe {\n\n    transform(products: Product[], category: string): Product[] {\n        return category == undefined ?\n            products : products.filter(p => p.category == category);\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/common/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/common/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n         SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n    \n    @ContentChildren(PaCellColor, {descendants: true})\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/common/common.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { PaAddTaxPipe } from \"./addTax.pipe\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaCategoryFilterPipe } from \"./categoryFilter.pipe\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { PaDiscountPipe } from \"./discount.pipe\";\nimport { PaDiscountAmountDirective } from \"./discountAmount.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { VALUE_SERVICE, PaDisplayValueDirective} from \"./valueDisplay.directive\";\nimport { DiscountService } from \"./discount.service\";\nimport { LogService } from \"./log.service\";\nimport { ModelModule } from \"../model/model.module\";\n\n@NgModule({\n    imports: [ModelModule],\n    providers: [LogService, DiscountService,\n        { provide: VALUE_SERVICE, useValue: \"Apples\" }],\n    declarations: [PaAddTaxPipe, PaAttrDirective, PaCategoryFilterPipe,\n        PaCellColor, PaCellColorSwitcher, PaDiscountPipe,\n        PaDiscountAmountDirective, PaIteratorDirective, PaStructureDirective,\n        PaModel, PaDisplayValueDirective],\n    exports: [PaAddTaxPipe, PaAttrDirective, PaCategoryFilterPipe,\n        PaCellColor, PaCellColorSwitcher, PaDiscountPipe,\n        PaDiscountAmountDirective, PaIteratorDirective, PaStructureDirective,\n        PaModel, PaDisplayValueDirective]\n})\nexport class CommonModule { }\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/common/discount.pipe.ts",
    "content": "import { Pipe, Injectable } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\nimport { LogService } from \"./log.service\";\n\n@Pipe({\n    name: \"discount\",\n    pure: false\n})\nexport class PaDiscountPipe {\n\n    constructor(private discount: DiscountService,\n                private logger: LogService) { }\n\n    transform(price: number): number {\n        if (price > 100) {\n            this.logger.logInfoMessage(`Large price discounted: ${price}`);\n        }\n        return this.discount.applyDiscount(price);\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/common/discount.service.ts",
    "content": "import { Injectable, Inject } from \"@angular/core\";\nimport { LogService, LOG_SERVICE, LogLevel } from \"./log.service\";\n\n@Injectable()\nexport class DiscountService {\n    private discountValue: number = 10;\n\n    constructor(private logger: LogService) { }\n\n    public get discount(): number {\n        return this.discountValue;\n    }\n\n    public set discount(newValue: number) {\n        this.discountValue = newValue || 0;\n    }\n\n    public applyDiscount(price: number) {\n        this.logger.logInfoMessage(`Discount ${this.discount}`\n            + ` applied to price: ${price}`);\n        return Math.max(price - this.discountValue, 5);\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/common/discountAmount.directive.ts",
    "content": "import { Directive, HostBinding, Input,\n    SimpleChange, KeyValueDiffer, KeyValueDiffers,\n    ChangeDetectorRef } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Directive({\n    selector: \"td[pa-price]\",\n    exportAs: \"discount\"\n})\nexport class PaDiscountAmountDirective {\n    private differ: KeyValueDiffer<any, any>;\n\n    constructor(private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef,\n        private discount: DiscountService) { }\n\n    @Input(\"pa-price\")\n    originalPrice: number;\n\n    discountAmount: number;\n\n    ngOnInit() {\n        this.differ =\n            this.keyValueDiffers.find(this.discount).create();\n    }\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        if (changes[\"originalPrice\"] != null) {\n            this.updateValue();\n        }\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.discount) != null) {\n            this.updateValue();\n        }\n    }\n\n    private updateValue() {\n        this.discountAmount = this.originalPrice\n            - this.discount.applyDiscount(this.originalPrice);\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/common/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef \n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/common/log.service.ts",
    "content": "import { Injectable, InjectionToken } from \"@angular/core\";\n\nexport const LOG_SERVICE = new InjectionToken(\"logger\");\nexport const LOG_LEVEL = new InjectionToken(\"log_level\")\n\nexport enum LogLevel {\n    DEBUG, INFO, ERROR\n}\n\n@Injectable()\nexport class LogService {\n    minimumLevel: LogLevel = LogLevel.INFO;\n\n    logInfoMessage(message: string) {\n        this.logMessage(LogLevel.INFO, message);\n    }\n\n    logDebugMessage(message: string) {\n        this.logMessage(LogLevel.DEBUG, message);\n    }\n\n    logErrorMessage(message: string) {\n        this.logMessage(LogLevel.ERROR, message);\n    }\n\n    logMessage(level: LogLevel, message: string) {\n        if (level >= this.minimumLevel) {\n            console.log(`Message (${LogLevel[level]}): ${message}`);\n        }\n    }\n}\n\n@Injectable()\nexport class SpecialLogService extends LogService {\n\n    constructor() {\n        super()\n        this.minimumLevel = LogLevel.DEBUG;\n    }\n\n    logMessage(level: LogLevel, message: string) {\n        if (level >= this.minimumLevel) {\n            console.log(`Special Message (${LogLevel[level]}): ${message}`);\n        }\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/common/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/common/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/common/valueDisplay.directive.ts",
    "content": "import { Directive, InjectionToken, Inject,\n         HostBinding, Host, Optional} from \"@angular/core\";\n\nexport const VALUE_SERVICE = new InjectionToken(\"value_service\");\n\n@Directive({\n    selector: \"[paDisplayValue]\"\n})\nexport class PaDisplayValueDirective {\n\n    constructor( @Inject(VALUE_SERVICE) @Host() @Optional() serviceValue: string) {\n        this.elementContent = serviceValue || \"No Value\";\n    }\n\n    @HostBinding(\"textContent\")\n    elementContent: string;\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/component.ts",
    "content": "import { Component } from \"@angular/core\";\n//import { Model } from \"./repository.model\";\n//import { Product } from \"./product.model\";\n//import { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    //model: Model = new Model();\n\n    //constructor(public model: Model) { }\n\n    //addProduct(p: Product) {\n    //    this.model.saveProduct(p);\n    //}\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/components/app.component.css",
    "content": ""
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/components/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/components/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/components/components.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { CommonModule } from \"../common/common.module\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\"\nimport { PaDiscountDisplayComponent } from \"./discountDisplay.component\";\nimport { PaDiscountEditorComponent } from \"./discountEditor.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { ProductTableComponent } from \"./productTable.component\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule, CommonModule],\n    declarations: [PaDiscountDisplayComponent, PaDiscountEditorComponent,\n        ProductFormComponent, ProductTableComponent],\n    exports: [ProductFormComponent, ProductTableComponent]\n})\nexport class ComponentsModule { }\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/components/discountDisplay.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"../common/discount.service\";\n\n@Component({\n  selector: \"paDiscountDisplay\",\n  template: `<div class=\"bg-info text-white p-2\">\n                The discount is {{discounter.discount}}\n               </div>`\n})\nexport class PaDiscountDisplayComponent {\n\n  constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/components/discountEditor.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"../common/discount.service\";\n\n@Component({\n    selector: \"paDiscountEditor\",\n    template: `<div class=\"form-group\">\n                   <label>Discount</label>\n                   <input [(ngModel)]=\"discounter.discount\" \n                        class=\"form-control\" type=\"number\" />              \n               </div>`\n})\nexport class PaDiscountEditorComponent {\n\n    constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/components/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover { \n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/components/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" \n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>    \n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>    \n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n\n<!-- <div class=\"bg-info text-white m-2 p-2\">\n    View Child Value: <span paDisplayValue></span>\n</div>\n<div class=\"bg-info text-white m-2 p-2\">\n    Content Child Value: <ng-content></ng-content>\n</div> -->\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/components/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation, \n    Inject, SkipSelf } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { VALUE_SERVICE } from \"../common/valueDisplay.directive\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\",\n    viewProviders: [{ provide: VALUE_SERVICE, useValue: \"Oranges\" }]\n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    constructor(private model: Model,\n            @Inject(VALUE_SERVICE) @SkipSelf() private serviceValue: string) {\n        console.log(\"Service Value: \" + serviceValue);\n    }\n\n    submitForm(form: any) {\n        this.model.saveProduct(this.newProduct);        \n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/components/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <thead>\n        <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *paFor=\"let item of getProducts(); let i = index\">\n            <td>{{i + 1}}</td>\n            <td>{{item.name}}</td>\n            <td>{{item.category}}</td>\n            <td [pa-price]=\"item.price\" #discount=\"discount\">\n                {{ discount.discountAmount | currency:\"USD\":\"symbol\"}}\n            </td>\n            <td class=\"text-center\">\n                <button class=\"btn btn-danger btn-sm\" \n                        (click)=\"deleteProduct(item.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>    \n</table>\n\n<!-- <paDiscountEditor></paDiscountEditor> -->\n<!-- <paDiscountDisplay></paDiscountDisplay> -->\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/components/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { Product } from \"../model/product.model\";\nimport { DiscountService } from \"../common/discount.service\";\nimport { LogService } from \"../common/log.service\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\",\n    providers:[LogService]    \n\n})\nexport class ProductTableComponent {\n    \n    constructor(private dataModel: Model) { }\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n    dateObject: Date = new Date(2020, 1, 20);\n    dateString: string = \"2020-02-20T00:00:00.000Z\";\n    dateNumber: number = 1582156800000;\n\n    selectMap = {\n        \"Watersports\": \"stay dry\", \n        \"Soccer\": \"score goals\",\n        \"other\": \"have fun\"    \n    }\n\n    numberMap = {\n        \"=1\": \"one product\",\n        \"=2\": \"two products\",\n        \"other\": \"# products\"\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/components/toggleView.component.html",
    "content": "<div class=\"checkbox\"> \n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/components/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\" \n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/model/datasource.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class SimpleDataSource {\n    private data:Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n        new Product(1, \"Kayak\", \"Watersports\", 275),\n        new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n        new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n        new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n        new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/model/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/model/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { SimpleDataSource } from \"./datasource.model\";\nimport { Model } from \"./repository.model\";\n\n@NgModule({\n    providers: [Model, SimpleDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\n@Injectable()\nexport class Model {\n    //private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p:Product, id:number) => p.id == id;\n\n    constructor(private dataSource: SimpleDataSource) {\n        //this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n  <div class=\"col-4 p-2\">\n    <paProductForm>\n      <span paDisplayValue></span>\n    </paProductForm>\n  </div>\n  <div class=\"col-8 p-2\">\n    <paProductTable></paProductTable>\n  </div>\n</div>\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2 row\">\n    <div class=\"col-8 p-2\">\n        <paProductTable></paProductTable>\n    </div>\n    <div class=\"col-4 p-2\">\n        <paProductForm></paProductForm>\n    </div>\n</body>\n</html>\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "21 - Using and Creating Modules/End of Chapter/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'exampleApp';\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n//import { AppComponent } from './app.component';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\n\n@NgModule({\n  imports: [BrowserModule, ModelModule, CoreModule, MessageModule],\n  bootstrap: [TableComponent, FormComponent, MessageComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { SharedState } from \"./sharedState.model\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule],\n    declarations: [TableComponent, FormComponent],\n    exports: [ModelModule, TableComponent, FormComponent],\n    providers: [SharedState]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\">Cancel</button>\n</form>\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\"\nimport { MODES, SharedState } from \"./sharedState.model\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model,\n            private state: SharedState) { }\n    \n    get editing(): boolean {\n        return this.state.mode == MODES.EDIT;\n    }\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.product = new Product();\n            form.reset();\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/core/sharedState.model.ts",
    "content": "export enum MODES {\n    CREATE, EDIT\n}\n\nexport class SharedState {\n    mode: MODES = MODES.EDIT;\n    id: number;\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\" (click)=\"editProduct(item.id)\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<button class=\"btn btn-primary m-1\" (click)=\"createProduct()\">\n    Create New Product\n</button>\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState } from \"./sharedState.model\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model, private state: SharedState) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    editProduct(key: number) {\n        this.state.id = key;\n        this.state.mode = MODES.EDIT;\n    }\n\n    createProduct() {\n        this.state.id = undefined;\n        this.state.mode = MODES.CREATE;\n    }\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService) {\n        messageService.registerMessageHandler(m => this.lastMessage = m);\n    }\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\n\n@NgModule({\n    imports: [BrowserModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageService {\n    private handler: (m: Message) => void;\n\n    reportMessage(msg: Message) {\n        if (this.handler != null) {\n            this.handler(msg);\n        }\n    }\n\n    registerMessageHandler(handler: (m: Message) => void) {\n        this.handler = handler;\n    }\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\n\n@NgModule({\n    providers: [Model, StaticDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: StaticDataSource) {\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <paMessages></paMessages>\n  <div class=\"row m-2\">\n    <div class=\"col-8 p-2\">\n      <paTable></paTable>\n    </div>\n    <div class=\"col-4 p-2\">\n      <paForm></paForm>\n    </div>\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "22 - Creating the Example Project/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'exampleApp';\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n//import { AppComponent } from './app.component';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\n\n@NgModule({\n  imports: [BrowserModule, ModelModule, CoreModule, MessageModule],\n  bootstrap: [TableComponent, FormComponent, MessageComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { SharedState } from \"./sharedState.model\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule],\n    declarations: [TableComponent, FormComponent],\n    exports: [ModelModule, TableComponent, FormComponent],\n    providers: [SharedState]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\">Cancel</button>\n</form>\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\"\nimport { MODES, SharedState } from \"./sharedState.model\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model,\n            private state: SharedState) { }\n    \n    get editing(): boolean {\n        return this.state.mode == MODES.EDIT;\n    }\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.product = new Product();\n            form.reset();\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/core/sharedState.model.ts",
    "content": "export enum MODES {\n    CREATE, EDIT\n}\n\nexport class SharedState {\n    mode: MODES = MODES.EDIT;\n    id: number;\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\" (click)=\"editProduct(item.id)\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<button class=\"btn btn-primary m-1\" (click)=\"createProduct()\">\n    Create New Product\n</button>\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState } from \"./sharedState.model\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model, private state: SharedState) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    editProduct(key: number) {\n        this.state.id = key;\n        this.state.mode = MODES.EDIT;\n    }\n\n    createProduct() {\n        this.state.id = undefined;\n        this.state.mode = MODES.CREATE;\n    }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService) {\n        messageService.registerMessageHandler(m => this.lastMessage = m);\n    }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\n\n@NgModule({\n    imports: [BrowserModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageService {\n    private handler: (m: Message) => void;\n\n    reportMessage(msg: Message) {\n        if (this.handler != null) {\n            this.handler(msg);\n        }\n    }\n\n    registerMessageHandler(handler: (m: Message) => void) {\n        this.handler = handler;\n    }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\n\n@NgModule({\n    providers: [Model, StaticDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: StaticDataSource) {\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <paMessages></paMessages>\n  <div class=\"row m-2\">\n    <div class=\"col-8 p-2\">\n      <paTable></paTable>\n    </div>\n    <div class=\"col-4 p-2\">\n      <paForm></paForm>\n    </div>\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/Beginning of Chapter/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'exampleApp';\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n//import { AppComponent } from './app.component';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\n\n@NgModule({\n  imports: [BrowserModule, ModelModule, CoreModule, MessageModule],\n  bootstrap: [TableComponent, FormComponent, MessageComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES } from \"./sharedState.model\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule],\n    declarations: [TableComponent, FormComponent, StatePipe],\n    exports: [ModelModule, TableComponent, FormComponent],\n    providers: [{\n        provide: SHARED_STATE,\n        deps: [MessageService, Model],\n        useFactory: (messageService, model) => {\n            let subject = new Subject<SharedState>();\n            subject.subscribe(m => messageService.reportMessage(\n                    new Message(MODES[m.mode] + (m.id != undefined\n                        ? ` ${model.getProduct(m.id).name}` : \"\")))\n                );\n            return subject;       \n        }\n    }]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n    Last Event: {{ stateEvents | async | formatState }}\t\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\">Cancel</button>\n</form>\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observable } from \"rxjs\";\nimport { filter, map, distinctUntilChanged, skipWhile } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public stateEvents: Observable<SharedState>) {\n            stateEvents\n            .pipe(skipWhile(state => state.mode == MODES.EDIT))\n            .pipe(distinctUntilChanged((firstState, secondState) =>\n                firstState.mode == secondState.mode \n                    && firstState.id == secondState.id))\n            .subscribe(update => {\n                this.product = new Product();\n                if (update.id != undefined) {\n                    Object.assign(this.product, this.model.getProduct(update.id));\n                }\n                this.editing = update.mode == MODES.EDIT;     \n            });\n    }\n\n    editing: boolean = false;\n    \n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.product = new Product();\n            form.reset();\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\" (click)=\"editProduct(item.id)\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<button class=\"btn btn-primary m-1\" (click)=\"createProduct()\">\n    Create New Product\n</button>\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observer } from \"rxjs\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public observer: Observer<SharedState>) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    editProduct(key: number) {\n        this.observer.next(new SharedState(MODES.EDIT, key));\n    }\n\n    createProduct() {\n        this.observer.next(new SharedState(MODES.CREATE));\n    }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n    }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\n\n@NgModule({\n    imports: [BrowserModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\n\n@NgModule({\n    providers: [Model, StaticDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: StaticDataSource) {\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <paMessages></paMessages>\n  <div class=\"row m-2\">\n    <div class=\"col-8 p-2\">\n      <paTable></paTable>\n    </div>\n    <div class=\"col-4 p-2\">\n      <paForm></paForm>\n    </div>\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "23 - Using Reactive Extensions/End of Chapter/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'exampleApp';\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n//import { AppComponent } from './app.component';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\n\n@NgModule({\n  imports: [BrowserModule, ModelModule, CoreModule, MessageModule],\n  bootstrap: [TableComponent, FormComponent, MessageComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES } from \"./sharedState.model\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule],\n    declarations: [TableComponent, FormComponent, StatePipe],\n    exports: [ModelModule, TableComponent, FormComponent],\n    providers: [{\n        provide: SHARED_STATE,\n        deps: [MessageService, Model],\n        useFactory: (messageService, model) => {\n            let subject = new Subject<SharedState>();\n            subject.subscribe(m => messageService.reportMessage(\n                    new Message(MODES[m.mode] + (m.id != undefined\n                        ? ` ${model.getProduct(m.id).name}` : \"\")))\n                );\n            return subject;       \n        }\n    }]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n    Last Event: {{ stateEvents | async | formatState }}\t\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\">Cancel</button>\n</form>\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observable } from \"rxjs\";\nimport { filter, map, distinctUntilChanged, skipWhile } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public stateEvents: Observable<SharedState>) {\n            stateEvents\n            // .pipe(skipWhile(state => state.mode == MODES.EDIT))\n            // .pipe(distinctUntilChanged((firstState, secondState) =>\n            //     firstState.mode == secondState.mode \n            //         && firstState.id == secondState.id))\n            .subscribe(update => {\n                this.product = new Product();\n                if (update.id != undefined) {\n                    Object.assign(this.product, this.model.getProduct(update.id));\n                }\n                this.editing = update.mode == MODES.EDIT;     \n            });\n    }\n    \n    editing: boolean = false;\n    \n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.product = new Product();\n            form.reset();\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\" (click)=\"editProduct(item.id)\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<button class=\"btn btn-primary m-1\" (click)=\"createProduct()\">\n    Create New Product\n</button>\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observer } from \"rxjs\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public observer: Observer<SharedState>) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    editProduct(key: number) {\n        this.observer.next(new SharedState(MODES.EDIT, key));\n    }\n\n    createProduct() {\n        this.observer.next(new SharedState(MODES.CREATE));\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\n\n@NgModule({\n    imports: [BrowserModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule } from \"@angular/common/http\";\n\n@NgModule({\n  imports: [HttpClientModule],\n  providers: [Model, StaticDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: StaticDataSource) {\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <paMessages></paMessages>\n  <div class=\"row m-2\">\n    <div class=\"col-8 p-2\">\n      <paTable></paTable>\n    </div>\n    <div class=\"col-4 p-2\">\n      <paForm></paForm>\n    </div>\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/Beginning of Chapter/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'exampleApp';\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n//import { AppComponent } from './app.component';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\n\n@NgModule({\n  imports: [BrowserModule, ModelModule, CoreModule, MessageModule],\n  bootstrap: [TableComponent, FormComponent, MessageComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES } from \"./sharedState.model\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule],\n    declarations: [TableComponent, FormComponent, StatePipe],\n    exports: [ModelModule, TableComponent, FormComponent],\n    providers: [{\n        provide: SHARED_STATE,\n        deps: [MessageService, Model],\n        useFactory: (messageService, model) => {\n            let subject = new Subject<SharedState>();\n            subject.subscribe(m => messageService.reportMessage(\n                    new Message(MODES[m.mode] + (m.id != undefined\n                        ? ` ${model.getProduct(m.id).name}` : \"\")))\n                );\n            return subject;       \n        }\n    }]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n    Last Event: {{ stateEvents | async | formatState }}\t\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\">Cancel</button>\n</form>\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observable } from \"rxjs\";\nimport { filter, map, distinctUntilChanged, skipWhile } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public stateEvents: Observable<SharedState>) {\n            stateEvents\n            // .pipe(skipWhile(state => state.mode == MODES.EDIT))\n            // .pipe(distinctUntilChanged((firstState, secondState) =>\n            //     firstState.mode == secondState.mode \n            //         && firstState.id == secondState.id))\n            .subscribe(update => {\n                this.product = new Product();\n                if (update.id != undefined) {\n                    Object.assign(this.product, this.model.getProduct(update.id));\n                }\n                this.editing = update.mode == MODES.EDIT;     \n            });\n    }\n    \n    editing: boolean = false;\n    \n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.product = new Product();\n            form.reset();\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\" (click)=\"editProduct(item.id)\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<button class=\"btn btn-primary m-1\" (click)=\"createProduct()\">\n    Create New Product\n</button>\n<button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n    Generate HTTP Error\n</button>\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observer } from \"rxjs\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public observer: Observer<SharedState>) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    editProduct(key: number) {\n        this.observer.next(new SharedState(MODES.EDIT, key));\n    }\n\n    createProduct() {\n        this.observer.next(new SharedState(MODES.CREATE));\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\n\n@NgModule({\n    imports: [BrowserModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource,\n        { provide: REST_URL, useValue: `http://${location.hostname}:3500/products` }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        }).pipe(catchError((error: Response) => \n             throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <paMessages></paMessages>\n  <div class=\"row m-2\">\n    <div class=\"col-8 p-2\">\n      <paTable></paTable>\n    </div>\n    <div class=\"col-4 p-2\">\n      <paForm></paForm>\n    </div>\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "24 - Making HTTP Requests/End of Chapter/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    height: 60px;\n    margin: -8px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 32px auto;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(black, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'exampleApp';\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n//import { AppComponent } from './app.component';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\n\n@NgModule({\n  imports: [BrowserModule, ModelModule, CoreModule, MessageModule],\n  bootstrap: [TableComponent, FormComponent, MessageComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES } from \"./sharedState.model\";\n\n@NgModule({\n  imports: [BrowserModule, FormsModule, ModelModule, MessageModule],\n  declarations: [TableComponent, FormComponent, StatePipe],\n  exports: [ModelModule, TableComponent, FormComponent],\n  providers: [{\n    provide: SHARED_STATE,\n    deps: [MessageService, Model],\n    useFactory: (messageService, model) => {\n      return new Subject<SharedState>();\n      //let subject = new Subject<SharedState>();\n      //subject.subscribe(m => messageService.reportMessage(\n      //  new Message(MODES[m.mode] + (m.id != undefined\n      //    ? ` ${model.getProduct(m.id).name}` : \"\")))\n      //);\n      //return subject;\n    }\n  }]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n    <!-- Last Event: {{ stateEvents | async | formatState }} -->\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\">Cancel</button>\n</form>\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observable } from \"rxjs\";\nimport { filter, map, distinctUntilChanged, skipWhile } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public stateEvents: Observable<SharedState>) {\n            stateEvents\n            // .pipe(skipWhile(state => state.mode == MODES.EDIT))\n            // .pipe(distinctUntilChanged((firstState, secondState) =>\n            //     firstState.mode == secondState.mode \n            //         && firstState.id == secondState.id))\n            .subscribe(update => {\n                this.product = new Product();\n                if (update.id != undefined) {\n                    Object.assign(this.product, this.model.getProduct(update.id));\n                }\n                this.editing = update.mode == MODES.EDIT;     \n            });\n    }\n    \n    editing: boolean = false;\n    \n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.product = new Product();\n            form.reset();\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\" (click)=\"editProduct(item.id)\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<button class=\"btn btn-primary m-1\" (click)=\"createProduct()\">\n    Create New Product\n</button>\n<button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n    Generate HTTP Error\n</button>\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observer } from \"rxjs\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public observer: Observer<SharedState>) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    editProduct(key: number) {\n        this.observer.next(new SharedState(MODES.EDIT, key));\n    }\n\n    createProduct() {\n        this.observer.next(new SharedState(MODES.CREATE));\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\n\n@NgModule({\n    imports: [BrowserModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource,\n        { provide: REST_URL, useValue: `http://${location.hostname}:3500/products` }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        }).pipe(catchError((error: Response) => \n             throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <paMessages></paMessages>\n  <div class=\"row m-2\">\n    <div class=\"col-8 p-2\">\n      <paTable></paTable>\n    </div>\n    <div class=\"col-4 p-2\">\n      <paForm></paForm>\n    </div>\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "25 - Using URL Routing/Beginning of Chapter/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { AppComponent } from './app.component';\nimport { routing } from \"./app.routing\";\n\n@NgModule({\n    imports: [BrowserModule, ModelModule, CoreModule, MessageModule, routing],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\n\nconst routes: Routes = [\n    { path: \"form/:mode/:id\", component: FormComponent },\n    { path: \"form/:mode\", component: FormComponent },\n    { path: \"\", component: TableComponent }]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\n//import { SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\n//import { MODES } from \"./sharedState.model\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe],\n    exports: [ModelModule, TableComponent, FormComponent],\n    //providers: [{\n    //    provide: SHARED_STATE,\n    //    deps: [MessageService, Model],\n    //    useFactory: (messageService, model) => {\n    //        return new Subject<SharedState>();\n    //    }\n    //}]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n    <!-- Last Event: {{ stateEvents | async | formatState }} -->\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n            Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model, activeRoute: ActivatedRoute,\n            private router: Router) {\n\n        this.editing = activeRoute.snapshot.params[\"mode\"] == \"edit\";\n        let id = activeRoute.snapshot.params[\"id\"];\n        if (id != null) {\n            let name = activeRoute.snapshot.params[\"name\"];\n            let category = activeRoute.snapshot.params[\"category\"];\n            let price = activeRoute.snapshot.params[\"price\"];\n    \n            if (name != null && category != null && price != null) {\n                this.product.id = id;\n                this.product.name = name;\n                this.product.category = category;\n                this.product.price = Number.parseFloat(price);\n            } else {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n            }\n        }\n    }\n    \n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            //this.product = new Product();\n            //form.reset();\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\"\n                [routerLink]=\"['/form', 'edit', item.id,\n                    {name: item.name, category: item.category, price: item.price}]\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n    Create New Product\n</button>\n<button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n    Generate HTTP Error\n</button>\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\n//import { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\n//import { Observer } from \"rxjs\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model,\n        /*@Inject(SHARED_STATE) private observer: Observer<SharedState>*/) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    //editProduct(key: number) {\n    //    this.observer.next(new SharedState(MODES.EDIT, key));\n    //}\n\n    //createProduct() {\n    //    this.observer.next(new SharedState(MODES.CREATE));\n    //}\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd \n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource,\n        { provide: REST_URL, useValue: `http://${location.hostname}:3500/products` }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        }).pipe(catchError((error: Response) => \n             throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "25 - Using URL Routing/End of Chapter/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { AppComponent } from './app.component';\nimport { routing } from \"./app.routing\";\n\n@NgModule({\n    imports: [BrowserModule, ModelModule, CoreModule, MessageModule, routing],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\n\nconst routes: Routes = [\n    { path: \"form/:mode/:id\", component: FormComponent },\n    { path: \"form/:mode\", component: FormComponent },\n    { path: \"\", component: TableComponent }]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n    selector: \"paCategoryCount\",\n    template: `<div class=\"bg-primary p-2 text-white\">\n                    There are {{count}} categories\n               </div>`\n})\nexport class CategoryCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n\n    constructor(private model: Model,\n        private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef) { }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.count = this.model.getProducts()\n                .map(p => p.category)\n                .filter((category, index, array) => array.indexOf(category) == index)\n                .length;\n        }\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n    <!-- Last Event: {{ stateEvents | async | formatState }} -->\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n            Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public router: Router) {\n\n        this.editing = activeRoute.snapshot.params[\"mode\"] == \"edit\";\n        let id = activeRoute.snapshot.params[\"id\"];\n        if (id != null) {\n            Object.assign(this.product, model.getProduct(id) || new Product());\n        }\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n    selector: \"paProductCount\",\n    template: `<div class=\"bg-info text-white p-2\">There are\n                  {{count}} products\n               </div>`\n})\nexport class ProductCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n\n    constructor(private model: Model,\n        private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef) { }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.updateCount();\n        }\n    }\n\n    private updateCount() {\n        this.count = this.model.getProducts().length;\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\"\n                [routerLink]=\"['/form', 'edit', item.id]\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n    Create New Product\n</button>\n<button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n    Generate HTTP Error\n</button>\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\n//import { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\n//import { Observer } from \"rxjs\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model,\n        /*@Inject(SHARED_STATE) private observer: Observer<SharedState>*/) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    //editProduct(key: number) {\n    //    this.observer.next(new SharedState(MODES.EDIT, key));\n    //}\n\n    //createProduct() {\n    //    this.observer.next(new SharedState(MODES.CREATE));\n    //}\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd \n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource,\n        { provide: REST_URL, useValue: `http://${location.hostname}:3500/products` }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2 \n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0 \n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    } \n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        }).pipe(catchError((error: Response) => \n             throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/Beginning of Chapter/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { AppComponent } from './app.component';\nimport { routing } from \"./app.routing\";\n\n@NgModule({\n    imports: [BrowserModule, ModelModule, CoreModule, MessageModule, routing],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { NotFoundComponent } from \"./core/notFound.component\";\nimport { ProductCountComponent } from \"./core/productCount.component\";\nimport { CategoryCountComponent } from \"./core/categoryCount.component\";\n\nconst childRoutes: Routes = [\n    { path: \"products\", component: ProductCountComponent },\n    { path: \"categories\", component: CategoryCountComponent },\n    { path: \"\", component: ProductCountComponent }\n];\n\nconst routes: Routes = [\n    { path: \"form/:mode/:id\", component: FormComponent },\n    { path: \"form/:mode\", component: FormComponent },\n    { path: \"does\", redirectTo: \"/form/create\", pathMatch: \"prefix\" },\n    { path: \"table\", component: TableComponent, children: childRoutes },\n    { path: \"table/:category\", component: TableComponent, children: childRoutes },\n    { path: \"\", redirectTo: \"/table\", pathMatch: \"full\" },\n    { path: \"**\", component: NotFoundComponent }\n]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n    selector: \"paCategoryCount\",\n    template: `<div class=\"bg-primary p-2 text-white\">\n                    There are {{count}} categories\n               </div>`\n})\nexport class CategoryCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n\n    constructor(private model: Model,\n        private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef) { }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.count = this.model.getProducts()\n                .map(p => p.category)\n                .filter((category, index, array) => array.indexOf(category) == index)\n                .length;\n        }\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n    <!-- Last Event: {{ stateEvents | async | formatState }} -->\n</div>\n\n<div *ngIf=\"editing\" class=\"p-2\">\n    <button class=\"btn btn-secondary m-1\"\n            [routerLink]=\"['/form', 'edit', model.getPreviousProductid(product.id)]\">\n        Previous\n    </button>\n    <button class=\"btn btn-secondary\"\n            [routerLink]=\"['/form', 'edit', model.getNextProductId(product.id)]\">\n        Next\n    </button>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n            Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public  router: Router) {\n\n        activeRoute.params.subscribe(params => {\n            this.editing = params[\"mode\"] == \"edit\";\n            let id = params[\"id\"];\n            if (id != null) {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n            }\n        })        \n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paProductCount\",\n    template: `<div class=\"bg-info p-2\">There are {{count}} products</div>`\n})\nexport class ProductCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n    private category: string;\n\n    constructor(private model: Model,\n            private keyValueDiffers: KeyValueDiffers,\n            private changeDetector: ChangeDetectorRef,\n            activeRoute: ActivatedRoute) {\n\n        activeRoute.pathFromRoot.forEach(route => route.params.subscribe(params => {\n            if (params[\"category\"] != null) {\n                this.category = params[\"category\"];\n                this.updateCount();\n            }\n        }))\n    }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.updateCount();\n        }\n    }\n\n    private updateCount() {\n        this.count = this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category)\n            .length;\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/core/table.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col-auto\">\n            <button class=\"btn btn-secondary btn-block\" \n                routerLink=\"/table\" routerLinkActive=\"bg-primary\"\n                [routerLinkActiveOptions]=\"{exact: true}\">\n                All\n            </button>\n            <button *ngFor=\"let category of categories\" \n                    class=\"btn btn-secondary btn-block px-3\"\n                    [routerLink]=\"['/table', category]\" \n                    routerLinkActive=\"bg-primary\">\n                {{category}}\n            </button>\n        </div>\n        <div class=\"col\">\n            <button class=\"btn btn-info mx-1\" routerLink=\"products\">\n                Count Products\n            </button>\n            <button class=\"btn btn-primary mx-1\" routerLink=\"categories\">\n                Count Categories\n            </button>\n            <button class=\"btn btn-secondary mx-1\" routerLink=\"/table\">\n                Count Neither\n            </button>\n            <div class=\"my-2\">\n                <router-outlet></router-outlet>\n            </div>\n        \n            <table class=\"table table-sm table-bordered table-striped\">\n                <tr>\n                    <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n                </tr>\n                <tr *ngFor=\"let item of getProducts()\">\n                    <td>{{item.id}}</td>\n                    <td>{{item.name}}</td>\n                    <td>{{item.category}}</td>\n                    <td>{{item.price | currency:\"USD\" }}</td>\n                    <td class=\"text-center\">\n                        <button class=\"btn btn-danger btn-sm mr-1\" \n                                (click)=\"deleteProduct(item.id)\">\n                            Delete\n                        </button>\n                        <button class=\"btn btn-warning btn-sm\"\n                            [routerLink]=\"['/form', 'edit', item.id]\">\n                            Edit\n                        </button>\n                    </td>\n                </tr>\n            </table>\n        </div>\n    </div>\n</div>\n<div class=\"p-2 text-center\">\n    <button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n        Create New Product\n    </button>\n    <button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n        Generate HTTP Error\n    </button>\n    <button class=\"btn btn-danger m-1\" routerLink=\"/does/not/exist\">\n        Generate Routing Error\n    </button>\n</div>                    \n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n    category: string = null;\n\n    constructor(public model: Model, activeRoute: ActivatedRoute) {\n        activeRoute.params.subscribe(params => {\n            this.category = params[\"category\"] || null;\n        })\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category);\n    }\n\n    get categories(): string[] {\n        return this.model.getProducts()\n            .map(p => p.category)\n            .filter((category, index, array) => array.indexOf(category) == index);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd \n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource,\n        { provide: REST_URL, useValue: `http://${location.hostname}:3500/products` }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2 \n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0 \n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    } \n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        }).pipe(catchError((error: Response) => \n             throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "26 - Using URL Routing - Part 2/End of Chapter/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { AppComponent } from './app.component';\nimport { routing } from \"./app.routing\";\n\n@NgModule({\n    imports: [BrowserModule, ModelModule, CoreModule, MessageModule, routing],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { NotFoundComponent } from \"./core/notFound.component\";\nimport { ProductCountComponent } from \"./core/productCount.component\";\nimport { CategoryCountComponent } from \"./core/categoryCount.component\";\n\nconst childRoutes: Routes = [\n    { path: \"products\", component: ProductCountComponent },\n    { path: \"categories\", component: CategoryCountComponent },\n    { path: \"\", component: ProductCountComponent }\n];\n\nconst routes: Routes = [\n    { path: \"form/:mode/:id\", component: FormComponent },\n    { path: \"form/:mode\", component: FormComponent },\n    { path: \"table\", component: TableComponent, children: childRoutes },\n    { path: \"table/:category\", component: TableComponent, children: childRoutes },\n    { path: \"\", redirectTo: \"/table\", pathMatch: \"full\" },\n    { path: \"**\", component: NotFoundComponent }\n]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n    selector: \"paCategoryCount\",\n    template: `<div class=\"bg-primary p-2 text-white\">\n                    There are {{count}} categories\n               </div>`\n})\nexport class CategoryCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n\n    constructor(private model: Model,\n        private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef) { }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.count = this.model.getProducts()\n                .map(p => p.category)\n                .filter((category, index, array) => array.indexOf(category) == index)\n                .length;\n        }\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n    <!-- Last Event: {{ stateEvents | async | formatState }} -->\n</div>\n\n<div *ngIf=\"editing\" class=\"p-2\">\n    <button class=\"btn btn-secondary m-1\"\n            [routerLink]=\"['/form', 'edit', model.getPreviousProductid(product.id)]\">\n        Previous\n    </button>\n    <button class=\"btn btn-secondary\"\n            [routerLink]=\"['/form', 'edit', model.getNextProductId(product.id)]\">\n        Next\n    </button>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n            Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public  router: Router) {\n\n        activeRoute.params.subscribe(params => {\n            this.editing = params[\"mode\"] == \"edit\";\n            let id = params[\"id\"];\n            if (id != null) {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n            }\n        })        \n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paProductCount\",\n    template: `<div class=\"bg-info p-2\">There are {{count}} products</div>`\n})\nexport class ProductCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n    private category: string;\n\n    constructor(private model: Model,\n            private keyValueDiffers: KeyValueDiffers,\n            private changeDetector: ChangeDetectorRef,\n            activeRoute: ActivatedRoute) {\n\n        activeRoute.pathFromRoot.forEach(route => route.params.subscribe(params => {\n            if (params[\"category\"] != null) {\n                this.category = params[\"category\"];\n                this.updateCount();\n            }\n        }))\n    }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.updateCount();\n        }\n    }\n\n    private updateCount() {\n        this.count = this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category)\n            .length;\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/core/table.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col-auto\">\n            <button class=\"btn btn-secondary btn-block\" \n                routerLink=\"/table\" routerLinkActive=\"bg-primary\"\n                [routerLinkActiveOptions]=\"{exact: true}\">\n                All\n            </button>\n            <button *ngFor=\"let category of categories\" \n                    class=\"btn btn-secondary btn-block px-3\"\n                    [routerLink]=\"['/table', category]\" \n                    routerLinkActive=\"bg-primary\">\n                {{category}}\n            </button>\n        </div>\n        <div class=\"col\">\n            <button class=\"btn btn-info mx-1\" routerLink=\"products\">\n                Count Products\n            </button>\n            <button class=\"btn btn-primary mx-1\" routerLink=\"categories\">\n                Count Categories\n            </button>\n            <button class=\"btn btn-secondary mx-1\" routerLink=\"/table\">\n                Count Neither\n            </button>\n            <div class=\"my-2\">\n                <router-outlet></router-outlet>\n            </div>\n        \n            <table class=\"table table-sm table-bordered table-striped\">\n                <tr>\n                    <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n                </tr>\n                <tr *ngFor=\"let item of getProducts()\">\n                    <td>{{item.id}}</td>\n                    <td>{{item.name}}</td>\n                    <td>{{item.category}}</td>\n                    <td>{{item.price | currency:\"USD\" }}</td>\n                    <td class=\"text-center\">\n                        <button class=\"btn btn-danger btn-sm mr-1\" \n                                (click)=\"deleteProduct(item.id)\">\n                            Delete\n                        </button>\n                        <button class=\"btn btn-warning btn-sm\"\n                            [routerLink]=\"['/form', 'edit', item.id]\">\n                            Edit\n                        </button>\n                    </td>\n                </tr>\n            </table>\n        </div>\n    </div>\n</div>\n<div class=\"p-2 text-center\">\n    <button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n        Create New Product\n    </button>\n    <button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n        Generate HTTP Error\n    </button>\n    <button class=\"btn btn-danger m-1\" routerLink=\"/does/not/exist\">\n        Generate Routing Error\n    </button>\n</div>                    \n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n    category: string = null;\n\n    constructor(public model: Model, activeRoute: ActivatedRoute) {\n        activeRoute.params.subscribe(params => {\n            this.category = params[\"category\"] || null;\n        })\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category);\n    }\n\n    get categories(): string[] {\n        return this.model.getProducts()\n            .map(p => p.category)\n            .filter((category, index, array) => array.indexOf(category) == index);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd \n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource,\n        { provide: REST_URL, useValue: `http://${location.hostname}:3500/products` }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2 \n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0 \n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    } \n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        }).pipe(catchError((error: Response) => \n             throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/Beginning of Chapter/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { routing } from \"./app.routing\";\nimport { AppComponent } from \"./app.component\";\nimport { TermsGuard } from \"./terms.guard\"\nimport { LoadGuard } from \"./load.guard\";\n\n@NgModule({\n    imports: [BrowserModule, CoreModule, MessageModule, routing],\n    declarations: [AppComponent],\n    providers: [TermsGuard, LoadGuard],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { NotFoundComponent } from \"./core/notFound.component\";\nimport { ProductCountComponent } from \"./core/productCount.component\";\nimport { CategoryCountComponent } from \"./core/categoryCount.component\";\nimport { ModelResolver } from \"./model/model.resolver\";\nimport { TermsGuard } from \"./terms.guard\";\nimport { UnsavedGuard } from \"./core/unsaved.guard\";\nimport { LoadGuard } from \"./load.guard\";\n\nconst childRoutes: Routes = [\n    {\n        path: \"\",\n        canActivateChild: [TermsGuard],\n        children: [{ path: \"products\", component: ProductCountComponent },\n                   { path: \"categories\", component: CategoryCountComponent },\n                   { path: \"\", component: ProductCountComponent }],\n        resolve: { model: ModelResolver }\n    }\n];\n\nconst routes: Routes = [\n    {\n        path: \"ondemand\",\n        loadChildren: () => import(\"./ondemand/ondemand.module\")\n                                .then(m => m.OndemandModule),\n        canLoad: [LoadGuard]                                \n    },\n    {\n        path: \"form/:mode/:id\", component: FormComponent,\n        resolve: { model: ModelResolver },\n        canDeactivate: [UnsavedGuard]\n    },\n    {\n        path: \"form/:mode\", component: FormComponent,\n        resolve: { model: ModelResolver },\n        canActivate: [TermsGuard]\n    },\n    { path: \"table\", component: TableComponent, children: childRoutes },\n    { path: \"table/:category\", component: TableComponent, children: childRoutes },\n    { path: \"\", redirectTo: \"/table\", pathMatch: \"full\" },\n    { path: \"**\", component: NotFoundComponent }\n]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n    selector: \"paCategoryCount\",\n    template: `<div class=\"bg-primary p-2 text-white\">\n                    There are {{count}} categories\n               </div>`\n})\nexport class CategoryCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n\n    constructor(private model: Model,\n        private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef) { }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.count = this.model.getProducts()\n                .map(p => p.category)\n                .filter((category, index, array) => array.indexOf(category) == index)\n                .length;\n        }\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\nimport { UnsavedGuard } from \"./unsaved.guard\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    providers: [UnsavedGuard],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n\n<div *ngIf=\"editing\" class=\"p-2\">\n    <button class=\"btn btn-secondary m-1\"\n            [routerLink]=\"['/form', 'edit', model.getPreviousProductid(product.id)]\">\n        Previous\n    </button>\n    <button class=\"btn btn-secondary\"\n            [routerLink]=\"['/form', 'edit', model.getNextProductId(product.id)]\">\n        Next\n    </button>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"button\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n            Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n    originalProduct = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public router: Router) {\n\n        activeRoute.params.subscribe(params => {\n            this.editing = params[\"mode\"] == \"edit\";\n            let id = params[\"id\"];\n            if (id != null) {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n                Object.assign(this.originalProduct, this.product);\n            }\n        })\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.originalProduct = this.product;\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    //resetForm() {\n    //    this.product = new Product();\n    //}\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paProductCount\",\n    template: `<div class=\"bg-info p-2\">There are {{count}} products</div>`\n})\nexport class ProductCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n    private category: string;\n\n    constructor(private model: Model,\n            private keyValueDiffers: KeyValueDiffers,\n            private changeDetector: ChangeDetectorRef,\n            activeRoute: ActivatedRoute) {\n\n        activeRoute.pathFromRoot.forEach(route => route.params.subscribe(params => {\n            if (params[\"category\"] != null) {\n                this.category = params[\"category\"];\n                this.updateCount();\n            }\n        }))\n    }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.updateCount();\n        }\n    }\n\n    private updateCount() {\n        this.count = this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category)\n            .length;\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/core/table.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col-auto\">\n            <button class=\"btn btn-secondary btn-block\" \n                routerLink=\"/table\" routerLinkActive=\"bg-primary\"\n                [routerLinkActiveOptions]=\"{exact: true}\">\n                All\n            </button>\n            <button *ngFor=\"let category of categories\" \n                    class=\"btn btn-secondary btn-block px-3\"\n                    [routerLink]=\"['/table', category]\" \n                    routerLinkActive=\"bg-primary\">\n                {{category}}\n            </button>\n        </div>\n        <div class=\"col\">\n            <button class=\"btn btn-info mx-1\" routerLink=\"products\">\n                Count Products\n            </button>\n            <button class=\"btn btn-primary mx-1\" routerLink=\"categories\">\n                Count Categories\n            </button>\n            <button class=\"btn btn-secondary mx-1\" routerLink=\"/table\">\n                Count Neither\n            </button>\n            <div class=\"my-2\">\n                <router-outlet></router-outlet>\n            </div>\n        \n            <table class=\"table table-sm table-bordered table-striped\">\n                <tr>\n                    <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n                </tr>\n                <tr *ngFor=\"let item of getProducts()\">\n                    <td>{{item.id}}</td>\n                    <td>{{item.name}}</td>\n                    <td>{{item.category}}</td>\n                    <td>{{item.price | currency:\"USD\" }}</td>\n                    <td class=\"text-center\">\n                        <button class=\"btn btn-danger btn-sm mr-1\" \n                                (click)=\"deleteProduct(item.id)\">\n                            Delete\n                        </button>\n                        <button class=\"btn btn-warning btn-sm\"\n                            [routerLink]=\"['/form', 'edit', item.id]\">\n                            Edit\n                        </button>\n                    </td>\n                </tr>\n            </table>\n        </div>\n    </div>\n</div>\n<div class=\"p-2 text-center\">\n    <button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n        Create New Product\n    </button>\n    <button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n        Generate HTTP Error\n    </button>\n    <button class=\"btn btn-danger m-1\" routerLink=\"/does/not/exist\">\n        Generate Routing Error\n    </button>\n    <button class=\"btn btn-danger\" routerLink=\"/ondemand\">\n        Load Module\n    </button>\n</div>                    \n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n    category: string = null;\n\n    constructor(public model: Model, activeRoute: ActivatedRoute) {\n        activeRoute.params.subscribe(params => {\n            this.category = params[\"category\"] || null;\n        })\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category);\n    }\n\n    get categories(): string[] {\n        return this.model.getProducts()\n            .map(p => p.category)\n            .filter((category, index, array) => array.indexOf(category) == index);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/core/unsaved.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\t\nimport { Observable, Subject } from \"rxjs\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { FormComponent } from \"./form.component\";\n\n@Injectable()\nexport class UnsavedGuard {\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canDeactivate(component: FormComponent, route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<boolean> | boolean {\n\n        if (component.editing) {\n            if ([\"name\", \"category\", \"price\"]\n                .some(prop => component.product[prop]\n                    != component.originalProduct[prop])) {\n                let subject = new Subject<boolean>();\n\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => {\n                        subject.next(true);\n                        subject.complete();\n                    }],\n                    [\"No\", () => {\n                        this.router.navigateByUrl(this.router.url);\n                        subject.next(false);\n                        subject.complete();\n                    }]\n                ];\n                this.messages.reportMessage(new Message(\"Discard Changes?\",\n                    true, responses));\n                return subject;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/load.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Route, Router } from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class LoadGuard {\n    private loaded: boolean = false;\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canLoad(route: Route): Promise<boolean> | boolean {\n\n        return this.loaded || new Promise<boolean>((resolve, reject) => {\n            let responses: [string, (string) => void] [] = [\n                [\"Yes\", () => {\n                    this.loaded = true;\n                    resolve(true);\n                }],\n                [\"No\", () => {\n                    this.router.navigateByUrl(this.router.url);\n                    resolve(false);\n                }]\n            ];\n\n            this.messages.reportMessage(\n                new Message(\"Do you want to load the module?\",\n                    false, responses));\n        });\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n    <h4>{{lastMessage.text}}</h4>\n</div>\n<div class=\"text-center my-2\">\n    <button *ngFor=\"let resp of lastMessage?.responses; let i = index\"\n            (click)=\"resp[1](resp[0])\"\n            class=\"btn btn-primary m-2\" [class.btn-secondary]=\"i > 0\">\n        {{resp[0]}}\n    </button>\n</div>\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd \n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false, \n        public responses?: [string, (string) => void][]) { }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\nimport { ModelResolver } from \"./model.resolver\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource, ModelResolver,\n        { provide: REST_URL, useValue: \"http://localhost:3500/products\" }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/model/model.resolver.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { Model } from \"./repository.model\"\nimport { RestDataSource } from \"./rest.datasource\";\nimport { Product } from \"./product.model\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\n\n@Injectable()\nexport class ModelResolver {\n\n    constructor(\n        private model: Model,\n        private dataSource: RestDataSource,\n        private messages: MessageService) { }\n\n    resolve(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<Product[]> {\n\n        if (this.model.getProducts().length == 0) {\n            this.messages.reportMessage(new Message(\"Loading data...\"));\n            return this.dataSource.getData();\n        }\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2 \n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0 \n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    } \n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError, delay } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        })\n        .pipe(delay(5000))\n        .pipe(catchError((error: Response) => \n            throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/ondemand/first.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"first\",\n    template: `<div class=\"bg-primary text-white p-2\">First Component</div>`\n})\nexport class FirstComponent { }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/ondemand/ondemand.component.html",
    "content": "<div class=\"bg-primary text-white p-2\">This is the ondemand component</div>\n<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col-12 p-2\">\n            <router-outlet></router-outlet>\n        </div>\n    </div>\n    <div class=\"row\">\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"left\"></router-outlet>\n        </div>\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"right\"></router-outlet>\n        </div>\n    </div>\n</div>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand\">Normal</button>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand/swap\">Swap</button>\n<button class=\"btn btn-primary m-2\" routerLink=\"/\">Back</button>\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/ondemand/ondemand.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"ondemand\",\n    templateUrl: \"ondemand.component.html\"\n})\nexport class OndemandComponent { }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/ondemand/ondemand.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OndemandComponent } from \"./ondemand.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { FirstComponent } from \"./first.component\";\nimport { SecondComponent } from \"./second.component\";\n\nlet routing = RouterModule.forChild([\n    {\n        path: \"\",\n        component: OndemandComponent,\n        children: [\n            {\n                path: \"\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: FirstComponent, },\n                    { outlet: \"left\", path: \"\", component: SecondComponent, },\n                    { outlet: \"right\", path: \"\", component: SecondComponent, },\n                ]\n            },\n            {\n                path: \"swap\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: SecondComponent, },\n                    { outlet: \"left\", path: \"\", component: FirstComponent, },\n                    { outlet: \"right\", path: \"\", component: FirstComponent, },\n                ]\n            },\n        ]\n    },\n]);\n\n@NgModule({\n    imports: [CommonModule, routing],\n    declarations: [OndemandComponent, FirstComponent, SecondComponent],\n    exports: [OndemandComponent]\n})\nexport class OndemandModule { }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/ondemand/second.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"second\",\n    template: `<div class=\"bg-info text-white p-2\">Second Component</div>`\n})\nexport class SecondComponent { }\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/app/terms.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class TermsGuard {\n\n    constructor(private messages: MessageService,\n        private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.params[\"mode\"] == \"create\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No\", () => resolve(false)]\n                ];\n                this.messages.reportMessage(\n                    new Message(\"Do you accept the terms & conditions?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n\n    canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.url.length > 0\n            && route.url[route.url.length - 1].path == \"categories\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No \", () => resolve(false)]\n                ];\n\n                this.messages.reportMessage(\n                    new Message(\"Do you want to see the categories component?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "27 - Using URL Routing - Part 3/End of Chapter/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "28 - Animations/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "28 - Animations/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "28 - Animations/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "28 - Animations/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "28 - Animations/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "28 - Animations/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "28 - Animations/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { routing } from \"./app.routing\";\nimport { AppComponent } from \"./app.component\";\nimport { TermsGuard } from \"./terms.guard\"\nimport { LoadGuard } from \"./load.guard\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\n\n@NgModule({\n    imports: [BrowserModule, CoreModule, MessageModule, routing, \n              BrowserAnimationsModule],\n    declarations: [AppComponent],\n    providers: [TermsGuard, LoadGuard],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { NotFoundComponent } from \"./core/notFound.component\";\nimport { ProductCountComponent } from \"./core/productCount.component\";\nimport { CategoryCountComponent } from \"./core/categoryCount.component\";\nimport { ModelResolver } from \"./model/model.resolver\";\nimport { TermsGuard } from \"./terms.guard\";\nimport { UnsavedGuard } from \"./core/unsaved.guard\";\nimport { LoadGuard } from \"./load.guard\";\n\nconst routes: Routes = [\n    {\n        path: \"form/:mode/:id\", component: FormComponent,\n        canDeactivate: [UnsavedGuard]\n    },\n    { path: \"form/:mode\", component: FormComponent, canActivate: [TermsGuard] },\n    { path: \"table\", component: TableComponent },\n    { path: \"table/:category\", component: TableComponent },\n    { path: \"\", redirectTo: \"/table\", pathMatch: \"full\" },\n    { path: \"**\", component: NotFoundComponent }\n]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/core/animationUtils.ts",
    "content": "export function getStylesFromClasses(names: string | string[], \n    elementType: string = \"div\") : { [key: string]: string | number } {\n\nlet elem = document.createElement(elementType);\n(typeof names == \"string\" ? [names] : names).forEach(c => elem.classList.add(c));\n\nlet result = {};\n\nfor (let i = 0; i < document.styleSheets.length; i++) {\n    let sheet = document.styleSheets[i] as CSSStyleSheet;\n    let rules = sheet.rules || sheet.cssRules;\n    for (let j = 0; j < rules.length; j++) {\n        if (rules[j].type == CSSRule.STYLE_RULE) {\n            let styleRule = rules[j] as CSSStyleRule;\n            if (elem.matches(styleRule.selectorText)) {\n                for (let k = 0; k < styleRule.style.length; k++) {\n                    result[styleRule.style[k]] =\n                        styleRule.style[styleRule.style[k]];\n                }\n            } \n        }\n    }\n}\nreturn result;\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n    selector: \"paCategoryCount\",\n    template: `<div class=\"bg-primary p-2 text-white\">\n                    There are {{count}} categories\n               </div>`\n})\nexport class CategoryCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n\n    constructor(private model: Model,\n        private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef) { }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.count = this.model.getProducts()\n                .map(p => p.category)\n                .filter((category, index, array) => array.indexOf(category) == index)\n                .length;\n        }\n    }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\nimport { UnsavedGuard } from \"./unsaved.guard\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    providers: [UnsavedGuard],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n\n<div *ngIf=\"editing\" class=\"p-2\">\n    <button class=\"btn btn-secondary m-1\"\n            [routerLink]=\"['/form', 'edit', model.getPreviousProductid(product.id)]\">\n        Previous\n    </button>\n    <button class=\"btn btn-secondary\"\n            [routerLink]=\"['/form', 'edit', model.getNextProductId(product.id)]\">\n        Next\n    </button>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"button\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n            Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n    originalProduct = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public router: Router) {\n\n        activeRoute.params.subscribe(params => {\n            this.editing = params[\"mode\"] == \"edit\";\n            let id = params[\"id\"];\n            if (id != null) {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n                Object.assign(this.originalProduct, this.product);\n            }\n        })\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.originalProduct = this.product;\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    //resetForm() {\n    //    this.product = new Product();\n    //}\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paProductCount\",\n    template: `<div class=\"bg-info p-2\">There are {{count}} products</div>`\n})\nexport class ProductCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n    private category: string;\n\n    constructor(private model: Model,\n            private keyValueDiffers: KeyValueDiffers,\n            private changeDetector: ChangeDetectorRef,\n            activeRoute: ActivatedRoute) {\n\n        activeRoute.pathFromRoot.forEach(route => route.params.subscribe(params => {\n            if (params[\"category\"] != null) {\n                this.category = params[\"category\"];\n                this.updateCount();\n            }\n        }))\n    }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.updateCount();\n        }\n    }\n\n    private updateCount() {\n        this.count = this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category)\n            .length;\n    }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/core/table.animations.ts",
    "content": "import { trigger, style, state, transition, animate, group } \n    from \"@angular/animations\";\nimport { getStylesFromClasses } from \"./animationUtils\";\n\nexport const HighlightTrigger = trigger(\"rowHighlight\", [\n    state(\"selected\", style(getStylesFromClasses([\"bg-success\", \"h2\"]))),\n    state(\"notselected\", style(getStylesFromClasses(\"bg-info\"))),\n    state(\"void\", style({\n        transform: \"translateX(-50%)\"\n    })),\n    transition(\"* => notselected\", animate(\"200ms\")),\n    transition(\"* => selected\", animate(\"400ms 200ms ease-in\")),\n    transition(\"void => *\", animate(\"500ms\"))\n]);\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/core/table.component.html",
    "content": "<div class=\"form-group bg-info text-white p-2\">\n    <label>Category</label>\n    <select [(ngModel)]=\"highlightCategory\" class=\"form-control\">\n        <option value=\"\">None</option>\n        <option *ngFor=\"let category of categories\">\n            {{category}}\n        </option>\n    </select>\n</div>\n<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\" \n            [@rowHighlight]=\"getRowState(item.category)\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\"\n                [routerLink]=\"['/form', 'edit', item.id]\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<div class=\"p-2 text-center\">\n    <button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n        Create New Product\n    </button>\n</div>                    \n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { HighlightTrigger } from \"./table.animations\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\",\n    animations: [HighlightTrigger]\n})\nexport class TableComponent {\n    category: string = null;\n\n    constructor(private model: Model, activeRoute: ActivatedRoute) {\n        activeRoute.params.subscribe(params => {\n            this.category = params[\"category\"] || null;\n        })\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category);\n    }\n\n    get categories(): string[] {\n        return this.model.getProducts()\n            .map(p => p.category)\n            .filter((category, index, array) => array.indexOf(category) == index);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    highlightCategory: string = \"\";\n\n    getRowState(category: string): string {\n        return this.highlightCategory == \"\" ? \"\" :\n            this.highlightCategory == category ? \"selected\" : \"notselected\";\n    }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/core/unsaved.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\t\nimport { Observable, Subject } from \"rxjs\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { FormComponent } from \"./form.component\";\n\n@Injectable()\nexport class UnsavedGuard {\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canDeactivate(component: FormComponent, route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<boolean> | boolean {\n\n        if (component.editing) {\n            if ([\"name\", \"category\", \"price\"]\n                .some(prop => component.product[prop]\n                    != component.originalProduct[prop])) {\n                let subject = new Subject<boolean>();\n\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => {\n                        subject.next(true);\n                        subject.complete();\n                    }],\n                    [\"No\", () => {\n                        this.router.navigateByUrl(this.router.url);\n                        subject.next(false);\n                        subject.complete();\n                    }]\n                ];\n                this.messages.reportMessage(new Message(\"Discard Changes?\",\n                    true, responses));\n                return subject;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/load.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Route, Router } from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class LoadGuard {\n    private loaded: boolean = false;\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canLoad(route: Route): Promise<boolean> | boolean {\n\n        return this.loaded || new Promise<boolean>((resolve, reject) => {\n            let responses: [string, (string) => void] [] = [\n                [\"Yes\", () => {\n                    this.loaded = true;\n                    resolve(true);\n                }],\n                [\"No\", () => {\n                    this.router.navigateByUrl(this.router.url);\n                    resolve(false);\n                }]\n            ];\n\n            this.messages.reportMessage(\n                new Message(\"Do you want to load the module?\",\n                    false, responses));\n        });\n    }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n    <h4>{{lastMessage.text}}</h4>\n</div>\n<div class=\"text-center my-2\">\n    <button *ngFor=\"let resp of lastMessage?.responses; let i = index\"\n            (click)=\"resp[1](resp[0])\"\n            class=\"btn btn-primary m-2\" [class.btn-secondary]=\"i > 0\">\n        {{resp[0]}}\n    </button>\n</div>\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd \n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false, \n        public responses?: [string, (string) => void][]) { }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\nimport { ModelResolver } from \"./model.resolver\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource, ModelResolver,\n        { provide: REST_URL, useValue: \"http://localhost:3500/products\" }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/model/model.resolver.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { Model } from \"./repository.model\"\nimport { RestDataSource } from \"./rest.datasource\";\nimport { Product } from \"./product.model\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\n\n@Injectable()\nexport class ModelResolver {\n\n    constructor(\n        private model: Model,\n        private dataSource: RestDataSource,\n        private messages: MessageService) { }\n\n    resolve(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<Product[]> {\n\n        if (this.model.getProducts().length == 0) {\n            this.messages.reportMessage(new Message(\"Loading data...\"));\n            return this.dataSource.getData();\n        }\n    }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2 \n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0 \n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    } \n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError, delay } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        })\n        //.pipe(delay(5000))\n        .pipe(catchError((error: Response) => \n            throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/ondemand/first.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"first\",\n    template: `<div class=\"bg-primary text-white p-2\">First Component</div>`\n})\nexport class FirstComponent { }\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/ondemand/ondemand.component.html",
    "content": "<div class=\"bg-primary text-white p-2\">This is the ondemand component</div>\n<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col-12 p-2\">\n            <router-outlet></router-outlet>\n        </div>\n    </div>\n    <div class=\"row\">\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"left\"></router-outlet>\n        </div>\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"right\"></router-outlet>\n        </div>\n    </div>\n</div>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand\">Normal</button>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand/swap\">Swap</button>\n<button class=\"btn btn-primary m-2\" routerLink=\"/\">Back</button>\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/ondemand/ondemand.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"ondemand\",\n    templateUrl: \"ondemand.component.html\"\n})\nexport class OndemandComponent { }\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/ondemand/ondemand.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OndemandComponent } from \"./ondemand.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { FirstComponent } from \"./first.component\";\nimport { SecondComponent } from \"./second.component\";\n\nlet routing = RouterModule.forChild([\n    {\n        path: \"\",\n        component: OndemandComponent,\n        children: [\n            {\n                path: \"\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: FirstComponent, },\n                    { outlet: \"left\", path: \"\", component: SecondComponent, },\n                    { outlet: \"right\", path: \"\", component: SecondComponent, },\n                ]\n            },\n            {\n                path: \"swap\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: SecondComponent, },\n                    { outlet: \"left\", path: \"\", component: FirstComponent, },\n                    { outlet: \"right\", path: \"\", component: FirstComponent, },\n                ]\n            },\n        ]\n    },\n]);\n\n@NgModule({\n    imports: [CommonModule, routing],\n    declarations: [OndemandComponent, FirstComponent, SecondComponent],\n    exports: [OndemandComponent]\n})\nexport class OndemandModule { }\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/ondemand/second.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"second\",\n    template: `<div class=\"bg-info text-white p-2\">Second Component</div>`\n})\nexport class SecondComponent { }\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/app/terms.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class TermsGuard {\n\n    constructor(private messages: MessageService,\n        private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.params[\"mode\"] == \"create\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No\", () => resolve(false)]\n                ];\n                this.messages.reportMessage(\n                    new Message(\"Do you accept the terms & conditions?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n\n    canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.url.length > 0\n            && route.url[route.url.length - 1].path == \"categories\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No \", () => resolve(false)]\n                ];\n\n                this.messages.reportMessage(\n                    new Message(\"Do you want to see the categories component?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "28 - Animations/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "28 - Animations/exampleApp/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "28 - Animations/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { routing } from \"./app.routing\";\nimport { AppComponent } from \"./app.component\";\nimport { TermsGuard } from \"./terms.guard\"\nimport { LoadGuard } from \"./load.guard\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\n\n@NgModule({\n    imports: [BrowserModule, CoreModule, MessageModule, routing, \n              BrowserAnimationsModule],\n    declarations: [AppComponent],\n    providers: [TermsGuard, LoadGuard],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { NotFoundComponent } from \"./core/notFound.component\";\nimport { ProductCountComponent } from \"./core/productCount.component\";\nimport { CategoryCountComponent } from \"./core/categoryCount.component\";\nimport { ModelResolver } from \"./model/model.resolver\";\nimport { TermsGuard } from \"./terms.guard\";\nimport { UnsavedGuard } from \"./core/unsaved.guard\";\nimport { LoadGuard } from \"./load.guard\";\n\nconst routes: Routes = [\n    {\n        path: \"ondemand\",\n        loadChildren: () => import(\"./ondemand/ondemand.module\")\n                                .then(m => m.OndemandModule)\n    },\n    { path: \"\", redirectTo: \"/ondemand\", pathMatch: \"full\" }\n]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/core/animationUtils.ts",
    "content": "export function getStylesFromClasses(names: string | string[], \n    elementType: string = \"div\") : { [key: string]: string | number } {\n\nlet elem = document.createElement(elementType);\n(typeof names == \"string\" ? [names] : names).forEach(c => elem.classList.add(c));\n\nlet result = {};\n\nfor (let i = 0; i < document.styleSheets.length; i++) {\n    let sheet = document.styleSheets[i] as CSSStyleSheet;\n    let rules = sheet.rules || sheet.cssRules;\n    for (let j = 0; j < rules.length; j++) {\n        if (rules[j].type == CSSRule.STYLE_RULE) {\n            let styleRule = rules[j] as CSSStyleRule;\n            if (elem.matches(styleRule.selectorText)) {\n                for (let k = 0; k < styleRule.style.length; k++) {\n                    result[styleRule.style[k]] =\n                        styleRule.style[styleRule.style[k]];\n                }\n            } \n        }\n    }\n}\nreturn result;\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n    selector: \"paCategoryCount\",\n    template: `<div class=\"bg-primary p-2 text-white\">\n                    There are {{count}} categories\n               </div>`\n})\nexport class CategoryCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n\n    constructor(private model: Model,\n        private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef) { }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.count = this.model.getProducts()\n                .map(p => p.category)\n                .filter((category, index, array) => array.indexOf(category) == index)\n                .length;\n        }\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\nimport { UnsavedGuard } from \"./unsaved.guard\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    providers: [UnsavedGuard],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n\n<div *ngIf=\"editing\" class=\"p-2\">\n    <button class=\"btn btn-secondary m-1\"\n            [routerLink]=\"['/form', 'edit', model.getPreviousProductid(product.id)]\">\n        Previous\n    </button>\n    <button class=\"btn btn-secondary\"\n            [routerLink]=\"['/form', 'edit', model.getNextProductId(product.id)]\">\n        Next\n    </button>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"button\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n            Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n    originalProduct = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public router: Router) {\n\n        activeRoute.params.subscribe(params => {\n            this.editing = params[\"mode\"] == \"edit\";\n            let id = params[\"id\"];\n            if (id != null) {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n                Object.assign(this.originalProduct, this.product);\n            }\n        })\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.originalProduct = this.product;\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    //resetForm() {\n    //    this.product = new Product();\n    //}\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paProductCount\",\n    template: `<div class=\"bg-info p-2\">There are {{count}} products</div>`\n})\nexport class ProductCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n    private category: string;\n\n    constructor(private model: Model,\n            private keyValueDiffers: KeyValueDiffers,\n            private changeDetector: ChangeDetectorRef,\n            activeRoute: ActivatedRoute) {\n\n        activeRoute.pathFromRoot.forEach(route => route.params.subscribe(params => {\n            if (params[\"category\"] != null) {\n                this.category = params[\"category\"];\n                this.updateCount();\n            }\n        }))\n    }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.updateCount();\n        }\n    }\n\n    private updateCount() {\n        this.count = this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category)\n            .length;\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/core/table.animations.ts",
    "content": "import { trigger, style, state, transition, animate, group } \n    from \"@angular/animations\";\nimport { getStylesFromClasses } from \"./animationUtils\";\n\nexport const HighlightTrigger = trigger(\"rowHighlight\", [\n    state(\"selected\", style(getStylesFromClasses([\"bg-success\", \"h2\"]))),\n    state(\"notselected\", style(getStylesFromClasses(\"bg-info\"))),\n    state(\"void\", style({\n        transform: \"translateX(-50%)\"\n    })),\n    transition(\"* => notselected\", animate(\"200ms\")),\n    transition(\"* => selected\", animate(\"400ms 200ms ease-in\")),\n    transition(\"void => *\", animate(\"500ms\"))\n]);\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/core/table.component.html",
    "content": "<div class=\"form-group bg-info text-white p-2\">\n    <label>Category</label>\n    <select [(ngModel)]=\"highlightCategory\" class=\"form-control\">\n        <option value=\"\">None</option>\n        <option *ngFor=\"let category of categories\">\n            {{category}}\n        </option>\n    </select>\n</div>\n<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\" \n            [@rowHighlight]=\"getRowState(item.category)\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\"\n                [routerLink]=\"['/form', 'edit', item.id]\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<div class=\"p-2 text-center\">\n    <button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n        Create New Product\n    </button>\n</div>                    \n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { HighlightTrigger } from \"./table.animations\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\",\n    animations: [HighlightTrigger]\n})\nexport class TableComponent {\n    category: string = null;\n\n    constructor(private model: Model, activeRoute: ActivatedRoute) {\n        activeRoute.params.subscribe(params => {\n            this.category = params[\"category\"] || null;\n        })\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category);\n    }\n\n    get categories(): string[] {\n        return this.model.getProducts()\n            .map(p => p.category)\n            .filter((category, index, array) => array.indexOf(category) == index);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    highlightCategory: string = \"\";\n\n    getRowState(category: string): string {\n        return this.highlightCategory == \"\" ? \"\" :\n            this.highlightCategory == category ? \"selected\" : \"notselected\";\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/core/unsaved.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\t\nimport { Observable, Subject } from \"rxjs\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { FormComponent } from \"./form.component\";\n\n@Injectable()\nexport class UnsavedGuard {\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canDeactivate(component: FormComponent, route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<boolean> | boolean {\n\n        if (component.editing) {\n            if ([\"name\", \"category\", \"price\"]\n                .some(prop => component.product[prop]\n                    != component.originalProduct[prop])) {\n                let subject = new Subject<boolean>();\n\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => {\n                        subject.next(true);\n                        subject.complete();\n                    }],\n                    [\"No\", () => {\n                        this.router.navigateByUrl(this.router.url);\n                        subject.next(false);\n                        subject.complete();\n                    }]\n                ];\n                this.messages.reportMessage(new Message(\"Discard Changes?\",\n                    true, responses));\n                return subject;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/load.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Route, Router } from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class LoadGuard {\n    private loaded: boolean = false;\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canLoad(route: Route): Promise<boolean> | boolean {\n\n        return this.loaded || new Promise<boolean>((resolve, reject) => {\n            let responses: [string, (string) => void] [] = [\n                [\"Yes\", () => {\n                    this.loaded = true;\n                    resolve(true);\n                }],\n                [\"No\", () => {\n                    this.router.navigateByUrl(this.router.url);\n                    resolve(false);\n                }]\n            ];\n\n            this.messages.reportMessage(\n                new Message(\"Do you want to load the module?\",\n                    false, responses));\n        });\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n    <h4>{{lastMessage.text}}</h4>\n</div>\n<div class=\"text-center my-2\">\n    <button *ngFor=\"let resp of lastMessage?.responses; let i = index\"\n            (click)=\"resp[1](resp[0])\"\n            class=\"btn btn-primary m-2\" [class.btn-secondary]=\"i > 0\">\n        {{resp[0]}}\n    </button>\n</div>\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd \n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false, \n        public responses?: [string, (string) => void][]) { }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\nimport { ModelResolver } from \"./model.resolver\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource, ModelResolver,\n        { provide: REST_URL, useValue: \"http://localhost:3500/products\" }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/model/model.resolver.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { Model } from \"./repository.model\"\nimport { RestDataSource } from \"./rest.datasource\";\nimport { Product } from \"./product.model\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\n\n@Injectable()\nexport class ModelResolver {\n\n    constructor(\n        private model: Model,\n        private dataSource: RestDataSource,\n        private messages: MessageService) { }\n\n    resolve(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<Product[]> {\n\n        if (this.model.getProducts().length == 0) {\n            this.messages.reportMessage(new Message(\"Loading data...\"));\n            return this.dataSource.getData();\n        }\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2 \n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0 \n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    } \n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError, delay } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        })\n        //.pipe(delay(5000))\n        .pipe(catchError((error: Response) => \n            throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/ondemand/first.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"first\",\n    template: `<div class=\"bg-primary text-white p-2\">First Component</div>`\n})\nexport class FirstComponent { }\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/ondemand/ondemand.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col-12 p-2\">\n            <router-outlet></router-outlet>\n        </div>\n    </div>\n    <div class=\"row\">\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"left\"></router-outlet>\n        </div>\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"right\"></router-outlet>\n        </div>\n    </div>\n</div>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand\">Normal</button>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand/swap\">Swap</button>\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/ondemand/ondemand.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"ondemand\",\n    templateUrl: \"ondemand.component.html\"\n})\nexport class OndemandComponent { }\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/ondemand/ondemand.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OndemandComponent } from \"./ondemand.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { FirstComponent } from \"./first.component\";\nimport { SecondComponent } from \"./second.component\";\n\nlet routing = RouterModule.forChild([\n    {\n        path: \"\",\n        component: OndemandComponent,\n        children: [\n            {\n                path: \"\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: FirstComponent, },\n                    { outlet: \"left\", path: \"\", component: SecondComponent, },\n                    { outlet: \"right\", path: \"\", component: SecondComponent, },\n                ]\n            },\n            {\n                path: \"swap\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: SecondComponent, },\n                    { outlet: \"left\", path: \"\", component: FirstComponent, },\n                    { outlet: \"right\", path: \"\", component: FirstComponent, },\n                ]\n            },\n        ]\n    },\n]);\n\n@NgModule({\n    imports: [CommonModule, routing],\n    declarations: [OndemandComponent, FirstComponent, SecondComponent],\n    exports: [OndemandComponent]\n})\nexport class OndemandModule { }\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/ondemand/second.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"second\",\n    template: `<div class=\"bg-info text-white p-2\">Second Component</div>`\n})\nexport class SecondComponent { }\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/app/terms.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class TermsGuard {\n\n    constructor(private messages: MessageService,\n        private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.params[\"mode\"] == \"create\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No\", () => resolve(false)]\n                ];\n                this.messages.reportMessage(\n                    new Message(\"Do you accept the terms & conditions?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n\n    canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.url.length > 0\n            && route.url[route.url.length - 1].path == \"categories\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No \", () => resolve(false)]\n                ];\n\n                this.messages.reportMessage(\n                    new Message(\"Do you want to see the categories component?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "29 - Unit Testing/Beginning of Chapter/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1, \n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/browserslist",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11 # For IE 9-11 support, remove 'not'."
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/e2e/tsconfig.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~9.0.0\",\n    \"@angular/common\": \"~9.0.0\",\n    \"@angular/compiler\": \"~9.0.0\",\n    \"@angular/core\": \"~9.0.0\",\n    \"@angular/forms\": \"~9.0.0\",\n    \"@angular/platform-browser\": \"~9.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~9.0.0\",\n    \"@angular/router\": \"~9.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.4\",\n    \"tslib\": \"^1.10.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.900.0\",\n    \"@angular/cli\": \"~9.0.0\",\n    \"@angular/compiler-cli\": \"~9.0.0\",\n    \"@angular/language-service\": \"~9.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^5.1.2\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~4.3.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.1.0\",\n    \"karma-jasmine\": \"~2.0.1\",\n    \"karma-jasmine-html-reporter\": \"^1.4.2\",\n    \"protractor\": \"~5.4.3\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~5.18.0\",\n    \"typescript\": \"~3.7.5\"\n  }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { routing } from \"./app.routing\";\nimport { AppComponent } from \"./app.component\";\nimport { TermsGuard } from \"./terms.guard\"\nimport { LoadGuard } from \"./load.guard\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\n\n@NgModule({\n    imports: [BrowserModule, CoreModule, MessageModule, routing, \n              BrowserAnimationsModule],\n    declarations: [AppComponent],\n    providers: [TermsGuard, LoadGuard],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { NotFoundComponent } from \"./core/notFound.component\";\nimport { ProductCountComponent } from \"./core/productCount.component\";\nimport { CategoryCountComponent } from \"./core/categoryCount.component\";\nimport { ModelResolver } from \"./model/model.resolver\";\nimport { TermsGuard } from \"./terms.guard\";\nimport { UnsavedGuard } from \"./core/unsaved.guard\";\nimport { LoadGuard } from \"./load.guard\";\n\nconst routes: Routes = [\n    {\n        path: \"ondemand\",\n        loadChildren: () => import(\"./ondemand/ondemand.module\")\n                                .then(m => m.OndemandModule)\n    },\n    { path: \"\", redirectTo: \"/ondemand\", pathMatch: \"full\" }\n]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/core/animationUtils.ts",
    "content": "export function getStylesFromClasses(names: string | string[], \n    elementType: string = \"div\") : { [key: string]: string | number } {\n\nlet elem = document.createElement(elementType);\n(typeof names == \"string\" ? [names] : names).forEach(c => elem.classList.add(c));\n\nlet result = {};\n\nfor (let i = 0; i < document.styleSheets.length; i++) {\n    let sheet = document.styleSheets[i] as CSSStyleSheet;\n    let rules = sheet.rules || sheet.cssRules;\n    for (let j = 0; j < rules.length; j++) {\n        if (rules[j].type == CSSRule.STYLE_RULE) {\n            let styleRule = rules[j] as CSSStyleRule;\n            if (elem.matches(styleRule.selectorText)) {\n                for (let k = 0; k < styleRule.style.length; k++) {\n                    result[styleRule.style[k]] =\n                        styleRule.style[styleRule.style[k]];\n                }\n            } \n        }\n    }\n}\nreturn result;\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n    selector: \"paCategoryCount\",\n    template: `<div class=\"bg-primary p-2 text-white\">\n                    There are {{count}} categories\n               </div>`\n})\nexport class CategoryCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n\n    constructor(private model: Model,\n        private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef) { }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.count = this.model.getProducts()\n                .map(p => p.category)\n                .filter((category, index, array) => array.indexOf(category) == index)\n                .length;\n        }\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\nimport { UnsavedGuard } from \"./unsaved.guard\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    providers: [UnsavedGuard],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n\n<div *ngIf=\"editing\" class=\"p-2\">\n    <button class=\"btn btn-secondary m-1\"\n            [routerLink]=\"['/form', 'edit', model.getPreviousProductid(product.id)]\">\n        Previous\n    </button>\n    <button class=\"btn btn-secondary\"\n            [routerLink]=\"['/form', 'edit', model.getNextProductId(product.id)]\">\n        Next\n    </button>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"button\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n            Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n    originalProduct = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public router: Router) {\n\n        activeRoute.params.subscribe(params => {\n            this.editing = params[\"mode\"] == \"edit\";\n            let id = params[\"id\"];\n            if (id != null) {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n                Object.assign(this.originalProduct, this.product);\n            }\n        })\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.originalProduct = this.product;\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    //resetForm() {\n    //    this.product = new Product();\n    //}\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paProductCount\",\n    template: `<div class=\"bg-info p-2\">There are {{count}} products</div>`\n})\nexport class ProductCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n    private category: string;\n\n    constructor(private model: Model,\n            private keyValueDiffers: KeyValueDiffers,\n            private changeDetector: ChangeDetectorRef,\n            activeRoute: ActivatedRoute) {\n\n        activeRoute.pathFromRoot.forEach(route => route.params.subscribe(params => {\n            if (params[\"category\"] != null) {\n                this.category = params[\"category\"];\n                this.updateCount();\n            }\n        }))\n    }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.updateCount();\n        }\n    }\n\n    private updateCount() {\n        this.count = this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category)\n            .length;\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/core/table.animations.ts",
    "content": "import { trigger, style, state, transition, animate, group } \n    from \"@angular/animations\";\nimport { getStylesFromClasses } from \"./animationUtils\";\n\nexport const HighlightTrigger = trigger(\"rowHighlight\", [\n    state(\"selected\", style(getStylesFromClasses([\"bg-success\", \"h2\"]))),\n    state(\"notselected\", style(getStylesFromClasses(\"bg-info\"))),\n    state(\"void\", style({\n        transform: \"translateX(-50%)\"\n    })),\n    transition(\"* => notselected\", animate(\"200ms\")),\n    transition(\"* => selected\", animate(\"400ms 200ms ease-in\")),\n    transition(\"void => *\", animate(\"500ms\"))\n]);\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/core/table.component.html",
    "content": "<div class=\"form-group bg-info text-white p-2\">\n    <label>Category</label>\n    <select [(ngModel)]=\"highlightCategory\" class=\"form-control\">\n        <option value=\"\">None</option>\n        <option *ngFor=\"let category of categories\">\n            {{category}}\n        </option>\n    </select>\n</div>\n<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\" \n            [@rowHighlight]=\"getRowState(item.category)\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\"\n                [routerLink]=\"['/form', 'edit', item.id]\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<div class=\"p-2 text-center\">\n    <button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n        Create New Product\n    </button>\n</div>                    \n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { HighlightTrigger } from \"./table.animations\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\",\n    animations: [HighlightTrigger]\n})\nexport class TableComponent {\n    category: string = null;\n\n    constructor(private model: Model, activeRoute: ActivatedRoute) {\n        activeRoute.params.subscribe(params => {\n            this.category = params[\"category\"] || null;\n        })\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category);\n    }\n\n    get categories(): string[] {\n        return this.model.getProducts()\n            .map(p => p.category)\n            .filter((category, index, array) => array.indexOf(category) == index);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    highlightCategory: string = \"\";\n\n    getRowState(category: string): string {\n        return this.highlightCategory == \"\" ? \"\" :\n            this.highlightCategory == category ? \"selected\" : \"notselected\";\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/core/unsaved.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\t\nimport { Observable, Subject } from \"rxjs\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { FormComponent } from \"./form.component\";\n\n@Injectable()\nexport class UnsavedGuard {\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canDeactivate(component: FormComponent, route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<boolean> | boolean {\n\n        if (component.editing) {\n            if ([\"name\", \"category\", \"price\"]\n                .some(prop => component.product[prop]\n                    != component.originalProduct[prop])) {\n                let subject = new Subject<boolean>();\n\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => {\n                        subject.next(true);\n                        subject.complete();\n                    }],\n                    [\"No\", () => {\n                        this.router.navigateByUrl(this.router.url);\n                        subject.next(false);\n                        subject.complete();\n                    }]\n                ];\n                this.messages.reportMessage(new Message(\"Discard Changes?\",\n                    true, responses));\n                return subject;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/load.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Route, Router } from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class LoadGuard {\n    private loaded: boolean = false;\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canLoad(route: Route): Promise<boolean> | boolean {\n\n        return this.loaded || new Promise<boolean>((resolve, reject) => {\n            let responses: [string, (string) => void] [] = [\n                [\"Yes\", () => {\n                    this.loaded = true;\n                    resolve(true);\n                }],\n                [\"No\", () => {\n                    this.router.navigateByUrl(this.router.url);\n                    resolve(false);\n                }]\n            ];\n\n            this.messages.reportMessage(\n                new Message(\"Do you want to load the module?\",\n                    false, responses));\n        });\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n    <h4>{{lastMessage.text}}</h4>\n</div>\n<div class=\"text-center my-2\">\n    <button *ngFor=\"let resp of lastMessage?.responses; let i = index\"\n            (click)=\"resp[1](resp[0])\"\n            class=\"btn btn-primary m-2\" [class.btn-secondary]=\"i > 0\">\n        {{resp[0]}}\n    </button>\n</div>\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd \n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false, \n        public responses?: [string, (string) => void][]) { }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\nimport { ModelResolver } from \"./model.resolver\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource, ModelResolver,\n        { provide: REST_URL, useValue: \"http://localhost:3500/products\" }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/model/model.resolver.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { Model } from \"./repository.model\"\nimport { RestDataSource } from \"./rest.datasource\";\nimport { Product } from \"./product.model\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\n\n@Injectable()\nexport class ModelResolver {\n\n    constructor(\n        private model: Model,\n        private dataSource: RestDataSource,\n        private messages: MessageService) { }\n\n    resolve(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<Product[]> {\n\n        if (this.model.getProducts().length == 0) {\n            this.messages.reportMessage(new Message(\"Loading data...\"));\n            return this.dataSource.getData();\n        }\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2 \n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0 \n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    } \n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError, delay } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        })\n        //.pipe(delay(5000))\n        .pipe(catchError((error: Response) => \n            throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/ondemand/attr.directive.ts",
    "content": "import {\n    Directive, ElementRef, Attribute, Input, SimpleChange\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n    constructor(private element: ElementRef) { }\n\n    @Input(\"pa-attr\")\n    bgClass: string;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"bgClass\"];\n        let classList = this.element.nativeElement.classList;\n        if (!change.isFirstChange() && classList.contains(change.previousValue)) {\n            classList.remove(change.previousValue);\n        }\n        if (!classList.contains(change.currentValue)) {\n            classList.add(change.currentValue);\n        }\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/ondemand/first.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-success]=\"highlighted\">\n    There are\n    <span class=\"strong\"> {{getProducts().length}} </span>\n    products\n</div>\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/ondemand/first.component.ts",
    "content": "import { Component, HostListener, Input } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RestDataSource } from \"../model/rest.datasource\";\n\n@Component({\n    selector: \"first\",\n    templateUrl: \"first.component.html\"\n})\nexport class FirstComponent {\n    _category: string = \"Soccer\";\n    _products: Product[] = [];\n    highlighted: boolean = false;\n\n    constructor(public datasource: RestDataSource) {}\n\n    ngOnInit() {\n        this.updateData();\n    }\n\n    getProducts(): Product[] {\n        return this._products;\n    }\n\n    set category(newValue: string) {\n        this._category;\n        this.updateData();\n    }\n\n    updateData() {\n        this.datasource.getData()\n            .subscribe(data => this._products = data\n                .filter(p => p.category == this._category));\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/ondemand/ondemand.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col-12 p-2\">\n            <router-outlet></router-outlet>\n        </div>\n    </div>\n    <div class=\"row\">\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"left\"></router-outlet>\n        </div>\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"right\"></router-outlet>\n        </div>\n    </div>\n</div>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand\">Normal</button>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand/swap\">Swap</button>\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/ondemand/ondemand.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"ondemand\",\n    templateUrl: \"ondemand.component.html\"\n})\nexport class OndemandComponent { }\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/ondemand/ondemand.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OndemandComponent } from \"./ondemand.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { FirstComponent } from \"./first.component\";\nimport { SecondComponent } from \"./second.component\";\n\nlet routing = RouterModule.forChild([\n    {\n        path: \"\",\n        component: OndemandComponent,\n        children: [\n            {\n                path: \"\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: FirstComponent, },\n                    { outlet: \"left\", path: \"\", component: SecondComponent, },\n                    { outlet: \"right\", path: \"\", component: SecondComponent, },\n                ]\n            },\n            {\n                path: \"swap\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: SecondComponent, },\n                    { outlet: \"left\", path: \"\", component: FirstComponent, },\n                    { outlet: \"right\", path: \"\", component: FirstComponent, },\n                ]\n            },\n        ]\n    },\n]);\n\n@NgModule({\n    imports: [CommonModule, routing],\n    declarations: [OndemandComponent, FirstComponent, SecondComponent],\n    exports: [OndemandComponent]\n})\nexport class OndemandModule { }\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/ondemand/second.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"second\",\n    template: `<div class=\"bg-info text-white p-2\">Second Component</div>`\n})\nexport class SecondComponent { }\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/terms.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class TermsGuard {\n\n    constructor(private messages: MessageService,\n        private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.params[\"mode\"] == \"create\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No\", () => resolve(false)]\n                ];\n                this.messages.reportMessage(\n                    new Message(\"Do you accept the terms & conditions?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n\n    canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.url.length > 0\n            && route.url[route.url.length - 1].path == \"categories\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No \", () => resolve(false)]\n                ];\n\n                this.messages.reportMessage(\n                    new Message(\"Do you want to see the categories component?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/tests/app.component.spec.ts",
    "content": "describe(\"Jasmine Test Environment\", () => {\n    it(\"test numeric value\", () => expect(12).toBeGreaterThan(10));\n    it(\"test string value\", () => expect(\"London\").toMatch(\"^Lon\"));\n});\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/tests/attr.directive.spec.ts",
    "content": "import { TestBed, ComponentFixture } from \"@angular/core/testing\";\nimport { Component, DebugElement, ViewChild } from \"@angular/core\";\nimport { By } from \"@angular/platform-browser\";\nimport { PaAttrDirective } from \"../ondemand/attr.directive\";\n\n@Component({\n    template: `<div><span [pa-attr]=\"className\">Test Content</span></div>`\n})\nclass TestComponent {\n    className = \"initialClass\"\n\n    @ViewChild(PaAttrDirective)\n    attrDirective: PaAttrDirective;\n}\n\ndescribe(\"PaAttrDirective\", () => {\n\n    let fixture: ComponentFixture<TestComponent>;\n    let directive: PaAttrDirective;\n    let spanElement: HTMLSpanElement;\n\n    beforeEach(() => {\n        TestBed.configureTestingModule({\n            declarations: [TestComponent, PaAttrDirective],\n        });\n        fixture = TestBed.createComponent(TestComponent);\n        fixture.detectChanges();\n        directive = fixture.componentInstance.attrDirective;\n        spanElement = fixture.debugElement.query(By.css(\"span\")).nativeElement;\n    });\n\n    it(\"generates the correct number of elements\", () => {\n        fixture.detectChanges();\n        expect(directive.bgClass).toBe(\"initialClass\");\n        expect(spanElement.className).toBe(\"initialClass\");\n\n        fixture.componentInstance.className = \"nextClass\";\n        fixture.detectChanges();\n        expect(directive.bgClass).toBe(\"nextClass\");\n        expect(spanElement.className).toBe(\"nextClass\");\n    });\n});\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/app/tests/first.component.spec.ts",
    "content": "import { TestBed, ComponentFixture, async, fakeAsync, tick } from \"@angular/core/testing\";\nimport { FirstComponent } from \"../ondemand/first.component\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { DebugElement } from \"@angular/core\";\nimport { By } from \"@angular/platform-browser\";\nimport { Component, ViewChild } from \"@angular/core\";\nimport { RestDataSource } from \"../model/rest.datasource\";\nimport { Observable } from \"rxjs\";\nimport { Injectable } from \"@angular/core\";\n\n@Injectable()\nclass MockDataSource {\n    public data = [\n        new Product(1, \"test1\", \"Soccer\", 100),\n        new Product(2, \"test2\", \"Chess\", 100),\n        new Product(3, \"test3\", \"Soccer\", 100),\n    ];\n\n    getData(): Observable<Product[]> {\n        return new Observable<Product[]>(obs => {\n            setTimeout(() => obs.next(this.data), 1000);\n        })\n    }\n}\n\ndescribe(\"FirstComponent\", () => {\n\n    let fixture: ComponentFixture<FirstComponent>;\n    let component: FirstComponent;\n    let dataSource = new MockDataSource();\n\n    beforeEach(async(() => {\n        TestBed.configureTestingModule({\n            declarations: [FirstComponent],\n            providers: [\n                { provide: RestDataSource, useValue: dataSource }\n            ]\n        });\n        TestBed.compileComponents().then(() => {\n            fixture = TestBed.createComponent(FirstComponent);\n            component = fixture.componentInstance;\n        });\n    }));\n\n    it(\"performs async op\", fakeAsync( () => {\n        dataSource.data.push(new Product(100, \"test100\", \"Soccer\", 100));\n\n        fixture.detectChanges();\n\n        tick(1000);\n       \n        fixture.whenStable().then(() => {\n            expect(component.getProducts().length).toBe(3);\n        });\n    }));\n});\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/tsconfig.app.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  },\n  \"angularCompilerOptions\": {\n    \"fullTemplateTypeCheck\": true,\n    \"strictInjectionParameters\": true\n  }\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "29 - Unit Testing/End of Chapter/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"interface-name\": false,\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-consecutive-blank-lines\": false,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"object-literal-sort-keys\": false,\n    \"ordered-imports\": false,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"trailing-comma\": false,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Contributing.md",
    "content": "# Contributing to Apress Source Code\r\n\r\nCopyright for Apress source code belongs to the author(s). However, under fair use you are encouraged to fork and contribute minor corrections and updates for the benefit of the author(s) and other readers.\r\n\r\nIf you have trouble getting this book's examples to work, please contact the author at adam@adam-freeman.com for help. Please make it clear in your email which book you are reading and which chapter/example is causing the problem."
  },
  {
    "path": "LICENSE.txt",
    "content": "﻿Freeware License, some rights reserved\n\nCopyright (c) 2020 Adam Freeman\n\nPermission is hereby granted, free of charge, to anyone obtaining a copy \nof this software and associated documentation files (the \"Software\"), \nto work with the Software within the limits of freeware distribution and fair use. \nThis includes the rights to use, copy, and modify the Software for personal use. \nUsers are also allowed and encouraged to submit corrections and modifications \nto the Software for the benefit of other users.\n\nIt is not allowed to reuse,  modify, or redistribute the Software for \ncommercial use in any way, or for a user’s educational materials such as books \nor blog articles without prior permission from the copyright holder. \n\nThe above copyright notice and this permission notice need to be included \nin all copies or substantial portions of the software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS OR APRESS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n"
  },
  {
    "path": "README.md",
    "content": "# Apress Source Code\n\nThis repository accompanies [*Pro Angular 9*](https://www.apress.com/9781484259979) by Adam Freeman (Apress, 2020).\n\n[comment]: #cover\n![Cover image](9781484259979.jpg)\n\nDownload the files as a zip using the green button, or clone the repository to your machine using Git.\n\n## Releases\n\nRelease v1.0 corresponds to the code in the published book, without corrections or updates.\n\n## Contributions\n\nSee the file Contributing.md for more information on how you can contribute to this repository."
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"todo\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/todo\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"todo:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"todo:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"todo:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"todo:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"todo:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"todo\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('todo app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/todo'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/package.json",
    "content": "{\n  \"name\": \"todo\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/src/app/app.component.html",
    "content": "<h3 class=\"bg-primary text-center text-white p-2\">\n  {{ username }}'s To Do List\n  <h6 class=\"mt-1\">{{ itemCount }} {{ showComplete ? \"\" : \"Incomplete\" }} Items</h6>\n</h3>  \n\n<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col\">\n      <input class=\"form-control\" placeholder=\"Enter task here\" #todoText />    \n    </div>\n    <div class=\"col-auto\">\n      <button class=\"btn btn-primary\" (click)=\"addItem(todoText.value)\">\n        Add\n      </button>\n    </div>\n  </div>\n</div>\n\n<div class=\"m-2\">\n  <table class=\"table table-striped table-bordered table-sm\">\n    <thead>\n        <tr><th>#</th><th>Description</th><th>Done</th></tr>\n    </thead>\n    <tbody>\n        <tr *ngFor=\"let item of items; let i = index\">\n            <td>{{ i + 1 }}</td>\n            <td>{{ item.task }}</td>\n            <td><input type=\"checkbox\" [(ngModel)]=\"item.complete\" /></td>          \n            <!-- <td [ngSwitch]=\"item.complete\"> \n                <span *ngSwitchCase=\"true\">Yes</span>\n                <span *ngSwitchDefault>No</span>\n            </td> -->\n        </tr>           \n    </tbody>\n  </table>\n</div>\n\n<div class=\"bg-secondary text-white text-center p-2\">\n  <div class=\"form-check\">\n    <input class=\"form-check-input\" type=\"checkbox\" [(ngModel)]=\"showComplete\" />\n    <label class=\"form-check-label\" for=\"defaultCheck1\">\n      Show Completed Tasks\n    </label>\n  </div>  \n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\nimport { TodoList } from \"./todoList\";\nimport { TodoItem } from \"./todoItem\";\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  private list = new TodoList(\"Bob\", [\n    new TodoItem(\"Go for run\", true),\n    new TodoItem(\"Get flowers\"),\n    new TodoItem(\"Collect tickets\"),\n  ]);  \n  \n  get username(): string {\n    return this.list.user;\n  }\n\n  get itemCount(): number {\n    return this.items.length;\n  }\n\n  get items(): readonly TodoItem[] {\n    return this.list.items.filter(item => this.showComplete || !item.complete);\n  }\n\n  addItem(newItem) {\n    if (newItem != \"\") {\n        this.list.addItem(newItem);\n    }\n  }\n\n  showComplete: boolean = false;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from \"@angular/forms\";\n\nimport { AppComponent } from './app.component';\n\n@NgModule({\n  declarations: [\n    AppComponent\n  ],\n  imports: [\n    BrowserModule, FormsModule\n  ],\n  providers: [],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/src/app/todoItem.ts",
    "content": "export class TodoItem {\n\n    constructor(taskVal: string, completeVal: boolean = false) {\n        this.task = taskVal;\n        this.complete = completeVal;\n    }\n\n    task: string;\n    complete: boolean;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/src/app/todoList.ts",
    "content": "import { TodoItem } from \"./todoItem\";\n\nexport class TodoList {\n    \n    constructor(public user: string, private todoItems: TodoItem[] = []) {\n        // no statements required\n    }\n\n    get items(): readonly TodoItem[]  { \n        return this.todoItems;\n    }\n\n    addItem(task: string) {\n        this.todoItems.push(new TodoItem(task));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Todo</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app-root></app-root>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 02/todo/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"JavaScriptPrimer\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/JavaScriptPrimer\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"JavaScriptPrimer:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"JavaScriptPrimer:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"JavaScriptPrimer:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"JavaScriptPrimer:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"JavaScriptPrimer:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"JavaScriptPrimer\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('JavaScriptPrimer app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/JavaScriptPrimer'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/package.json",
    "content": "{\n  \"name\": \"java-script-primer\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'JavaScriptPrimer';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\nimport { AppComponent } from './app.component';\n\n@NgModule({\n  declarations: [\n    AppComponent\n  ],\n  imports: [\n    BrowserModule\n  ],\n  providers: [],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>JavaScriptPrimer</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app-root></app-root>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/src/main.ts",
    "content": "let products = [\n  { name: \"Hat\", price: 24.5, stock: 10 },\n  { name: \"Kayak\", price: 289.99, stock: 1 },\n  { name: \"Soccer Ball\", price: 10, stock: 0 },\n  { name: \"Running Shoes\", price: 116.50, stock: 20 }\n];\n\nlet totalValue = products\n  .filter(item => item.stock > 0)\n  .reduce((prev, item) => prev + (item.price * item.stock), 0);\n\nconsole.log(\"Total value: $\" + totalValue.toFixed(2));    \n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 05/JavaScriptPrimer/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"JavaScriptPrimer\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/JavaScriptPrimer\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"JavaScriptPrimer:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"JavaScriptPrimer:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"JavaScriptPrimer:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"JavaScriptPrimer:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"JavaScriptPrimer:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"JavaScriptPrimer\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('JavaScriptPrimer app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/JavaScriptPrimer'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/package.json",
    "content": "{\n  \"name\": \"java-script-primer\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'JavaScriptPrimer';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\nimport { AppComponent } from './app.component';\n\n@NgModule({\n  declarations: [\n    AppComponent\n  ],\n  imports: [\n    BrowserModule\n  ],\n  providers: [],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>JavaScriptPrimer</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app-root></app-root>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/main.ts",
    "content": "import { Name, WeatherLocation } from \"./modules/NameAndWeather\";\nimport { Name as OtherName } from \"./modules/DuplicateName\";\nimport { TempConverter } from \"./tempConverter\";\n\nlet cities: { [index: string]: [string, string] } = {};\n\ncities[\"London\"] = [\"raining\", TempConverter.convertFtoC(\"38\")];\ncities[\"Paris\"] = [\"sunny\", TempConverter.convertFtoC(\"52\")];\ncities[\"Berlin\"] = [\"snowing\", TempConverter.convertFtoC(\"23\")];\n\nfor (let key in cities) {\n    console.log(`${key}: ${cities[key][0]}, ${cities[key][1]}`);\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/modules/DuplicateName.ts",
    "content": "export class Name {\n\n    get message() {\n        return \"Other Name\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/modules/NameAndWeather.ts",
    "content": "export class Name {\n    \n    constructor(private first: string, private second: string) {}\n\n    get nameMessage() : string {\n        return `Hello ${this.first} ${this.second}`;\n    }\n}\n\nexport class WeatherLocation {\n    \n    constructor(private weather: string, private city: string) {}\n\n    get weatherMessage() : string {\n        return `It is ${this.weather} in ${this.city}`;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/tempConverter.ts",
    "content": "export class TempConverter {\n\n    static convertFtoC(temp: any): string {\n        let value: number;\n        if ((temp as number).toPrecision) {\n            value = temp;\n        } else if ((temp as string).indexOf) {\n            value = parseFloat(<string>temp);\n        } else {\n            value = 0;\n        }\n        return TempConverter.performCalculation(value).toFixed(1);\n    }\n\n    private static performCalculation(value: number): number {\n        return (parseFloat(value.toPrecision(2)) - 32) / 1.8;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 06/JavaScriptPrimer/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"           \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/data.js",
    "content": "module.exports = function () {\n    return { \n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", \n                description: \"A boat for one person\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", \n                description: \"Protective and fashionable\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", \n                description: \"FIFA-approved size and weight\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", \n                description: \"Give your playing field a professional touch\", \n                price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", \n                description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", \n                description: \"Improve brain efficiency by 75%\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", \n                description: \"Secretly give your opponent a disadvantage\", \n                price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", \n                description: \"A fun game for the family\", price: 75 },\n            { id: 9, name: \"Bling King\", category: \"Chess\", \n                description: \"Gold-plated, diamond-studded King\", price: 1200 }\n        ],\n        orders: []\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"        \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<store></store>\"\n})\nexport class AppComponent { }"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\n\n@NgModule({\n    imports: [BrowserModule, StoreModule],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@NgModule({\n    providers: [ProductRepository, StaticDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(\n        public id?: number,\n        public name?: string,\n        public category?: string,\n        public description?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: StaticDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) {\n    }\n\n    @Input(\"counterOf\")\n    counter: number;\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.container.clear();\n        for (let i = 0; i < this.counter; i++) {\n            this.container.createEmbeddedView(this.template,\n                new CounterDirectiveContext(i + 1));\n        }\n    }\n}\n\nclass CounterDirectiveContext {\n    constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n    <div class=\"row\">\n  \n      <div class=\"col-3 p-2\">\n        <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n          Home\n        </button>\n        <button *ngFor=\"let cat of categories\" \n             class=\"btn btn-outline-primary btn-block\"\n             [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n          {{cat}}\n        </button>\n      </div>\n  \n      <div class=\"col-9 p-2\">\n        <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n          <h4>\n            {{product.name}}\n            <span class=\"badge badge-pill badge-primary float-right\">\n              {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n            </span>\n          </h4>\n          <div class=\"card-text bg-white p-1\">{{product.description}}</div>\n        </div>\n  \n        <div class=\"form-inline float-left mr-1\">\n          <select class=\"form-control\" [value]=\"productsPerPage\"\n                  (change)=\"changePageSize($event.target.value)\">\n            <option value=\"3\">3 per Page</option>\n            <option value=\"4\">4 per Page</option>\n            <option value=\"6\">6 per Page</option>\n            <option value=\"8\">8 per Page</option>\n          </select>\n        </div>\n  \n        <div class=\"btn-group float-right\">\n          <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n              class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n            {{page}}\n          </button>\n        </div>\n  \n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository) {}\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    //get pageNumbers(): number[] {\n    //    return Array(Math.ceil(this.repository\n    //        .getProducts(this.selectedCategory).length / this.productsPerPage))\n    //            .fill(0).map((x, i) => i + 1);\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule],\n    declarations: [StoreComponent, CounterDirective],\n    exports: [StoreComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 07/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"           \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/data.js",
    "content": "module.exports = function () {\n    return { \n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", \n                description: \"A boat for one person\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", \n                description: \"Protective and fashionable\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", \n                description: \"FIFA-approved size and weight\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", \n                description: \"Give your playing field a professional touch\", \n                price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", \n                description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", \n                description: \"Improve brain efficiency by 75%\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", \n                description: \"Secretly give your opponent a disadvantage\", \n                price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", \n                description: \"A fun game for the family\", price: 75 },\n            { id: 9, name: \"Bling King\", category: \"Chess\", \n                description: \"Gold-plated, diamond-studded King\", price: 1200 }\n        ],\n        orders: []\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"        \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<router-outlet></router-outlet>\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\nimport { StoreComponent } from \"./store/store.component\";\nimport { CheckoutComponent } from \"./store/checkout.component\";\nimport { CartDetailComponent } from \"./store/cartDetail.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { StoreFirstGuard } from \"./storeFirst.guard\";\n\n@NgModule({\n    imports: [BrowserModule, StoreModule,\n        RouterModule.forRoot([\n            {\n                path: \"store\", component: StoreComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"cart\", component: CartDetailComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"checkout\", component: CheckoutComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            { path: \"**\", redirectTo: \"/store\" }\n        ])],\n    providers: [StoreFirstGuard],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/model/cart.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class Cart {\n    public lines: CartLine[] = [];\n    public itemCount: number = 0;\n    public cartPrice: number = 0;\n\n    addLine(product: Product, quantity: number = 1) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity += quantity;    \n        } else {\n            this.lines.push(new CartLine(product, quantity));\n        }\n        this.recalculate();\n    }\n\n    updateQuantity(product: Product, quantity: number) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity = Number(quantity);\n        }\n        this.recalculate();\n    }\n\n    removeLine(id: number) {\n        let index = this.lines.findIndex(line => line.product.id == id);\n        this.lines.splice(index, 1);\n        this.recalculate();\n    }\n\n    clear() {\n        this.lines = [];\n        this.itemCount = 0;\n        this.cartPrice = 0;\n    }\n\n    private recalculate() {\n        this.itemCount = 0;\n        this.cartPrice = 0;\n        this.lines.forEach(l => {\n            this.itemCount += l.quantity;\n            this.cartPrice += (l.quantity * l.product.price);\n        })\n    }\n}\n\nexport class CartLine {\n    \n    constructor(public product: Product,\n        public quantity: number) {}\n\n    get lineTotal() {\n        return this.quantity * this.product.price;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { OrderRepository } from \"./order.repository\";\nimport { RestDataSource } from \"./rest.datasource\";\nimport { HttpClientModule } from \"@angular/common/http\";\n\n@NgModule({\n  imports: [HttpClientModule],\n  providers: [ProductRepository, Cart, Order, OrderRepository,\n    { provide: StaticDataSource, useClass: RestDataSource }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/model/order.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Cart } from \"./cart.model\";\n\n@Injectable()\nexport class Order {\n    public id: number;\n    public name: string;\n    public address: string;\n    public city: string;\n    public state: string;\n    public zip: string;\n    public country: string;\n    public shipped: boolean = false;\n\n    constructor(public cart: Cart) { }\n\n    clear() {\n        this.id = null;\n        this.name = this.address = this.city = null;\n        this.state = this.zip = this.country = null;\n        this.shipped = false;\n        this.cart.clear();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/model/order.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { Order } from \"./order.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class OrderRepository {\n    private orders: Order[] = [];\n\n    constructor(private dataSource: StaticDataSource) {}\n\n    getOrders(): Order[] {\n        return this.orders;\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.dataSource.saveOrder(order);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(\n        public id?: number,\n        public name?: string,\n        public category?: string,\n        public description?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: StaticDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/model/rest.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\n\nconst PROTOCOL = \"http\";\nconst PORT = 3500;\n\n@Injectable()\nexport class RestDataSource {\n  baseUrl: string;\n\n  constructor(private http: HttpClient) {\n    this.baseUrl = `${PROTOCOL}://${location.hostname}:${PORT}/`;\n  }\n\n  getProducts(): Observable<Product[]> {\n    return this.http.get<Product[]>(this.baseUrl + \"products\");\n  }\n\n  saveOrder(order: Order): Observable<Order> {\n    return this.http.post<Order>(this.baseUrl + \"orders\", order);\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\nimport { Order } from \"./order.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        console.log(JSON.stringify(order));\n        return from([order]);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/store/cartDetail.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col mt-2\">\n        <h2 class=\"text-center\">Your Cart</h2>\n        <table class=\"table table-bordered table-striped p-2\">\n          <thead>\n            <tr>\n              <th>Quantity</th>\n              <th>Product</th>\n              <th class=\"text-right\">Price</th>\n              <th class=\"text-right\">Subtotal</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr *ngIf=\"cart.lines.length == 0\">\n              <td colspan=\"4\" class=\"text-center\">\n                Your cart is empty\n              </td>\n            </tr>\n            <tr *ngFor=\"let line of cart.lines\">\n              <td>\n                <input type=\"number\" class=\"form-control-sm\"\n                       style=\"width:5em\"\n                       [value]=\"line.quantity\"\n                       (change)=\"cart.updateQuantity(line.product,\n                                  $event.target.value)\" />\n              </td>\n              <td>{{line.product.name}}</td>\n              <td class=\"text-right\">\n                  {{line.product.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n              <td class=\"text-right\">\n                  {{(line.lineTotal) | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n              </td>\n              <td class=\"text-center\">\n                <button class=\"btn btn-sm btn-danger\"\n                        (click)=\"cart.removeLine(line.product.id)\">\n                  Remove\n                </button>\n              </td>\n            </tr>\n          </tbody>\n          <tfoot>\n            <tr>\n              <td colspan=\"3\" class=\"text-right\">Total:</td>\n              <td class=\"text-right\">\n                {{cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n            </tr>\n          </tfoot>\n        </table>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col\">\n      <div class=\"text-center\">\n        <button class=\"btn btn-primary m-1\" routerLink=\"/store\">\n            Continue Shopping\n        </button>\n        <button class=\"btn btn-secondary m-1\" routerLink=\"/checkout\"\n                [disabled]=\"cart.lines.length == 0\">\n          Checkout\n        </button>\n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/store/cartDetail.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    templateUrl: \"cartDetail.component.html\"\n})\nexport class CartDetailComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/store/cartSummary.component.html",
    "content": "<div class=\"float-right\">\n  <small>\n    Your cart:\n    <span *ngIf=\"cart.itemCount > 0\">\n      {{ cart.itemCount }} item(s)\n      {{ cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n    </span>\n    <span *ngIf=\"cart.itemCount == 0\">\n      (empty)\n    </span>\n  </small>\n  <button class=\"btn btn-sm bg-dark text-white\"\n      [disabled]=\"cart.itemCount == 0\" routerLink=\"/cart\">\n    <i class=\"fa fa-shopping-cart\"></i>\n  </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/store/cartSummary.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    selector: \"cart-summary\",\n    templateUrl: \"cartSummary.component.html\"\n})\nexport class CartSummaryComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/store/checkout.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/store/checkout.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n  </div>\n  \n  <div *ngIf=\"orderSent\" class=\"m-2 text-center\">\n    <h2>Thanks!</h2>\n    <p>Thanks for placing your order.</p>\n    <p>We'll ship your goods as soon as possible.</p>\n    <button class=\"btn btn-primary\" routerLink=\"/store\">Return to Store</button>\n  </div>\n  <form *ngIf=\"!orderSent\" #form=\"ngForm\" novalidate\n        (ngSubmit)=\"submitOrder(form)\" class=\"m-2\">\n    <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" #name=\"ngModel\" name=\"name\"\n              [(ngModel)]=\"order.name\" required />\n      <span *ngIf=\"submitted && name.invalid\" class=\"text-danger\">\n        Please enter your name\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Address</label>\n      <input class=\"form-control\" #address=\"ngModel\" name=\"address\"\n              [(ngModel)]=\"order.address\" required />\n      <span *ngIf=\"submitted && address.invalid\" class=\"text-danger\">\n        Please enter your address\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>City</label>\n      <input class=\"form-control\" #city=\"ngModel\" name=\"city\"\n              [(ngModel)]=\"order.city\" required />\n      <span *ngIf=\"submitted && city.invalid\" class=\"text-danger\">\n        Please enter your city\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>State</label>\n      <input class=\"form-control\" #state=\"ngModel\" name=\"state\"\n              [(ngModel)]=\"order.state\" required />\n      <span *ngIf=\"submitted && state.invalid\" class=\"text-danger\">\n        Please enter your state\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Zip/Postal Code</label>\n      <input class=\"form-control\" #zip=\"ngModel\" name=\"zip\"\n              [(ngModel)]=\"order.zip\" required />\n      <span *ngIf=\"submitted && zip.invalid\" class=\"text-danger\">\n        Please enter your zip/postal code\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Country</label>\n      <input class=\"form-control\" #country=\"ngModel\" name=\"country\"\n              [(ngModel)]=\"order.country\" required />\n      <span *ngIf=\"submitted && country.invalid\" class=\"text-danger\">\n        Please enter your country\n      </span>\n    </div>\n    <div class=\"text-center\">\n      <button class=\"btn btn-secondary m-1\" routerLink=\"/cart\">Back</button>\n      <button class=\"btn btn-primary m-1\" type=\"submit\">Complete Order</button>\n    </div>\n  </form>\n  "
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/store/checkout.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { OrderRepository } from \"../model/order.repository\";\nimport { Order } from \"../model/order.model\";\n\n@Component({\n    templateUrl: \"checkout.component.html\",\n    styleUrls: [\"checkout.component.css\"]\n})\nexport class CheckoutComponent {\n    orderSent: boolean = false;\n    submitted: boolean = false;\n\n    constructor(public repository: OrderRepository,\n                public order: Order) {}\n\n    submitOrder(form: NgForm) {\n        this.submitted = true;\n        if (form.valid) {\n            this.repository.saveOrder(this.order).subscribe(order => {\n                this.order.clear();\n                this.orderSent = true;\n                this.submitted = false;\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) {\n    }\n\n    @Input(\"counterOf\")\n    counter: number;\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.container.clear();\n        for (let i = 0; i < this.counter; i++) {\n            this.container.createEmbeddedView(this.template,\n                new CounterDirectiveContext(i + 1));\n        }\n    }\n}\n\nclass CounterDirectiveContext {\n    constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col bg-dark text-white\">\n      <a class=\"navbar-brand\">SPORTS STORE</a>\n      <cart-summary></cart-summary>\n    </div>\n  </div>\n  <div class=\"row\">\n\n    <div class=\"col-3 p-2\">\n      <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n        Home\n      </button>\n      <button *ngFor=\"let cat of categories\" \n          class=\"btn btn-outline-primary btn-block\"\n          [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n        {{cat}}\n      </button>\n    </div>\n\n    <div class=\"col-9 p-2\">\n      <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n        <h4>\n          {{product.name}}\n          <span class=\"badge badge-pill badge-primary float-right\">\n            {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n          </span>\n        </h4>\n        <div class=\"card-text bg-white p-1\">\n          {{product.description}}\n          <button class=\"btn btn-success btn-sm float-right\"\n                  (click)=\"addProductToCart(product)\">\n            Add To Cart\n          </button>\n        </div>\n      </div>\n\n      <div class=\"form-inline float-left mr-1\">\n        <select class=\"form-control\" [value]=\"productsPerPage\"\n                (change)=\"changePageSize($event.target.value)\">\n          <option value=\"3\">3 per Page</option>\n          <option value=\"4\">4 per Page</option>\n          <option value=\"6\">6 per Page</option>\n          <option value=\"8\">8 per Page</option>\n        </select>\n      </div>\n\n      <div class=\"btn-group float-right\">\n        <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n            class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n          {{page}}\n        </button>\n      </div>\n\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\nimport { Cart } from \"../model/cart.model\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository,\n        private cart: Cart,\n        private router: Router) { }\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    addProductToCart(product: Product) {\n        this.cart.addLine(product);\n        this.router.navigateByUrl(\"/cart\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\nimport { CartSummaryComponent } from \"./cartSummary.component\";\nimport { CartDetailComponent } from \"./cartDetail.component\";\nimport { CheckoutComponent } from \"./checkout.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule, RouterModule],\n    declarations: [StoreComponent, CounterDirective, CartSummaryComponent,\n        CartDetailComponent, CheckoutComponent],\n    exports: [StoreComponent, CartDetailComponent, CheckoutComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/app/storeFirst.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { StoreComponent } from \"./store/store.component\";\n\n@Injectable()\nexport class StoreFirstGuard {\n    private firstNavigation = true;\n\n    constructor(private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n        if (this.firstNavigation) {\n            this.firstNavigation = false;\n            if (route.component != StoreComponent) {\n                this.router.navigateByUrl(\"/\");\n                return false;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 08/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"           \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/data.js",
    "content": "module.exports = function () {\n    return { \n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", \n                description: \"A boat for one person\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", \n                description: \"Protective and fashionable\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", \n                description: \"FIFA-approved size and weight\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", \n                description: \"Give your playing field a professional touch\", \n                price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", \n                description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", \n                description: \"Improve brain efficiency by 75%\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", \n                description: \"Secretly give your opponent a disadvantage\", \n                price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", \n                description: \"A fun game for the family\", price: 75 },\n            { id: 9, name: \"Bling King\", category: \"Chess\", \n                description: \"Gold-plated, diamond-studded King\", price: 1200 }\n        ],\n        orders: []\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"        \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/admin/admin.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col bg-dark text-white\">\n            <a class=\"navbar-brand\">SPORTS STORE</a>\n        </div>\n    </div>\n    <div class=\"row mt-2\">\n        <div class=\"col-3\">\n            <button class=\"btn btn-outline-info btn-block\"\n                    routerLink=\"/admin/main/products\"\n                    routerLinkActive=\"active\">\n                Products\n            </button>\n            <button class=\"btn btn-outline-info btn-block\"\n                    routerLink=\"/admin/main/orders\"\n                    routerLinkActive=\"active\">\n                Orders\n            </button>\n            <button class=\"btn btn-outline-danger btn-block\" (click)=\"logout()\">\n                Logout\n            </button>\n        </div>\n        <div class=\"col-9\">\n            <router-outlet></router-outlet>\n        </div>\n    </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/admin/admin.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Component({\n    templateUrl: \"admin.component.html\"\n})\nexport class AdminComponent {\n\n    constructor(private auth: AuthService,\n                private router: Router) { }\n\n    logout() {\n        this.auth.clear();\n        this.router.navigateByUrl(\"/\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/admin/admin.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { RouterModule } from \"@angular/router\";\nimport { AuthComponent } from \"./auth.component\";\nimport { AdminComponent } from \"./admin.component\";\nimport { AuthGuard } from \"./auth.guard\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductEditorComponent } from \"./productEditor.component\";\nimport { OrderTableComponent } from \"./orderTable.component\";\n\nlet routing = RouterModule.forChild([\n    { path: \"auth\", component: AuthComponent },\n    {\n        path: \"main\", component: AdminComponent, canActivate: [AuthGuard],\n        children: [\n            { path: \"products/:mode/:id\", component: ProductEditorComponent },\n            { path: \"products/:mode\", component: ProductEditorComponent },\n            { path: \"products\", component: ProductTableComponent },\n            { path: \"orders\", component: OrderTableComponent },\n            { path: \"**\", redirectTo: \"products\" }\n        ]\n    },\n    { path: \"**\", redirectTo: \"auth\" }\n]);\n\n@NgModule({\n    imports: [CommonModule, FormsModule, routing],\n    providers: [AuthGuard],\n    declarations: [AuthComponent, AdminComponent,\n        ProductTableComponent, ProductEditorComponent, OrderTableComponent]\n})\nexport class AdminModule {}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/admin/auth.component.html",
    "content": "<div class=\"bg-info p-2 text-center text-white\">\n    <h3>SportsStore Admin</h3>\n  </div>\n  <div class=\"bg-danger mt-2 p-2 text-center text-white\"\n       *ngIf=\"errorMessage != null\">\n    {{errorMessage}}\n  </div>\n  <div class=\"p-2\">\n    <form novalidate #form=\"ngForm\" (ngSubmit)=\"authenticate(form)\">\n      <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"username\"\n               [(ngModel)]=\"username\" required />\n      </div>\n      <div class=\"form-group\">\n        <label>Password</label>\n        <input class=\"form-control\" type=\"password\" name=\"password\"\n               [(ngModel)]=\"password\" required />\n      </div>\n      <div class=\"text-center\">\n        <button class=\"btn btn-secondary m-1\" routerLink=\"/\">Go back</button>\n        <button class=\"btn btn-primary m-1\" type=\"submit\">Log In</button>\n      </div>\n    </form>\n  </div>\n  "
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/admin/auth.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Component({\n    templateUrl: \"auth.component.html\"\n})\nexport class AuthComponent {\n    public username: string;\n    public password: string;\n    public errorMessage: string;\n\n    constructor(private router: Router,\n                private auth: AuthService) { }\n\n    authenticate(form: NgForm) {\n        if (form.valid) {\n            this.auth.authenticate(this.username, this.password)\n                .subscribe(response => {\n                    if (response) {\n                        this.router.navigateByUrl(\"/admin/main\");\n                    }\n                    this.errorMessage = \"Authentication Failed\";\n                })\n        } else {\n            this.errorMessage = \"Form Data Invalid\";\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/admin/auth.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot,\n            Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Injectable()\nexport class AuthGuard {\n\n    constructor(private router: Router,\n                private auth: AuthService) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n\n        if (!this.auth.authenticated) {\n            this.router.navigateByUrl(\"/admin/auth\");\n            return false;\n        } \n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/admin/orderTable.component.html",
    "content": "<div class=\"form-check\">\n    <label class=\"form-check-label\">\n    <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"includeShipped\"/>        \n        Display Shipped Orders\n    </label>\n</div>\n<table class=\"table table-sm\">\n    <thead>\n        <tr><th>Name</th><th>Zip</th><th colspan=\"2\">Cart</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *ngIf=\"getOrders().length == 0\">\n            <td colspan=\"5\">There are no orders</td>\n        </tr>\n        <ng-template ngFor let-o [ngForOf]=\"getOrders()\">\n            <tr>\n                <td>{{o.name}}</td><td>{{o.zip}}</td>\n                <th>Product</th><th>Quantity</th>\n                <td>\n                    <button class=\"btn btn-warning m-1\" (click)=\"markShipped(o)\">\n                        Ship\n                    </button>\n                    <button class=\"btn btn-danger\" (click)=\"delete(o.id)\">\n                        Delete\n                    </button>\n                </td>\n            </tr>\n            <tr *ngFor=\"let line of o.cart.lines\">\n                <td colspan=\"2\"></td>\n                <td>{{line.product.name}}</td>\n                <td>{{line.quantity}}</td>\n            </tr>\n        </ng-template>\n    </tbody>\n</table>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/admin/orderTable.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Order } from \"../model/order.model\";\nimport { OrderRepository } from \"../model/order.repository\";\n\n@Component({\n    templateUrl: \"orderTable.component.html\"\n})\nexport class OrderTableComponent {\n    includeShipped = false;\n\n    constructor(private repository: OrderRepository) {}\n\n    getOrders(): Order[] {\n        return this.repository.getOrders()\n            .filter(o => this.includeShipped || !o.shipped);\n    }\n \n    markShipped(order: Order) {\n        order.shipped = true;\n        this.repository.updateOrder(order);\n    }\n\n    delete(id: number) {\n        this.repository.deleteOrder(id);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/admin/productEditor.component.html",
    "content": "<div class=\"bg-primary p-2 text-white\" [class.bg-warning]=\"editing\"\n     [class.text-dark]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"save(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" [(ngModel)]=\"product.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" [(ngModel)]=\"product.category\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Description</label>\n        <textarea class=\"form-control\" name=\"description\"\n                  [(ngModel)]=\"product.description\">\n        </textarea>\n    </div>\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" [(ngModel)]=\"product.price\" />\n    </div>\n    <button type=\"submit\" class=\"btn btn-primary m-1\" [class.btn-warning]=\"editing\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary\" routerLink=\"/admin/main/products\">\n        Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/admin/productEditor.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    templateUrl: \"productEditor.component.html\"\n})\nexport class ProductEditorComponent {\n    editing: boolean = false;\n    product: Product = new Product();\n\n    constructor(private repository: ProductRepository,\n                private router: Router,\n                activeRoute: ActivatedRoute) {\n\n        this.editing = activeRoute.snapshot.params[\"mode\"] == \"edit\";\n        if (this.editing) {\n            Object.assign(this.product,\n                repository.getProduct(activeRoute.snapshot.params[\"id\"]));\n        }\n    }\n\n    save(form: NgForm) {\n        this.repository.saveProduct(this.product);\n        this.router.navigateByUrl(\"/admin/main/products\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/admin/productTable.component.html",
    "content": "<table class=\"table table-sm table-striped\">\n    <thead>\n        <tr>\n            <th>ID</th><th>Name</th><th>Category</th><th>Price</th>\n            <th></th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr *ngFor=\"let p of getProducts()\">\n            <td>{{p.id}}</td>\n            <td>{{p.name}}</td>\n            <td>{{p.category}}</td>\n            <td>{{p.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}</td>\n            <td>\n                <button class=\"btn btn-sm btn-warning m-1\"\n                        [routerLink]=\"['/admin/main/products/edit', p.id]\">\n                    Edit\n                </button>\n                <button class=\"btn btn-sm btn-danger\" (click)=\"deleteProduct(p.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>\n</table>\n<button class=\"btn btn-primary\" routerLink=\"/admin/main/products/create\">\n    Create New Product\n</button>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/admin/productTable.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n\n    constructor(private repository: ProductRepository) { }\n\n    getProducts(): Product[] {\n        return this.repository.getProducts();\n    }\n\n    deleteProduct(id: number) {\n        this.repository.deleteProduct(id);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<router-outlet></router-outlet>\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\nimport { StoreComponent } from \"./store/store.component\";\nimport { CheckoutComponent } from \"./store/checkout.component\";\nimport { CartDetailComponent } from \"./store/cartDetail.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { StoreFirstGuard } from \"./storeFirst.guard\";\n\n@NgModule({\n    imports: [BrowserModule, StoreModule,\n        RouterModule.forRoot([\n            {\n                path: \"store\", component: StoreComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"cart\", component: CartDetailComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"checkout\", component: CheckoutComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"admin\",\n                loadChildren: () => import(\"./admin/admin.module\")\n                    .then(m => m.AdminModule),\n                canActivate: [StoreFirstGuard]\n            },\n            { path: \"**\", redirectTo: \"/store\" }\n        ])],\n    providers: [StoreFirstGuard],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/model/auth.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class AuthService {\n\n    constructor(private datasource: RestDataSource) {}\n\n    authenticate(username: string, password: string): Observable<boolean> {\n        return this.datasource.authenticate(username, password);\n    }\n\n    get authenticated(): boolean {\n        return this.datasource.auth_token != null;\n    }\n\n    clear() {\n        this.datasource.auth_token = null;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/model/cart.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class Cart {\n    public lines: CartLine[] = [];\n    public itemCount: number = 0;\n    public cartPrice: number = 0;\n\n    addLine(product: Product, quantity: number = 1) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity += quantity;    \n        } else {\n            this.lines.push(new CartLine(product, quantity));\n        }\n        this.recalculate();\n    }\n\n    updateQuantity(product: Product, quantity: number) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity = Number(quantity);\n        }\n        this.recalculate();\n    }\n\n    removeLine(id: number) {\n        let index = this.lines.findIndex(line => line.product.id == id);\n        this.lines.splice(index, 1);\n        this.recalculate();\n    }\n\n    clear() {\n        this.lines = [];\n        this.itemCount = 0;\n        this.cartPrice = 0;\n    }\n\n    private recalculate() {\n        this.itemCount = 0;\n        this.cartPrice = 0;\n        this.lines.forEach(l => {\n            this.itemCount += l.quantity;\n            this.cartPrice += (l.quantity * l.product.price);\n        })\n    }\n}\n\nexport class CartLine {\n    \n    constructor(public product: Product,\n        public quantity: number) {}\n\n    get lineTotal() {\n        return this.quantity * this.product.price;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { OrderRepository } from \"./order.repository\";\nimport { RestDataSource } from \"./rest.datasource\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { AuthService } from \"./auth.service\";\n\n@NgModule({\n  imports: [HttpClientModule],\n  providers: [ProductRepository, Cart, Order, OrderRepository,\n    { provide: StaticDataSource, useClass: RestDataSource },\n    RestDataSource, AuthService]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/model/order.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Cart } from \"./cart.model\";\n\n@Injectable()\nexport class Order {\n    public id: number;\n    public name: string;\n    public address: string;\n    public city: string;\n    public state: string;\n    public zip: string;\n    public country: string;\n    public shipped: boolean = false;\n\n    constructor(public cart: Cart) { }\n\n    clear() {\n        this.id = null;\n        this.name = this.address = this.city = null;\n        this.state = this.zip = this.country = null;\n        this.shipped = false;\n        this.cart.clear();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/model/order.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { Order } from \"./order.model\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class OrderRepository {\n    private orders: Order[] = [];\n    private loaded: boolean = false;\n\n    constructor(private dataSource: RestDataSource) { }\n\n    loadOrders() {\n        this.loaded = true;\n        this.dataSource.getOrders()\n            .subscribe(orders => this.orders = orders);\n    }\n\n    getOrders(): Order[] {\n        if (!this.loaded) {\n            this.loadOrders();\n        }\n        return this.orders;\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.dataSource.saveOrder(order);\n    }\n\n    updateOrder(order: Order) {\n        this.dataSource.updateOrder(order).subscribe(order => {\n            this.orders.splice(this.orders.\n                findIndex(o => o.id == order.id), 1, order);\n        });\n    }\n\n    deleteOrder(id: number) {\n        this.dataSource.deleteOrder(id).subscribe(order => {\n            this.orders.splice(this.orders.findIndex(o => id == o.id), 1);\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(\n        public id?: number,\n        public name?: string,\n        public category?: string,\n        public description?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: RestDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == null || product.id == 0) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product)\n                .subscribe(p => {\n                    this.products.splice(this.products.\n                        findIndex(p => p.id == product.id), 1, product);\n                });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(p => {\n            this.products.splice(this.products.\n                findIndex(p => p.id == id), 1);\n        })\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/model/rest.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { map } from \"rxjs/operators\";\nimport { HttpHeaders } from '@angular/common/http';\n\nconst PROTOCOL = \"http\";\nconst PORT = 3500;\n\n@Injectable()\nexport class RestDataSource {\n    baseUrl: string;\n    auth_token: string;\n\n    constructor(private http: HttpClient) {\n        this.baseUrl = `${PROTOCOL}://${location.hostname}:${PORT}/`;\n    }\n\n    getProducts(): Observable<Product[]> {\n        return this.http.get<Product[]>(this.baseUrl + \"products\");\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.http.post<Order>(this.baseUrl + \"orders\", order);\n    }\n\n    authenticate(user: string, pass: string): Observable<boolean> {\n        return this.http.post<any>(this.baseUrl + \"login\", {\n            name: user, password: pass\n        }).pipe(map(response => {\n            this.auth_token = response.success ? response.token : null;\n            return response.success;\n        }));\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.http.post<Product>(this.baseUrl + \"products\",\n            product, this.getOptions());\n    }\n\n    updateProduct(product): Observable<Product> {\n        return this.http.put<Product>(`${this.baseUrl}products/${product.id}`,\n            product, this.getOptions());\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.http.delete<Product>(`${this.baseUrl}products/${id}`,\n            this.getOptions());\n    }\n\n    getOrders(): Observable<Order[]> {\n        return this.http.get<Order[]>(this.baseUrl + \"orders\", this.getOptions());\n    }\n\n    deleteOrder(id: number): Observable<Order> {\n        return this.http.delete<Order>(`${this.baseUrl}orders/${id}`,\n            this.getOptions());\n    }\n\n    updateOrder(order: Order): Observable<Order> {\n        return this.http.put<Order>(`${this.baseUrl}orders/${order.id}`,\n            order, this.getOptions());\n    }\n\n    private getOptions() {\n        return {\n            headers: new HttpHeaders({\n                \"Authorization\": `Bearer<${this.auth_token}>`\n            })\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\nimport { Order } from \"./order.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        console.log(JSON.stringify(order));\n        return from([order]);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/store/cartDetail.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col mt-2\">\n        <h2 class=\"text-center\">Your Cart</h2>\n        <table class=\"table table-bordered table-striped p-2\">\n          <thead>\n            <tr>\n              <th>Quantity</th>\n              <th>Product</th>\n              <th class=\"text-right\">Price</th>\n              <th class=\"text-right\">Subtotal</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr *ngIf=\"cart.lines.length == 0\">\n              <td colspan=\"4\" class=\"text-center\">\n                Your cart is empty\n              </td>\n            </tr>\n            <tr *ngFor=\"let line of cart.lines\">\n              <td>\n                <input type=\"number\" class=\"form-control-sm\"\n                       style=\"width:5em\"\n                       [value]=\"line.quantity\"\n                       (change)=\"cart.updateQuantity(line.product,\n                                  $event.target.value)\" />\n              </td>\n              <td>{{line.product.name}}</td>\n              <td class=\"text-right\">\n                  {{line.product.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n              <td class=\"text-right\">\n                  {{(line.lineTotal) | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n              </td>\n              <td class=\"text-center\">\n                <button class=\"btn btn-sm btn-danger\"\n                        (click)=\"cart.removeLine(line.product.id)\">\n                  Remove\n                </button>\n              </td>\n            </tr>\n          </tbody>\n          <tfoot>\n            <tr>\n              <td colspan=\"3\" class=\"text-right\">Total:</td>\n              <td class=\"text-right\">\n                {{cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n            </tr>\n          </tfoot>\n        </table>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col\">\n      <div class=\"text-center\">\n        <button class=\"btn btn-primary m-1\" routerLink=\"/store\">\n            Continue Shopping\n        </button>\n        <button class=\"btn btn-secondary m-1\" routerLink=\"/checkout\"\n                [disabled]=\"cart.lines.length == 0\">\n          Checkout\n        </button>\n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/store/cartDetail.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    templateUrl: \"cartDetail.component.html\"\n})\nexport class CartDetailComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/store/cartSummary.component.html",
    "content": "<div class=\"float-right\">\n  <small>\n    Your cart:\n    <span *ngIf=\"cart.itemCount > 0\">\n      {{ cart.itemCount }} item(s)\n      {{ cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n    </span>\n    <span *ngIf=\"cart.itemCount == 0\">\n      (empty)\n    </span>\n  </small>\n  <button class=\"btn btn-sm bg-dark text-white\"\n      [disabled]=\"cart.itemCount == 0\" routerLink=\"/cart\">\n    <i class=\"fa fa-shopping-cart\"></i>\n  </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/store/cartSummary.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    selector: \"cart-summary\",\n    templateUrl: \"cartSummary.component.html\"\n})\nexport class CartSummaryComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/store/checkout.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/store/checkout.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n  </div>\n  \n  <div *ngIf=\"orderSent\" class=\"m-2 text-center\">\n    <h2>Thanks!</h2>\n    <p>Thanks for placing your order.</p>\n    <p>We'll ship your goods as soon as possible.</p>\n    <button class=\"btn btn-primary\" routerLink=\"/store\">Return to Store</button>\n  </div>\n  <form *ngIf=\"!orderSent\" #form=\"ngForm\" novalidate\n        (ngSubmit)=\"submitOrder(form)\" class=\"m-2\">\n    <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" #name=\"ngModel\" name=\"name\"\n              [(ngModel)]=\"order.name\" required />\n      <span *ngIf=\"submitted && name.invalid\" class=\"text-danger\">\n        Please enter your name\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Address</label>\n      <input class=\"form-control\" #address=\"ngModel\" name=\"address\"\n              [(ngModel)]=\"order.address\" required />\n      <span *ngIf=\"submitted && address.invalid\" class=\"text-danger\">\n        Please enter your address\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>City</label>\n      <input class=\"form-control\" #city=\"ngModel\" name=\"city\"\n              [(ngModel)]=\"order.city\" required />\n      <span *ngIf=\"submitted && city.invalid\" class=\"text-danger\">\n        Please enter your city\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>State</label>\n      <input class=\"form-control\" #state=\"ngModel\" name=\"state\"\n              [(ngModel)]=\"order.state\" required />\n      <span *ngIf=\"submitted && state.invalid\" class=\"text-danger\">\n        Please enter your state\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Zip/Postal Code</label>\n      <input class=\"form-control\" #zip=\"ngModel\" name=\"zip\"\n              [(ngModel)]=\"order.zip\" required />\n      <span *ngIf=\"submitted && zip.invalid\" class=\"text-danger\">\n        Please enter your zip/postal code\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Country</label>\n      <input class=\"form-control\" #country=\"ngModel\" name=\"country\"\n              [(ngModel)]=\"order.country\" required />\n      <span *ngIf=\"submitted && country.invalid\" class=\"text-danger\">\n        Please enter your country\n      </span>\n    </div>\n    <div class=\"text-center\">\n      <button class=\"btn btn-secondary m-1\" routerLink=\"/cart\">Back</button>\n      <button class=\"btn btn-primary m-1\" type=\"submit\">Complete Order</button>\n    </div>\n  </form>\n  "
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/store/checkout.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { OrderRepository } from \"../model/order.repository\";\nimport { Order } from \"../model/order.model\";\n\n@Component({\n    templateUrl: \"checkout.component.html\",\n    styleUrls: [\"checkout.component.css\"]\n})\nexport class CheckoutComponent {\n    orderSent: boolean = false;\n    submitted: boolean = false;\n\n    constructor(public repository: OrderRepository,\n                public order: Order) {}\n\n    submitOrder(form: NgForm) {\n        this.submitted = true;\n        if (form.valid) {\n            this.repository.saveOrder(this.order).subscribe(order => {\n                this.order.clear();\n                this.orderSent = true;\n                this.submitted = false;\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) {\n    }\n\n    @Input(\"counterOf\")\n    counter: number;\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.container.clear();\n        for (let i = 0; i < this.counter; i++) {\n            this.container.createEmbeddedView(this.template,\n                new CounterDirectiveContext(i + 1));\n        }\n    }\n}\n\nclass CounterDirectiveContext {\n    constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col bg-dark text-white\">\n      <a class=\"navbar-brand\">SPORTS STORE</a>\n      <cart-summary></cart-summary>\n    </div>\n  </div>\n  <div class=\"row\">\n\n    <div class=\"col-3 p-2\">\n      <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n        Home\n      </button>\n      <button *ngFor=\"let cat of categories\" \n          class=\"btn btn-outline-primary btn-block\"\n          [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n        {{cat}}\n      </button>\n      <button class=\"btn btn-block btn-danger mt-5\" routerLink=\"/admin\">\n        Admin\n      </button>\n    </div>\n\n    <div class=\"col-9 p-2\">\n      <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n        <h4>\n          {{product.name}}\n          <span class=\"badge badge-pill badge-primary float-right\">\n            {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n          </span>\n        </h4>\n        <div class=\"card-text bg-white p-1\">\n          {{product.description}}\n          <button class=\"btn btn-success btn-sm float-right\"\n                  (click)=\"addProductToCart(product)\">\n            Add To Cart\n          </button>\n        </div>\n      </div>\n\n      <div class=\"form-inline float-left mr-1\">\n        <select class=\"form-control\" [value]=\"productsPerPage\"\n                (change)=\"changePageSize($event.target.value)\">\n          <option value=\"3\">3 per Page</option>\n          <option value=\"4\">4 per Page</option>\n          <option value=\"6\">6 per Page</option>\n          <option value=\"8\">8 per Page</option>\n        </select>\n      </div>\n\n      <div class=\"btn-group float-right\">\n        <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n            class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n          {{page}}\n        </button>\n      </div>\n\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\nimport { Cart } from \"../model/cart.model\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository,\n        private cart: Cart,\n        private router: Router) { }\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    addProductToCart(product: Product) {\n        this.cart.addLine(product);\n        this.router.navigateByUrl(\"/cart\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\nimport { CartSummaryComponent } from \"./cartSummary.component\";\nimport { CartDetailComponent } from \"./cartDetail.component\";\nimport { CheckoutComponent } from \"./checkout.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule, RouterModule],\n    declarations: [StoreComponent, CounterDirective, CartSummaryComponent,\n        CartDetailComponent, CheckoutComponent],\n    exports: [StoreComponent, CartDetailComponent, CheckoutComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/app/storeFirst.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { StoreComponent } from \"./store/store.component\";\n\n@Injectable()\nexport class StoreFirstGuard {\n    private firstNavigation = true;\n\n    constructor(private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n        if (this.firstNavigation) {\n            this.firstNavigation = false;\n            if (route.component != StoreComponent) {\n                this.router.navigateByUrl(\"/\");\n                return false;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 09/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\",\n              \"src/manifest.webmanifest\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"           \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ],\n              \"serviceWorker\": true,\n              \"ngswConfigPath\": \"ngsw-config.json\"\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\",\n              \"src/manifest.webmanifest\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/data.js",
    "content": "module.exports = function () {\n    return { \n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", \n                description: \"A boat for one person\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", \n                description: \"Protective and fashionable\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", \n                description: \"FIFA-approved size and weight\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", \n                description: \"Give your playing field a professional touch\", \n                price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", \n                description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", \n                description: \"Improve brain efficiency by 75%\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", \n                description: \"Secretly give your opponent a disadvantage\", \n                price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", \n                description: \"A fun game for the family\", price: 75 },\n            { id: 9, name: \"Bling King\", category: \"Chess\", \n                description: \"Gold-plated, diamond-studded King\", price: 1200 }\n        ],\n        orders: []\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/ngsw-config.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/service-worker/config/schema.json\",\n  \"index\": \"/index.html\",\n  \"assetGroups\": [\n    {\n      \"name\": \"app\",\n      \"installMode\": \"prefetch\",\n      \"resources\": {\n        \"files\": [\n          \"/favicon.ico\",\n          \"/index.html\",\n          \"/manifest.webmanifest\",\n          \"/*.css\",\n          \"/*.js\"\n        ]\n      }\n    }, {\n      \"name\": \"assets\",\n      \"installMode\": \"lazy\",\n      \"updateMode\": \"prefetch\",\n      \"resources\": {\n        \"files\": [\n          \"/assets/**\",\n          \"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)\", \n          \"/font/*\"\n        ]\n      }\n    }\n  ], \n  \"dataGroups\": [\n    {\n        \"name\": \"api-product\",\n        \"urls\": [\"/api/products\"],\n        \"cacheConfig\" : {\n            \"maxSize\": 100,\n            \"maxAge\": \"5d\"\n        }\n    }],\n    \"navigationUrls\": [\n      \"/**\"\n    ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"@angular/service-worker\": \"~10.0.0\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"connect-history-api-fallback\": \"^1.6.0\",\n    \"express\": \"^4.17.1\",\n    \"https\": \"^1.0.0\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/server.js",
    "content": "const express = require(\"express\");\nconst https = require(\"https\");\nconst fs = require(\"fs\");\nconst history = require(\"connect-history-api-fallback\");\nconst jsonServer = require(\"json-server\");\nconst bodyParser = require('body-parser');\nconst auth = require(\"./authMiddleware\");\nconst router = jsonServer.router(\"serverdata.json\");\n\nconst enableHttps = false;\n\nconst ssloptions = {}\n\nif (enableHttps) {\n    ssloptions.cert =  fs.readFileSync(\"./ssl/sportsstore.crt\");\n    ssloptions.key = fs.readFileSync(\"./ssl/sportsstore.pem\");\n}\n\nconst app = express();\n\napp.use(bodyParser.json());\napp.use(auth);\napp.use(\"/api\", router);\napp.use(history());\napp.use(\"/\", express.static(\"./dist/SportsStore\"));\n\napp.listen(80, \n    () => console.log(\"HTTP Server running on port 80\"));\n\nif (enableHttps) {\n    https.createServer(ssloptions, app).listen(443,\n        () => console.log(\"HTTPS Server running on port 443\"));\n} else {\n    console.log(\"HTTPS disabled\")\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/serverData.json",
    "content": "{\n    \"products\": [\n        { \"id\": 1, \"name\": \"Kayak\", \"category\": \"Watersports\", \n            \"description\": \"A boat for one person\", \"price\": 275 },\n        { \"id\": 2, \"name\": \"Lifejacket\", \"category\": \"Watersports\", \n            \"description\": \"Protective and fashionable\", \"price\": 48.95 },\n        { \"id\": 3, \"name\": \"Soccer Ball\", \"category\": \"Soccer\", \n            \"description\": \"FIFA-approved size and weight\", \"price\": 19.50 },\n        { \"id\": 4, \"name\": \"Corner Flags\", \"category\": \"Soccer\", \n            \"description\": \"Give your playing field a professional touch\", \n            \"price\": 34.95 },\n        { \"id\": 5, \"name\": \"Stadium\", \"category\": \"Soccer\", \n            \"description\": \"Flat-packed 35,000-seat stadium\", \"price\": 79500 },\n        { \"id\": 6, \"name\": \"Thinking Cap\", \"category\": \"Chess\", \n            \"description\": \"Improve brain efficiency by 75%\", \"price\": 16 },\n        { \"id\": 7, \"name\": \"Unsteady Chair\", \"category\": \"Chess\", \n            \"description\": \"Secretly give your opponent a disadvantage\", \n            \"price\": 29.95 },\n        { \"id\": 8, \"name\": \"Human Chess Board\", \"category\": \"Chess\", \n            \"description\": \"A fun game for the family\", \"price\": 75 },\n        { \"id\": 9, \"name\": \"Bling Bling King\", \"category\": \"Chess\", \n            \"description\": \"Gold-plated, diamond-studded King\", \"price\": 1200 }\n    ],\n    \"orders\": []\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/admin/admin.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col bg-dark text-white\">\n            <a class=\"navbar-brand\">SPORTS STORE</a>\n        </div>\n    </div>\n    <div class=\"row mt-2\">\n        <div class=\"col-3\">\n            <button class=\"btn btn-outline-info btn-block\"\n                    routerLink=\"/admin/main/products\"\n                    routerLinkActive=\"active\">\n                Products\n            </button>\n            <button class=\"btn btn-outline-info btn-block\"\n                    routerLink=\"/admin/main/orders\"\n                    routerLinkActive=\"active\">\n                Orders\n            </button>\n            <button class=\"btn btn-outline-danger btn-block\" (click)=\"logout()\">\n                Logout\n            </button>\n        </div>\n        <div class=\"col-9\">\n            <router-outlet></router-outlet>\n        </div>\n    </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/admin/admin.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Component({\n    templateUrl: \"admin.component.html\"\n})\nexport class AdminComponent {\n\n    constructor(private auth: AuthService,\n                private router: Router) { }\n\n    logout() {\n        this.auth.clear();\n        this.router.navigateByUrl(\"/\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/admin/admin.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { RouterModule } from \"@angular/router\";\nimport { AuthComponent } from \"./auth.component\";\nimport { AdminComponent } from \"./admin.component\";\nimport { AuthGuard } from \"./auth.guard\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductEditorComponent } from \"./productEditor.component\";\nimport { OrderTableComponent } from \"./orderTable.component\";\n\nlet routing = RouterModule.forChild([\n    { path: \"auth\", component: AuthComponent },\n    {\n        path: \"main\", component: AdminComponent, canActivate: [AuthGuard],\n        children: [\n            { path: \"products/:mode/:id\", component: ProductEditorComponent },\n            { path: \"products/:mode\", component: ProductEditorComponent },\n            { path: \"products\", component: ProductTableComponent },\n            { path: \"orders\", component: OrderTableComponent },\n            { path: \"**\", redirectTo: \"products\" }\n        ]\n    },\n    { path: \"**\", redirectTo: \"auth\" }\n]);\n\n@NgModule({\n    imports: [CommonModule, FormsModule, routing],\n    providers: [AuthGuard],\n    declarations: [AuthComponent, AdminComponent,\n        ProductTableComponent, ProductEditorComponent, OrderTableComponent]\n})\nexport class AdminModule {}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/admin/auth.component.html",
    "content": "<div class=\"bg-info p-2 text-center text-white\">\n    <h3>SportsStore Admin</h3>\n  </div>\n  <div class=\"bg-danger mt-2 p-2 text-center text-white\"\n       *ngIf=\"errorMessage != null\">\n    {{errorMessage}}\n  </div>\n  <div class=\"p-2\">\n    <form novalidate #form=\"ngForm\" (ngSubmit)=\"authenticate(form)\">\n      <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"username\"\n               [(ngModel)]=\"username\" required />\n      </div>\n      <div class=\"form-group\">\n        <label>Password</label>\n        <input class=\"form-control\" type=\"password\" name=\"password\"\n               [(ngModel)]=\"password\" required />\n      </div>\n      <div class=\"text-center\">\n        <button class=\"btn btn-secondary m-1\" routerLink=\"/\">Go back</button>\n        <button class=\"btn btn-primary m-1\" type=\"submit\">Log In</button>\n      </div>\n    </form>\n  </div>\n  "
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/admin/auth.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Component({\n    templateUrl: \"auth.component.html\"\n})\nexport class AuthComponent {\n    public username: string;\n    public password: string;\n    public errorMessage: string;\n\n    constructor(private router: Router,\n                private auth: AuthService) { }\n\n    authenticate(form: NgForm) {\n        if (form.valid) {\n            this.auth.authenticate(this.username, this.password)\n                .subscribe(response => {\n                    if (response) {\n                        this.router.navigateByUrl(\"/admin/main\");\n                    }\n                    this.errorMessage = \"Authentication Failed\";\n                })\n        } else {\n            this.errorMessage = \"Form Data Invalid\";\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/admin/auth.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot,\n            Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Injectable()\nexport class AuthGuard {\n\n    constructor(private router: Router,\n                private auth: AuthService) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n\n        if (!this.auth.authenticated) {\n            this.router.navigateByUrl(\"/admin/auth\");\n            return false;\n        } \n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/admin/orderTable.component.html",
    "content": "<div class=\"form-check\">\n    <label class=\"form-check-label\">\n    <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"includeShipped\"/>        \n        Display Shipped Orders\n    </label>\n</div>\n<table class=\"table table-sm\">\n    <thead>\n        <tr><th>Name</th><th>Zip</th><th colspan=\"2\">Cart</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *ngIf=\"getOrders().length == 0\">\n            <td colspan=\"5\">There are no orders</td>\n        </tr>\n        <ng-template ngFor let-o [ngForOf]=\"getOrders()\">\n            <tr>\n                <td>{{o.name}}</td><td>{{o.zip}}</td>\n                <th>Product</th><th>Quantity</th>\n                <td>\n                    <button class=\"btn btn-warning m-1\" (click)=\"markShipped(o)\">\n                        Ship\n                    </button>\n                    <button class=\"btn btn-danger\" (click)=\"delete(o.id)\">\n                        Delete\n                    </button>\n                </td>\n            </tr>\n            <tr *ngFor=\"let line of o.cart.lines\">\n                <td colspan=\"2\"></td>\n                <td>{{line.product.name}}</td>\n                <td>{{line.quantity}}</td>\n            </tr>\n        </ng-template>\n    </tbody>\n</table>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/admin/orderTable.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Order } from \"../model/order.model\";\nimport { OrderRepository } from \"../model/order.repository\";\n\n@Component({\n    templateUrl: \"orderTable.component.html\"\n})\nexport class OrderTableComponent {\n    includeShipped = false;\n\n    constructor(private repository: OrderRepository) {}\n\n    getOrders(): Order[] {\n        return this.repository.getOrders()\n            .filter(o => this.includeShipped || !o.shipped);\n    }\n \n    markShipped(order: Order) {\n        order.shipped = true;\n        this.repository.updateOrder(order);\n    }\n\n    delete(id: number) {\n        this.repository.deleteOrder(id);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/admin/productEditor.component.html",
    "content": "<div class=\"bg-primary p-2 text-white\" [class.bg-warning]=\"editing\"\n     [class.text-dark]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"save(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" [(ngModel)]=\"product.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" [(ngModel)]=\"product.category\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Description</label>\n        <textarea class=\"form-control\" name=\"description\"\n                  [(ngModel)]=\"product.description\">\n        </textarea>\n    </div>\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" [(ngModel)]=\"product.price\" />\n    </div>\n    <button type=\"submit\" class=\"btn btn-primary m-1\" [class.btn-warning]=\"editing\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary\" routerLink=\"/admin/main/products\">\n        Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/admin/productEditor.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    templateUrl: \"productEditor.component.html\"\n})\nexport class ProductEditorComponent {\n    editing: boolean = false;\n    product: Product = new Product();\n\n    constructor(private repository: ProductRepository,\n                private router: Router,\n                activeRoute: ActivatedRoute) {\n\n        this.editing = activeRoute.snapshot.params[\"mode\"] == \"edit\";\n        if (this.editing) {\n            Object.assign(this.product,\n                repository.getProduct(activeRoute.snapshot.params[\"id\"]));\n        }\n    }\n\n    save(form: NgForm) {\n        this.repository.saveProduct(this.product);\n        this.router.navigateByUrl(\"/admin/main/products\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/admin/productTable.component.html",
    "content": "<table class=\"table table-sm table-striped\">\n    <thead>\n        <tr>\n            <th>ID</th><th>Name</th><th>Category</th><th>Price</th>\n            <th></th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr *ngFor=\"let p of getProducts()\">\n            <td>{{p.id}}</td>\n            <td>{{p.name}}</td>\n            <td>{{p.category}}</td>\n            <td>{{p.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}</td>\n            <td>\n                <button class=\"btn btn-sm btn-warning m-1\"\n                        [routerLink]=\"['/admin/main/products/edit', p.id]\">\n                    Edit\n                </button>\n                <button class=\"btn btn-sm btn-danger\" (click)=\"deleteProduct(p.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>\n</table>\n<button class=\"btn btn-primary\" routerLink=\"/admin/main/products/create\">\n    Create New Product\n</button>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/admin/productTable.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n\n    constructor(private repository: ProductRepository) { }\n\n    getProducts(): Product[] {\n        return this.repository.getProducts();\n    }\n\n    deleteProduct(id: number) {\n        this.repository.deleteProduct(id);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<router-outlet></router-outlet>\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\nimport { StoreComponent } from \"./store/store.component\";\nimport { CheckoutComponent } from \"./store/checkout.component\";\nimport { CartDetailComponent } from \"./store/cartDetail.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { StoreFirstGuard } from \"./storeFirst.guard\";\nimport { ServiceWorkerModule } from '@angular/service-worker';\nimport { environment } from '../environments/environment';\n\n@NgModule({\n    imports: [BrowserModule, StoreModule,\n        RouterModule.forRoot([\n            {\n                path: \"store\", component: StoreComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"cart\", component: CartDetailComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"checkout\", component: CheckoutComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"admin\",\n                loadChildren: () => import(\"./admin/admin.module\")\n                    .then(m => m.AdminModule),\n                canActivate: [StoreFirstGuard]\n            },\n            { path: \"**\", redirectTo: \"/store\" }\n        ]),\n        ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production })],\n    providers: [StoreFirstGuard],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/model/auth.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class AuthService {\n\n    constructor(private datasource: RestDataSource) {}\n\n    authenticate(username: string, password: string): Observable<boolean> {\n        return this.datasource.authenticate(username, password);\n    }\n\n    get authenticated(): boolean {\n        return this.datasource.auth_token != null;\n    }\n\n    clear() {\n        this.datasource.auth_token = null;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/model/cart.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class Cart {\n    public lines: CartLine[] = [];\n    public itemCount: number = 0;\n    public cartPrice: number = 0;\n\n    addLine(product: Product, quantity: number = 1) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity += quantity;    \n        } else {\n            this.lines.push(new CartLine(product, quantity));\n        }\n        this.recalculate();\n    }\n\n    updateQuantity(product: Product, quantity: number) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity = Number(quantity);\n        }\n        this.recalculate();\n    }\n\n    removeLine(id: number) {\n        let index = this.lines.findIndex(line => line.product.id == id);\n        this.lines.splice(index, 1);\n        this.recalculate();\n    }\n\n    clear() {\n        this.lines = [];\n        this.itemCount = 0;\n        this.cartPrice = 0;\n    }\n\n    private recalculate() {\n        this.itemCount = 0;\n        this.cartPrice = 0;\n        this.lines.forEach(l => {\n            this.itemCount += l.quantity;\n            this.cartPrice += (l.quantity * l.product.price);\n        })\n    }\n}\n\nexport class CartLine {\n    \n    constructor(public product: Product,\n        public quantity: number) {}\n\n    get lineTotal() {\n        return this.quantity * this.product.price;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/model/connection.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable, Subject } from \"rxjs\";\n\n@Injectable()\nexport class ConnectionService {\n    private connEvents: Subject<boolean>;\n        \n    constructor() {\n        this.connEvents = new Subject<boolean>();\n        window.addEventListener(\"online\", \n            (e) => this.handleConnectionChange(e));\n        window.addEventListener(\"offline\", \n            (e) => this.handleConnectionChange(e));\n    }\n\n    private handleConnectionChange(event) {\n        this.connEvents.next(this.connected);\n    }\n \n    get connected() : boolean {\n        return window.navigator.onLine;\n    }\n\n    get Changes(): Observable<boolean> {\n        return this.connEvents;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { OrderRepository } from \"./order.repository\";\nimport { RestDataSource } from \"./rest.datasource\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { AuthService } from \"./auth.service\";\nimport { ConnectionService } from \"./connection.service\";\n\n@NgModule({\n  imports: [HttpClientModule],\n  providers: [ProductRepository, Cart, Order, OrderRepository,\n    { provide: StaticDataSource, useClass: RestDataSource },\n    RestDataSource, AuthService, ConnectionService]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/model/order.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Cart } from \"./cart.model\";\n\n@Injectable()\nexport class Order {\n    public id: number;\n    public name: string;\n    public address: string;\n    public city: string;\n    public state: string;\n    public zip: string;\n    public country: string;\n    public shipped: boolean = false;\n\n    constructor(public cart: Cart) { }\n\n    clear() {\n        this.id = null;\n        this.name = this.address = this.city = null;\n        this.state = this.zip = this.country = null;\n        this.shipped = false;\n        this.cart.clear();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/model/order.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { Order } from \"./order.model\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class OrderRepository {\n    private orders: Order[] = [];\n    private loaded: boolean = false;\n\n    constructor(private dataSource: RestDataSource) { }\n\n    loadOrders() {\n        this.loaded = true;\n        this.dataSource.getOrders()\n            .subscribe(orders => this.orders = orders);\n    }\n\n    getOrders(): Order[] {\n        if (!this.loaded) {\n            this.loadOrders();\n        }\n        return this.orders;\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.dataSource.saveOrder(order);\n    }\n\n    updateOrder(order: Order) {\n        this.dataSource.updateOrder(order).subscribe(order => {\n            this.orders.splice(this.orders.\n                findIndex(o => o.id == order.id), 1, order);\n        });\n    }\n\n    deleteOrder(id: number) {\n        this.dataSource.deleteOrder(id).subscribe(order => {\n            this.orders.splice(this.orders.findIndex(o => id == o.id), 1);\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(\n        public id?: number,\n        public name?: string,\n        public category?: string,\n        public description?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: RestDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == null || product.id == 0) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product)\n                .subscribe(p => {\n                    this.products.splice(this.products.\n                        findIndex(p => p.id == product.id), 1, product);\n                });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(p => {\n            this.products.splice(this.products.\n                findIndex(p => p.id == id), 1);\n        })\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/model/rest.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { map } from \"rxjs/operators\";\nimport { HttpHeaders } from '@angular/common/http';\n\nconst PROTOCOL = \"http\";\nconst PORT = 3500;\n\n@Injectable()\nexport class RestDataSource {\n    baseUrl: string;\n    auth_token: string;\n\n    constructor(private http: HttpClient) {\n        //this.baseUrl = `${PROTOCOL}://${location.hostname}:${PORT}/`;\n        this.baseUrl = \"/api/\"\n    }\n\n    getProducts(): Observable<Product[]> {\n        return this.http.get<Product[]>(this.baseUrl + \"products\");\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.http.post<Order>(this.baseUrl + \"orders\", order);\n    }\n\n    authenticate(user: string, pass: string): Observable<boolean> {\n        return this.http.post<any>(this.baseUrl + \"login\", {\n            name: user, password: pass\n        }).pipe(map(response => {\n            this.auth_token = response.success ? response.token : null;\n            return response.success;\n        }));\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.http.post<Product>(this.baseUrl + \"products\",\n            product, this.getOptions());\n    }\n\n    updateProduct(product): Observable<Product> {\n        return this.http.put<Product>(`${this.baseUrl}products/${product.id}`,\n            product, this.getOptions());\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.http.delete<Product>(`${this.baseUrl}products/${id}`,\n            this.getOptions());\n    }\n\n    getOrders(): Observable<Order[]> {\n        return this.http.get<Order[]>(this.baseUrl + \"orders\", this.getOptions());\n    }\n\n    deleteOrder(id: number): Observable<Order> {\n        return this.http.delete<Order>(`${this.baseUrl}orders/${id}`,\n            this.getOptions());\n    }\n\n    updateOrder(order: Order): Observable<Order> {\n        return this.http.put<Order>(`${this.baseUrl}orders/${order.id}`,\n            order, this.getOptions());\n    }\n\n    private getOptions() {\n        return {\n            headers: new HttpHeaders({\n                \"Authorization\": `Bearer<${this.auth_token}>`\n            })\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\nimport { Order } from \"./order.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        console.log(JSON.stringify(order));\n        return from([order]);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/store/cartDetail.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col mt-2\">\n        <h2 class=\"text-center\">Your Cart</h2>\n        <table class=\"table table-bordered table-striped p-2\">\n          <thead>\n            <tr>\n              <th>Quantity</th>\n              <th>Product</th>\n              <th class=\"text-right\">Price</th>\n              <th class=\"text-right\">Subtotal</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr *ngIf=\"cart.lines.length == 0\">\n              <td colspan=\"4\" class=\"text-center\">\n                Your cart is empty\n              </td>\n            </tr>\n            <tr *ngFor=\"let line of cart.lines\">\n              <td>\n                <input type=\"number\" class=\"form-control-sm\"\n                       style=\"width:5em\"\n                       [value]=\"line.quantity\"\n                       (change)=\"cart.updateQuantity(line.product,\n                                  $event.target.value)\" />\n              </td>\n              <td>{{line.product.name}}</td>\n              <td class=\"text-right\">\n                  {{line.product.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n              <td class=\"text-right\">\n                  {{(line.lineTotal) | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n              </td>\n              <td class=\"text-center\">\n                <button class=\"btn btn-sm btn-danger\"\n                        (click)=\"cart.removeLine(line.product.id)\">\n                  Remove\n                </button>\n              </td>\n            </tr>\n          </tbody>\n          <tfoot>\n            <tr>\n              <td colspan=\"3\" class=\"text-right\">Total:</td>\n              <td class=\"text-right\">\n                {{cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n              </td>\n            </tr>\n          </tfoot>\n        </table>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col\">\n      <div class=\"text-center\">\n        <button class=\"btn btn-primary m-1\" routerLink=\"/store\">\n            Continue Shopping\n        </button>\n        <button class=\"btn btn-secondary m-1\" routerLink=\"/checkout\"\n            [disabled]=\"cart.lines.length == 0 || !connected\">\n              {{  connected ?  'Checkout' : 'Offline' }}\n        </button>\n      </div>\n    </div>\n  </div>\n  "
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/store/cartDetail.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\nimport { ConnectionService } from \"../model/connection.service\";\n\n@Component({\n    templateUrl: \"cartDetail.component.html\"\n})\nexport class CartDetailComponent {\n    public connected: boolean = true;\n\n    constructor(public cart: Cart, private connection: ConnectionService) { \n        this.connected = this.connection.connected;\n        connection.Changes.subscribe((state) => this.connected = state);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/store/cartSummary.component.html",
    "content": "<div class=\"float-right\">\n  <small>\n    Your cart:\n    <span *ngIf=\"cart.itemCount > 0\">\n      {{ cart.itemCount }} item(s)\n      {{ cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n    </span>\n    <span *ngIf=\"cart.itemCount == 0\">\n      (empty)\n    </span>\n  </small>\n  <button class=\"btn btn-sm bg-dark text-white\"\n      [disabled]=\"cart.itemCount == 0\" routerLink=\"/cart\">\n    <i class=\"fa fa-shopping-cart\"></i>\n  </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/store/cartSummary.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    selector: \"cart-summary\",\n    templateUrl: \"cartSummary.component.html\"\n})\nexport class CartSummaryComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/store/checkout.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/store/checkout.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n        <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n    </div>\n  </div>\n  \n  <div *ngIf=\"orderSent\" class=\"m-2 text-center\">\n    <h2>Thanks!</h2>\n    <p>Thanks for placing your order.</p>\n    <p>We'll ship your goods as soon as possible.</p>\n    <button class=\"btn btn-primary\" routerLink=\"/store\">Return to Store</button>\n  </div>\n  <form *ngIf=\"!orderSent\" #form=\"ngForm\" novalidate\n        (ngSubmit)=\"submitOrder(form)\" class=\"m-2\">\n    <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" #name=\"ngModel\" name=\"name\"\n              [(ngModel)]=\"order.name\" required />\n      <span *ngIf=\"submitted && name.invalid\" class=\"text-danger\">\n        Please enter your name\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Address</label>\n      <input class=\"form-control\" #address=\"ngModel\" name=\"address\"\n              [(ngModel)]=\"order.address\" required />\n      <span *ngIf=\"submitted && address.invalid\" class=\"text-danger\">\n        Please enter your address\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>City</label>\n      <input class=\"form-control\" #city=\"ngModel\" name=\"city\"\n              [(ngModel)]=\"order.city\" required />\n      <span *ngIf=\"submitted && city.invalid\" class=\"text-danger\">\n        Please enter your city\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>State</label>\n      <input class=\"form-control\" #state=\"ngModel\" name=\"state\"\n              [(ngModel)]=\"order.state\" required />\n      <span *ngIf=\"submitted && state.invalid\" class=\"text-danger\">\n        Please enter your state\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Zip/Postal Code</label>\n      <input class=\"form-control\" #zip=\"ngModel\" name=\"zip\"\n              [(ngModel)]=\"order.zip\" required />\n      <span *ngIf=\"submitted && zip.invalid\" class=\"text-danger\">\n        Please enter your zip/postal code\n      </span>\n    </div>\n    <div class=\"form-group\">\n      <label>Country</label>\n      <input class=\"form-control\" #country=\"ngModel\" name=\"country\"\n              [(ngModel)]=\"order.country\" required />\n      <span *ngIf=\"submitted && country.invalid\" class=\"text-danger\">\n        Please enter your country\n      </span>\n    </div>\n    <div class=\"text-center\">\n      <button class=\"btn btn-secondary m-1\" routerLink=\"/cart\">Back</button>\n      <button class=\"btn btn-primary m-1\" type=\"submit\">Complete Order</button>\n    </div>\n  </form>\n  "
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/store/checkout.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { OrderRepository } from \"../model/order.repository\";\nimport { Order } from \"../model/order.model\";\n\n@Component({\n    templateUrl: \"checkout.component.html\",\n    styleUrls: [\"checkout.component.css\"]\n})\nexport class CheckoutComponent {\n    orderSent: boolean = false;\n    submitted: boolean = false;\n\n    constructor(public repository: OrderRepository,\n                public order: Order) {}\n\n    submitOrder(form: NgForm) {\n        this.submitted = true;\n        if (form.valid) {\n            this.repository.saveOrder(this.order).subscribe(order => {\n                this.order.clear();\n                this.orderSent = true;\n                this.submitted = false;\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) {\n    }\n\n    @Input(\"counterOf\")\n    counter: number;\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.container.clear();\n        for (let i = 0; i < this.counter; i++) {\n            this.container.createEmbeddedView(this.template,\n                new CounterDirectiveContext(i + 1));\n        }\n    }\n}\n\nclass CounterDirectiveContext {\n    constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col bg-dark text-white\">\n      <a class=\"navbar-brand\">SPORTS STORE</a>\n      <cart-summary></cart-summary>\n    </div>\n  </div>\n  <div class=\"row\">\n\n    <div class=\"col-3 p-2\">\n      <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n        Home\n      </button>\n      <button *ngFor=\"let cat of categories\" \n          class=\"btn btn-outline-primary btn-block\"\n          [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n        {{cat}}\n      </button>\n      <button class=\"btn btn-block btn-danger mt-5\" routerLink=\"/admin\">\n        Admin\n      </button>\n    </div>\n\n    <div class=\"col-9 p-2\">\n      <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n        <h4>\n          {{product.name}}\n          <span class=\"badge badge-pill badge-primary float-right\">\n            {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n          </span>\n        </h4>\n        <div class=\"card-text bg-white p-1\">\n          {{product.description}}\n          <button class=\"btn btn-success btn-sm float-right\"\n                  (click)=\"addProductToCart(product)\">\n            Add To Cart\n          </button>\n        </div>\n      </div>\n\n      <div class=\"form-inline float-left mr-1\">\n        <select class=\"form-control\" [value]=\"productsPerPage\"\n                (change)=\"changePageSize($event.target.value)\">\n          <option value=\"3\">3 per Page</option>\n          <option value=\"4\">4 per Page</option>\n          <option value=\"6\">6 per Page</option>\n          <option value=\"8\">8 per Page</option>\n        </select>\n      </div>\n\n      <div class=\"btn-group float-right\">\n        <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n            class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n          {{page}}\n        </button>\n      </div>\n\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\nimport { Cart } from \"../model/cart.model\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository,\n        private cart: Cart,\n        private router: Router) { }\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    addProductToCart(product: Product) {\n        this.cart.addLine(product);\n        this.router.navigateByUrl(\"/cart\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\nimport { CartSummaryComponent } from \"./cartSummary.component\";\nimport { CartDetailComponent } from \"./cartDetail.component\";\nimport { CheckoutComponent } from \"./checkout.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule, RouterModule],\n    declarations: [StoreComponent, CounterDirective, CartSummaryComponent,\n        CartDetailComponent, CheckoutComponent],\n    exports: [StoreComponent, CartDetailComponent, CheckoutComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/app/storeFirst.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { StoreComponent } from \"./store/store.component\";\n\n@Injectable()\nexport class StoreFirstGuard {\n    private firstNavigation = true;\n\n    constructor(private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n        if (this.firstNavigation) {\n            this.firstNavigation = false;\n            if (route.component != StoreComponent) {\n                this.router.navigateByUrl(\"/\");\n                return false;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n  <link rel=\"manifest\" href=\"manifest.webmanifest\">\n  <meta name=\"theme-color\" content=\"#1976d2\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n  <noscript>Please enable JavaScript to continue using this application.</noscript>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/manifest.webmanifest",
    "content": "{\n  \"name\": \"SportsStore\",\n  \"short_name\": \"SportsStore\",\n  \"theme_color\": \"#1976d2\",\n  \"background_color\": \"#fafafa\",\n  \"display\": \"standalone\",\n  \"scope\": \"./\",\n  \"start_url\": \"./\",\n  \"icons\": [\n    {\n      \"src\": \"assets/icons/icon-72x72.png\",\n      \"sizes\": \"72x72\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-96x96.png\",\n      \"sizes\": \"96x96\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-128x128.png\",\n      \"sizes\": \"128x128\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-144x144.png\",\n      \"sizes\": \"144x144\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-152x152.png\",\n      \"sizes\": \"152x152\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-192x192.png\",\n      \"sizes\": \"192x192\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-384x384.png\",\n      \"sizes\": \"384x384\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-512x512.png\",\n      \"sizes\": \"512x512\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    }\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 10/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                            \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\n//import { AppComponent } from './app.component';\nimport { ProductComponent } from \"./component\";\n\n@NgModule({\n  declarations: [ProductComponent],\n  imports: [BrowserModule],\n  providers: [],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/app/component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/app/template.html",
    "content": "<div class=\"bg-info text-white m-2 p-2\">\n    There are {{model.getProducts().length}} products in the model\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 11/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                            \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\n//import { AppComponent } from './app.component';\nimport { ProductComponent } from \"./component\";\n\n@NgModule({\n  declarations: [ProductComponent],\n  imports: [BrowserModule],\n  providers: [],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    constructor(ref: ApplicationRef) {\n        (<any>window).appRef = ref;\n        (<any>window).model = this.model;\n    }\n\n    getProductByPosition(position: number): Product {\n        return this.model.getProducts()[position];\n    }\n\n    getClassesByPosition(position: number): string {\n        let product = this.getProductByPosition(position);\n        return \"p-2 \" + (product.price < 50 ? \"bg-info\" : \"bg-warning\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/app/template.html",
    "content": "<div class=\"text-white m-2\">\n    <div [ngClass]=\"getClassesByPosition(0)\">\n      The first product is {{getProductByPosition(0).name}}.\n    </div>\n    <div [ngClass]=\"getClassesByPosition(1)\">\n      The second product is {{getProductByPosition(1).name}}\n    </div>\n  </div>\n  "
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 12/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                            \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\n//import { AppComponent } from './app.component';\nimport { ProductComponent } from \"./component\";\n\n@NgModule({\n  declarations: [ProductComponent],\n  imports: [BrowserModule],\n  providers: [],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    constructor(ref: ApplicationRef) {\n        (<any>window).appRef = ref;\n        (<any>window).model = this.model;\n    }\n\n    getProductByPosition(position: number): Product {\n        return this.model.getProducts()[position];\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    getProductCount(): number {\n        return this.getProducts().length;\n    }\n\n    targetName: string = \"Kayak\";\n    counter: number = 1;\n\n    getKey(index: number, product: Product) {\n        return product.id;\n    }\n\n    get nextProduct(): Product {\n        return this.model.getProducts().shift();\n    }\n\n    getProductPrice(index: number): number {\n        return Math.floor(this.getProduct(index).price);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/app/template.html",
    "content": "<ng-template #titleTemplate let-text=\"title\">\n    <h4 class=\"p-2 bg-success text-white\">{{text}}</h4>\n  </ng-template>\n  \n  <ng-template [ngTemplateOutlet]=\"titleTemplate\"\n               [ngTemplateOutletContext]=\"{title: 'Header'}\">\n  </ng-template>\n  \n  <div class=\"bg-info p-2 m-2 text-white\">\n    There are {{getProductCount()}} products.\n  </div>\n  \n  <ng-template [ngTemplateOutlet]=\"titleTemplate\"\n               [ngTemplateOutletContext]=\"{title: 'Footer'}\">\n  </ng-template>\n  \n  <div class=\"bg-info p-2 text-white\">\n    The rounded price is {{getProductPrice(1)}}\n  </div>\n  "
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 13/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                            \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule {}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { NgForm, FormGroup } from \"@angular/forms\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup, ProductFormControl } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n    formGroup: ProductFormGroup = new ProductFormGroup();\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    newProduct: Product = new Product();\n\n    get jsonProduct() {\n        return JSON.stringify(this.newProduct);\n    }\n\n    addProduct(p: Product) {\n        console.log(\"New Product: \" + this.jsonProduct);\n    }\n\n    formSubmitted: boolean = false;\n\n    submitForm() {\n        Object.keys(this.formGroup.controls)\n            .forEach(c => this.newProduct[c] = this.formGroup.controls[c].value);\n        this.formSubmitted = true;\n        if (this.formGroup.valid) {\n            this.addProduct(this.newProduct);\n            this.newProduct = new Product();\n            this.formGroup.reset();\n            this.formSubmitted = false;\n        }\n    }    \n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/app/template.html",
    "content": "<style>\n    input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\n    input.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n</style>\n\n<form class=\"m-2\" novalidate [formGroup]=\"formGroup\" (ngSubmit)=\"submitForm()\">\n\n    <div class=\"bg-danger text-white p-2 mb-2\" \n            *ngIf=\"formSubmitted && formGroup.invalid\">\n        There are problems with the form\n        <ul>\n            <li *ngFor=\"let error of formGroup.getFormValidationMessages()\">\n                {{error}}\n            </li>\n        </ul>\n    </div>\n\n    <div class=\"form-group\" *ngFor=\"let control of formGroup.productControls\">\n        <label>{{control.label}}</label>\n        <input class=\"form-control\" \n            name=\"{{control.modelProperty}}\"\n            formControlName=\"{{control.modelProperty}}\" />\n        <ul class=\"text-danger list-unstyled\"\n                *ngIf=\"(formSubmitted || control.dirty) && control.invalid\">\n            <li *ngFor=\"let error of control.getValidationMessages()\">\n                {{error}}\n            </li>\n        </ul>\n    </div>\n\n    <button class=\"btn btn-primary\" type=\"submit\"\n        [disabled]=\"formSubmitted && formGroup.invalid\"\n        [class.btn-secondary]=\"formSubmitted && formGroup.invalid\">\n            Create\n    </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 14/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                            \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule  } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent, PaAttrDirective, PaModel],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n    SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n       from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Directive({\nselector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n@Input(\"pa-attr\")\n@HostBinding(\"class\")\nbgClass: string;\n\n@Input(\"pa-product\")\nproduct: Product;\n\n@Output(\"pa-category\")\nclick = new EventEmitter<string>();\n\n@HostListener(\"click\")\ntriggerCustomEvent() {\n   if (this.product != null) {\n       this.click.emit(this.product.category);\n   }\n}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { NgForm, FormGroup } from \"@angular/forms\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup, ProductFormControl } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n    formGroup: ProductFormGroup = new ProductFormGroup();\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    newProduct: Product = new Product();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n\n    formSubmitted: boolean = false;\n\n    submitForm() {\n        this.addProduct(this.newProduct);\n    }    \n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/app/template.html",
    "content": "<style>\n    input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\n    input.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n  </style>\n  \n  <div class=\"row m-2\">\n    <div class=\"col-6\">\n      <form class=\"m-2\" novalidate (ngSubmit)=\"submitForm()\">\n        <div class=\"form-group\">\n            <label>Name</label>\n            <input class=\"form-control\" name=\"name\" [(ngModel)]=\"newProduct.name\" />\n        </div>\n        <div class=\"form-group\">\n          <label>Category</label>\n          <input class=\"form-control\" name=\"category\" \n              [(ngModel)]=\"newProduct.category\" />\n        </div>      \n        <div class=\"form-group\">\n          <label>Price</label>\n          <input class=\"form-control\" name=\"price\" [(ngModel)]=\"newProduct.price\" />\n        </div>      \n        <button class=\"btn btn-primary\" type=\"submit\">Create</button>\n      </form>\n    </div>\n  \n    <div class=\"col-6\">\n\n        <div class=\"form-group bg-info text-white p-2\">\n            <label>Name:</label>\n            <input class=\"bg-primary text-white\" [(paModel)]=\"newProduct.name\" \n                #paModel=\"paModel\" />\n            <div class=\"bg-primary text-white\">Direction: {{paModel.direction}}</div>\n        </div>\n                \n        <table class=\"table table-sm table-bordered table-striped\">\n            <tr><th></th><th>Name</th><th>Category</th><th>Price</th></tr>\n            <tr *ngFor=\"let item of getProducts(); let i = index\"\n                    [pa-attr]=\"getProducts().length < 6 ? 'bg-success' : 'bg-warning'\"\n                    [pa-product]=\"item\" (pa-category)=\"newProduct.category = $event\">\n                <td>{{i + 1}}</td>\n                <td>{{item.name}}</td>\n                <td [pa-attr]=\"item.category == 'Soccer' ? 'bg-info' : null\">\n                    {{item.category}}\n                </td>\n                <td [pa-attr]=\"'bg-info'\">{{item.price}}</td>\n            </tr>\n        </table>        \n    </div>\n  </div>\n  "
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 15/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                            \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule  } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent, PaAttrDirective, PaModel,\n        PaStructureDirective, PaIteratorDirective,\n        PaCellColor, PaCellColorSwitcher],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n    SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n       from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Directive({\nselector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n@Input(\"pa-attr\")\n@HostBinding(\"class\")\nbgClass: string;\n\n@Input(\"pa-product\")\nproduct: Product;\n\n@Output(\"pa-category\")\nclick = new EventEmitter<string>();\n\n@HostListener(\"click\")\ntriggerCustomEvent() {\n   if (this.product != null) {\n       this.click.emit(this.product.category);\n   }\n}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import {\n    Directive, Input, Output, EventEmitter,\n    SimpleChange, ContentChildren, QueryList\n} from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n\n    @ContentChildren(PaCellColor, { descendants: true })\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { NgForm, FormGroup } from \"@angular/forms\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup, ProductFormControl } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n    formGroup: ProductFormGroup = new ProductFormGroup();\n    showTable: boolean = false;\n    darkColor: boolean = false;\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    newProduct: Product = new Product();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    formSubmitted: boolean = false;\n\n    submitForm() {\n        this.addProduct(this.newProduct);\n    }    \n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n        public position: number, total: number) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n    <div class=\"col-4\">\n        <form class=\"m-2\" novalidate (ngSubmit)=\"submitForm()\">\n            <div class=\"form-group\">\n                <label>Name</label>\n                <input class=\"form-control\" name=\"name\" \n                    [(ngModel)]=\"newProduct.name\" />\n            </div>\n            <div class=\"form-group\">\n                <label>Category</label>\n                <input class=\"form-control\" name=\"category\" \n                    [(ngModel)]=\"newProduct.category\" />\n            </div>      \n            <div class=\"form-group\">\n                <label>Price</label>\n                <input class=\"form-control\" name=\"price\" \n                    [(ngModel)]=\"newProduct.price\" />\n            </div>      \n            <button class=\"btn btn-primary\" type=\"submit\">Create</button>\n        </form>\n    </div>\n    <div class=\"col-8\">\n\n        <div class=\"checkbox\">\n            <label>\n                <input type=\"checkbox\" [(ngModel)]=\"darkColor\" />\n                Dark Cell Color\n            </label>\n        </div>\n        \n        <table class=\"table table-sm table-bordered table-striped\" \n                [paCellDarkColor]=\"darkColor\">\n    \n        \n    <thead>\n        <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *paFor=\"let item of getProducts(); let i = index; let odd = odd;\n                let even = even\" [class.bg-info]=\"odd\" \n                [class.bg-warning]=\"even\">\n            <td style=\"vertical-align:middle\">{{i + 1}}</td>\n            <td style=\"vertical-align:middle\">{{item.name}}</td>\n            <td style=\"vertical-align:middle\">{{item.category}}</td>\n            <td style=\"vertical-align:middle\">{{item.price}}</td>\n            <td class=\"text-center\">\n                <button class=\"btn btn-danger btn-sm\" \n                        (click)=\"deleteProduct(item.id)\">\n                    Delete\n                </button>\n            </td>                \n        </tr>\n    </tbody>\n</table>\n\n    </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 16/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                            \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule  } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent, PaAttrDirective, PaModel,\n        PaStructureDirective, PaIteratorDirective,\n        PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n        ProductFormComponent, PaToggleView],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n    SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n       from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Directive({\nselector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n@Input(\"pa-attr\")\n@HostBinding(\"class\")\nbgClass: string;\n\n@Input(\"pa-product\")\nproduct: Product;\n\n@Output(\"pa-category\")\nclick = new EventEmitter<string>();\n\n@HostListener(\"click\")\ntriggerCustomEvent() {\n   if (this.product != null) {\n       this.click.emit(this.product.category);\n   }\n}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import {\n    Directive, Input, Output, EventEmitter,\n    SimpleChange, ContentChildren, QueryList\n} from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n\n    @ContentChildren(PaCellColor, { descendants: true })\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\",\n    styles: [\"/deep/ div { border: 2px black solid;  font-style:italic }\"]\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n        public position: number, total: number) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover { \n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" \n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>    \n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>    \n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\",\n    styleUrls: [\"productForm.component.css\"],\n    encapsulation: ViewEncapsulation.Emulated    \n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    @Output(\"paNewProduct\")\n    newProductEvent = new EventEmitter<Product>();\n\n    submitForm(form: any) {\n        this.newProductEvent.emit(this.newProduct);\n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    <tr *paFor=\"let item of getProducts(); let i = index; let odd = odd;\n            let even = even\" [class.bg-info]=\"odd\" [class.bg-warning]=\"even\">\n        <td style=\"vertical-align:middle\">{{i + 1}}</td>\n        <td style=\"vertical-align:middle\">{{item.name}}</td>\n        <td style=\"vertical-align:middle\">{{item.category}}</td>\n        <td style=\"vertical-align:middle\">{{item.price}}</td>\n        <td class=\"text-xs-center\">\n            <button class=\"btn btn-danger btn-sm\" (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n        </td>\n    </tr>\n</table>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n\n    @Input(\"model\")\n    dataModel: Model;\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    showTable: boolean = true;\n\n    @ViewChildren(PaCellColor)\n    viewChildren: QueryList<PaCellColor>;\n   \n    ngAfterViewInit() {\n        this.viewChildren.changes.subscribe(() => {\n            this.updateViewChildren();\n        });\n        this.updateViewChildren();\n    }\n\n    private updateViewChildren() {\n        setTimeout(() => {\n            this.viewChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? true : false);\n            })\n        }, 0);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n    <div class=\"col-4 p-2\">\n      <paProductForm (paNewProduct)=\"addProduct($event)\"></paProductForm>\n    </div>\n    <div class=\"col-8 p-2\">\n      <paToggleView>\n        <paProductTable [model]=\"model\"></paProductTable>\n      </paToggleView>\n    </div>\n  </div>\n  "
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\"> \n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\" \n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 17/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                            \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/addTax.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\n\n@Pipe({\n    name: \"addTax\"\n})\nexport class PaAddTaxPipe {\n\n    defaultRate: number = 10;\n\n    transform(value: any, rate?: any): number {\n        let valueNumber = Number.parseFloat(value);\n        let rateNumber = rate == undefined ? \n            this.defaultRate : Number.parseInt(rate);\n        return valueNumber + (valueNumber * (rateNumber / 100));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\nimport { PaAddTaxPipe } from \"./addTax.pipe\";\nimport { PaCategoryFilterPipe } from \"./categoryFilter.pipe\";\nimport { LOCALE_ID } from \"@angular/core\";\nimport localeFr from '@angular/common/locales/fr';\nimport { registerLocaleData } from '@angular/common';\n\nregisterLocaleData(localeFr);\n\n@NgModule({\n  imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n  declarations: [ProductComponent, PaAttrDirective, PaModel,\n    PaStructureDirective, PaIteratorDirective,\n    PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n    ProductFormComponent, PaToggleView, PaAddTaxPipe,\n    PaCategoryFilterPipe],\n  //providers: [{ provide: LOCALE_ID, useValue: \"fr-FR\" }],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n    SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n       from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Directive({\nselector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n@Input(\"pa-attr\")\n@HostBinding(\"class\")\nbgClass: string;\n\n@Input(\"pa-product\")\nproduct: Product;\n\n@Output(\"pa-category\")\nclick = new EventEmitter<string>();\n\n@HostListener(\"click\")\ntriggerCustomEvent() {\n   if (this.product != null) {\n       this.click.emit(this.product.category);\n   }\n}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/categoryFilter.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Pipe({\n    name: \"filter\",\n    pure: false\n})\nexport class PaCategoryFilterPipe {\n\n    transform(products: Product[], category: string): Product[] {\n        return category == undefined ?\n            products : products.filter(p => p.category == category);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import {\n    Directive, Input, Output, EventEmitter,\n    SimpleChange, ContentChildren, QueryList\n} from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n\n    @ContentChildren(PaCellColor, { descendants: true })\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\",\n    //styles: [\"/deep/ div { border: 2px black solid;  font-style:italic }\"]\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n        public position: number, total: number) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover { \n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" \n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>    \n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>    \n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\",\n    // styleUrls: [\"productForm.component.css\"],\n    // encapsulation: ViewEncapsulation.Emulated    \n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    @Output(\"paNewProduct\")\n    newProductEvent = new EventEmitter<Product>();\n\n    submitForm(form: any) {\n        this.newProductEvent.emit(this.newProduct);\n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr><th>Name</th><th>Category</th><th>Message</th></tr>\n    <tr *paFor=\"let item of getProducts()\">\n        <td>{{ item.name }}</td>\n        <td>{{ item.category }}</td>\n        <td>Helps you {{ item.category | i18nSelect:selectMap }} </td>\n    </tr>\n</table>\n\n<div class=\"bg-info text-white p-2\">\n    <div>There are {{ 1 | i18nPlural:numberMap }} </div>\n    <div>There are {{ 2 | i18nPlural:numberMap }} </div>\n    <div>There are {{ 100 | i18nPlural:numberMap }} </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n    \n    @Input(\"model\")\n    dataModel: Model;\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n    categoryFilter: string;\n    itemCount: number = 3;\n\n    dateObject: Date = new Date(2020, 1, 20);\n    dateString: string = \"2020-02-20T00:00:00.000Z\";\n    dateNumber: number = 1582156800000;\n\n    selectMap = {\n        \"Watersports\": \"stay dry\", \n        \"Soccer\": \"score goals\",\n        \"other\": \"have fun\"    \n    }\n\n    numberMap = {\n        \"=1\": \"one product\",\n        \"=2\": \"two products\",\n        \"other\": \"# products\"\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n  <div class=\"col-4 p-2\">\n    <paProductForm (paNewProduct)=\"addProduct($event)\"></paProductForm>\n  </div>\n  <div class=\"col-8 p-2\">\n    <paProductTable [model]=\"model\"></paProductTable>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\"> \n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\" \n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 18/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                            \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/addTax.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\n\n@Pipe({\n    name: \"addTax\"\n})\nexport class PaAddTaxPipe {\n\n    defaultRate: number = 10;\n\n    transform(value: any, rate?: any): number {\n        let valueNumber = Number.parseFloat(value);\n        let rateNumber = rate == undefined ? \n            this.defaultRate : Number.parseInt(rate);\n        return valueNumber + (valueNumber * (rateNumber / 100));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\nimport { PaAddTaxPipe } from \"./addTax.pipe\";\nimport { PaCategoryFilterPipe } from \"./categoryFilter.pipe\";\nimport { LOCALE_ID } from \"@angular/core\";\nimport localeFr from '@angular/common/locales/fr';\nimport { registerLocaleData } from '@angular/common';\nimport { PaDiscountDisplayComponent } from \"./discountDisplay.component\";\nimport { PaDiscountEditorComponent } from \"./discountEditor.component\";\nimport { DiscountService } from \"./discount.service\";\nimport { PaDiscountPipe } from \"./discount.pipe\";\nimport { PaDiscountAmountDirective } from \"./discountAmount.directive\";\nimport { SimpleDataSource } from \"./datasource.model\";\nimport { Model } from \"./repository.model\";\n\nregisterLocaleData(localeFr);\n\n@NgModule({\n  imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n  declarations: [ProductComponent, PaAttrDirective, PaModel,\n    PaStructureDirective, PaIteratorDirective,\n    PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n    ProductFormComponent, PaToggleView, PaAddTaxPipe,\n    PaCategoryFilterPipe, PaDiscountDisplayComponent, PaDiscountEditorComponent, \n    PaDiscountPipe, PaDiscountAmountDirective],\n    providers: [DiscountService, SimpleDataSource, Model],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n    SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n       from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Directive({\nselector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n@Input(\"pa-attr\")\n@HostBinding(\"class\")\nbgClass: string;\n\n@Input(\"pa-product\")\nproduct: Product;\n\n@Output(\"pa-category\")\nclick = new EventEmitter<string>();\n\n@HostListener(\"click\")\ntriggerCustomEvent() {\n   if (this.product != null) {\n       this.click.emit(this.product.category);\n   }\n}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/categoryFilter.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Pipe({\n    name: \"filter\",\n    pure: false\n})\nexport class PaCategoryFilterPipe {\n\n    transform(products: Product[], category: string): Product[] {\n        return category == undefined ?\n            products : products.filter(p => p.category == category);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import {\n    Directive, Input, Output, EventEmitter,\n    SimpleChange, ContentChildren, QueryList\n} from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n\n    @ContentChildren(PaCellColor, { descendants: true })\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/component.ts",
    "content": "import { Component } from \"@angular/core\";\n//import { Model } from \"./repository.model\";\n//import { Product } from \"./product.model\";\n//import { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    //model: Model = new Model();\n\n    //constructor(public model: Model) { }\n\n    //addProduct(p: Product) {\n    //    this.model.saveProduct(p);\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/datasource.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class SimpleDataSource {\n    private data:Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n        new Product(1, \"Kayak\", \"Watersports\", 275),\n        new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n        new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n        new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n        new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/discount.pipe.ts",
    "content": "import { Pipe, Injectable } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Pipe({\n    name: \"discount\",\n    pure: false\n})\nexport class PaDiscountPipe {\n\n    constructor(private discount: DiscountService) { }\n\n    transform(price: number): number {\n        return this.discount.applyDiscount(price);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/discount.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class DiscountService {\n    private discountValue: number = 10;\n\n    public get discount(): number {\n        return this.discountValue;\n    }\n\n    public set discount(newValue: number) {\n        this.discountValue = newValue || 0;\n    }         \n\n    public applyDiscount(price: number) {\n        return Math.max(price - this.discountValue, 5);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/discountAmount.directive.ts",
    "content": "import { Directive, HostBinding, Input,\n    SimpleChange, KeyValueDiffer, KeyValueDiffers,\n    ChangeDetectorRef } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Directive({\n    selector: \"td[pa-price]\",\n    exportAs: \"discount\"\n})\nexport class PaDiscountAmountDirective {\n    private differ: KeyValueDiffer<any, any>;\n\n    constructor(private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef,\n        private discount: DiscountService) { }\n\n    @Input(\"pa-price\")\n    originalPrice: number;\n\n    discountAmount: number;\n\n    ngOnInit() {\n        this.differ =\n            this.keyValueDiffers.find(this.discount).create();\n    }\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        if (changes[\"originalPrice\"] != null) {\n            this.updateValue();\n        }\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.discount) != null) {\n            this.updateValue();\n        }\n    }\n\n    private updateValue() {\n        this.discountAmount = this.originalPrice\n            - this.discount.applyDiscount(this.originalPrice);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/discountDisplay.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n  selector: \"paDiscountDisplay\",\n  template: `<div class=\"bg-info text-white p-2\">\n                The discount is {{discounter.discount}}\n               </div>`\n})\nexport class PaDiscountDisplayComponent {\n\n  constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/discountEditor.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n    selector: \"paDiscountEditor\",\n    template: `<div class=\"form-group\">\n                   <label>Discount</label>\n                   <input [(ngModel)]=\"discounter.discount\" \n                        class=\"form-control\" type=\"number\" />              \n               </div>`\n})\nexport class PaDiscountEditorComponent {\n\n    constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n        public position: number, total: number) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover { \n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" \n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>    \n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>    \n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n\n<paDiscountEditor></paDiscountEditor>\n<paDiscountDisplay></paDiscountDisplay>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Model } from \"./repository.model\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\"\n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    constructor(private model: Model) { }\n\n    // @Output(\"paNewProduct\")\n    // newProductEvent = new EventEmitter<Product>();\n\n    submitForm(form: any) {\n        //this.newProductEvent.emit(this.newProduct);\n        this.model.saveProduct(this.newProduct);        \n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <thead>\n        <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *paFor=\"let item of getProducts(); let i = index\">\n            <td>{{i + 1}}</td>\n            <td>{{item.name}}</td>\n            <td>{{item.category}}</td>\n            <td [pa-price]=\"item.price\" #discount=\"discount\">\n                {{ discount.discountAmount | currency:\"USD\":\"symbol\"}}\n            </td>\n            <td class=\"text-center\">\n                <button class=\"btn btn-danger btn-sm\" \n                        (click)=\"deleteProduct(item.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>    \n</table>\n\n<paDiscountEditor></paDiscountEditor>\n<paDiscountDisplay></paDiscountDisplay>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n    //discounter: DiscountService = new DiscountService();\n\n    constructor(private dataModel: Model) { }\n\n    // @Input(\"model\")\n    // dataModel: Model;\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n    dateObject: Date = new Date(2020, 1, 20);\n    dateString: string = \"2020-02-20T00:00:00.000Z\";\n    dateNumber: number = 1582156800000;\n\n    selectMap = {\n        \"Watersports\": \"stay dry\", \n        \"Soccer\": \"score goals\",\n        \"other\": \"have fun\"    \n    }\n\n    numberMap = {\n        \"=1\": \"one product\",\n        \"=2\": \"two products\",\n        \"other\": \"# products\"\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\n@Injectable()\nexport class Model {\n    //private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p:Product, id:number) => p.id == id;\n\n    constructor(private dataSource: SimpleDataSource) {\n        //this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n  <div class=\"col-4 p-2\">\n    <paProductForm></paProductForm>\n  </div>\n  <div class=\"col-8 p-2\">\n    <paProductTable></paProductTable>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\"> \n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\" \n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 19/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                            \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/addTax.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\n\n@Pipe({\n    name: \"addTax\"\n})\nexport class PaAddTaxPipe {\n\n    defaultRate: number = 10;\n\n    transform(value: any, rate?: any): number {\n        let valueNumber = Number.parseFloat(value);\n        let rateNumber = rate == undefined ? \n            this.defaultRate : Number.parseInt(rate);\n        return valueNumber + (valueNumber * (rateNumber / 100));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\nimport { PaAddTaxPipe } from \"./addTax.pipe\";\nimport { PaCategoryFilterPipe } from \"./categoryFilter.pipe\";\nimport { LOCALE_ID } from \"@angular/core\";\nimport localeFr from '@angular/common/locales/fr';\nimport { registerLocaleData } from '@angular/common';\nimport { PaDiscountDisplayComponent } from \"./discountDisplay.component\";\nimport { PaDiscountEditorComponent } from \"./discountEditor.component\";\nimport { DiscountService } from \"./discount.service\";\nimport { PaDiscountPipe } from \"./discount.pipe\";\nimport { PaDiscountAmountDirective } from \"./discountAmount.directive\";\nimport { SimpleDataSource } from \"./datasource.model\";\nimport { Model } from \"./repository.model\";\nimport { LogService, LOG_SERVICE, SpecialLogService,\n  LogLevel, LOG_LEVEL} from \"./log.service\";\nimport { VALUE_SERVICE, PaDisplayValueDirective} from \"./valueDisplay.directive\";\n\nlet logger = new LogService();\nlogger.minimumLevel = LogLevel.DEBUG; \n\nregisterLocaleData(localeFr);\n\n@NgModule({\n  imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n  declarations: [ProductComponent, PaAttrDirective, PaModel,\n    PaStructureDirective, PaIteratorDirective,\n    PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n    ProductFormComponent, PaToggleView, PaAddTaxPipe,\n    PaCategoryFilterPipe, PaDiscountDisplayComponent, PaDiscountEditorComponent, \n    PaDiscountPipe, PaDiscountAmountDirective, PaDisplayValueDirective],\n    providers: [DiscountService, SimpleDataSource, Model, LogService,\n      { provide: VALUE_SERVICE, useValue: \"Apples\" }],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n    SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n       from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Directive({\nselector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n@Input(\"pa-attr\")\n@HostBinding(\"class\")\nbgClass: string;\n\n@Input(\"pa-product\")\nproduct: Product;\n\n@Output(\"pa-category\")\nclick = new EventEmitter<string>();\n\n@HostListener(\"click\")\ntriggerCustomEvent() {\n   if (this.product != null) {\n       this.click.emit(this.product.category);\n   }\n}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/categoryFilter.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Pipe({\n    name: \"filter\",\n    pure: false\n})\nexport class PaCategoryFilterPipe {\n\n    transform(products: Product[], category: string): Product[] {\n        return category == undefined ?\n            products : products.filter(p => p.category == category);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import {\n    Directive, Input, Output, EventEmitter,\n    SimpleChange, ContentChildren, QueryList\n} from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n\n    @ContentChildren(PaCellColor, { descendants: true })\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/component.ts",
    "content": "import { Component } from \"@angular/core\";\n//import { Model } from \"./repository.model\";\n//import { Product } from \"./product.model\";\n//import { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    //model: Model = new Model();\n\n    //constructor(public model: Model) { }\n\n    //addProduct(p: Product) {\n    //    this.model.saveProduct(p);\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/datasource.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class SimpleDataSource {\n    private data:Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n        new Product(1, \"Kayak\", \"Watersports\", 275),\n        new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n        new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n        new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n        new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/discount.pipe.ts",
    "content": "import { Pipe, Injectable } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\nimport { LogService } from \"./log.service\";\n\n@Pipe({\n    name: \"discount\",\n    pure: false\n})\nexport class PaDiscountPipe {\n\n    constructor(private discount: DiscountService,\n                private logger: LogService) { }\n\n    transform(price: number): number {\n        if (price > 100) {\n            this.logger.logInfoMessage(`Large price discounted: ${price}`);\n        }\n        return this.discount.applyDiscount(price);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/discount.service.ts",
    "content": "import { Injectable, Inject } from \"@angular/core\";\nimport { LogService, LOG_SERVICE, LogLevel } from \"./log.service\";\n\n@Injectable()\nexport class DiscountService {\n    private discountValue: number = 10;\n\n    constructor(private logger: LogService) { }\n\n    public get discount(): number {\n        return this.discountValue;\n    }\n\n    public set discount(newValue: number) {\n        this.discountValue = newValue || 0;\n    }\n\n    public applyDiscount(price: number) {\n        this.logger.logInfoMessage(`Discount ${this.discount}`\n            + ` applied to price: ${price}`);\n        return Math.max(price - this.discountValue, 5);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/discountAmount.directive.ts",
    "content": "import { Directive, HostBinding, Input,\n    SimpleChange, KeyValueDiffer, KeyValueDiffers,\n    ChangeDetectorRef } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Directive({\n    selector: \"td[pa-price]\",\n    exportAs: \"discount\"\n})\nexport class PaDiscountAmountDirective {\n    private differ: KeyValueDiffer<any, any>;\n\n    constructor(private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef,\n        private discount: DiscountService) { }\n\n    @Input(\"pa-price\")\n    originalPrice: number;\n\n    discountAmount: number;\n\n    ngOnInit() {\n        this.differ =\n            this.keyValueDiffers.find(this.discount).create();\n    }\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        if (changes[\"originalPrice\"] != null) {\n            this.updateValue();\n        }\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.discount) != null) {\n            this.updateValue();\n        }\n    }\n\n    private updateValue() {\n        this.discountAmount = this.originalPrice\n            - this.discount.applyDiscount(this.originalPrice);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/discountDisplay.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n  selector: \"paDiscountDisplay\",\n  template: `<div class=\"bg-info text-white p-2\">\n                The discount is {{discounter.discount}}\n               </div>`\n})\nexport class PaDiscountDisplayComponent {\n\n  constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/discountEditor.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n    selector: \"paDiscountEditor\",\n    template: `<div class=\"form-group\">\n                   <label>Discount</label>\n                   <input [(ngModel)]=\"discounter.discount\" \n                        class=\"form-control\" type=\"number\" />              \n               </div>`\n})\nexport class PaDiscountEditorComponent {\n\n    constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n        public position: number, total: number) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/log.service.ts",
    "content": "import { Injectable, InjectionToken } from \"@angular/core\";\n\nexport const LOG_SERVICE = new InjectionToken(\"logger\");\nexport const LOG_LEVEL = new InjectionToken(\"log_level\");\n\nexport enum LogLevel {\n    DEBUG, INFO, ERROR\n}\n\n@Injectable()\nexport class LogService {\n    minimumLevel: LogLevel = LogLevel.INFO;\n\n    logInfoMessage(message: string) {\n        this.logMessage(LogLevel.INFO, message);\n    }\n\n    logDebugMessage(message: string) {\n        this.logMessage(LogLevel.DEBUG, message);\n    }\n\n    logErrorMessage(message: string) {\n        this.logMessage(LogLevel.ERROR, message);\n    }\n\n    logMessage(level: LogLevel, message: string) {\n        if (level >= this.minimumLevel) {\n            console.log(`Message (${LogLevel[level]}): ${message}`);\n        }\n    }\n}\n\n@Injectable()\nexport class SpecialLogService extends LogService {\n\n    constructor() {\n        super()\n        this.minimumLevel = LogLevel.DEBUG;\n    }\n\n    logMessage(level: LogLevel, message: string) {\n        if (level >= this.minimumLevel) {\n            console.log(`Special Message (${LogLevel[level]}): ${message}`);\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover { \n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" \n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>    \n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>    \n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n\n<div class=\"bg-info text-white m-2 p-2\">\n    View Child Value: <span paDisplayValue></span>\n</div>\n<div class=\"bg-info text-white m-2 p-2\">\n    Content Child Value: <ng-content></ng-content>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation, \n    Inject, SkipSelf } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Model } from \"./repository.model\";\nimport { VALUE_SERVICE } from \"./valueDisplay.directive\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\",\n    viewProviders: [{ provide: VALUE_SERVICE, useValue: \"Oranges\" }]\n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    constructor(private model: Model,\n            @Inject(VALUE_SERVICE) @SkipSelf() private serviceValue: string) {\n        console.log(\"Service Value: \" + serviceValue);\n    }\n\n    submitForm(form: any) {\n        this.model.saveProduct(this.newProduct);        \n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <thead>\n        <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *paFor=\"let item of getProducts(); let i = index\">\n            <td>{{i + 1}}</td>\n            <td>{{item.name}}</td>\n            <td>{{item.category}}</td>\n            <td [pa-price]=\"item.price\" #discount=\"discount\">\n                {{ discount.discountAmount | currency:\"USD\":\"symbol\"}}\n            </td>\n            <td class=\"text-center\">\n                <button class=\"btn btn-danger btn-sm\" \n                        (click)=\"deleteProduct(item.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>    \n</table>\n\n<paDiscountEditor></paDiscountEditor>\n<paDiscountDisplay></paDiscountDisplay>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { DiscountService } from \"./discount.service\";\nimport { LogService } from \"./log.service\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\",\n    providers:[LogService]    \n\n})\nexport class ProductTableComponent {\n    \n    constructor(private dataModel: Model) { }\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n    dateObject: Date = new Date(2020, 1, 20);\n    dateString: string = \"2020-02-20T00:00:00.000Z\";\n    dateNumber: number = 1582156800000;\n\n    selectMap = {\n        \"Watersports\": \"stay dry\", \n        \"Soccer\": \"score goals\",\n        \"other\": \"have fun\"    \n    }\n\n    numberMap = {\n        \"=1\": \"one product\",\n        \"=2\": \"two products\",\n        \"other\": \"# products\"\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\n@Injectable()\nexport class Model {\n    //private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p:Product, id:number) => p.id == id;\n\n    constructor(private dataSource: SimpleDataSource) {\n        //this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n  <div class=\"col-4 p-2\">\n    <paProductForm>\n      <span paDisplayValue></span>\n    </paProductForm>\n  </div>\n  <div class=\"col-8 p-2\">\n    <paProductTable></paProductTable>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\"> \n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\" \n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/app/valueDisplay.directive.ts",
    "content": "import { Directive, InjectionToken, Inject,\n    HostBinding, Host, Optional} from \"@angular/core\";\n\nexport const VALUE_SERVICE = new InjectionToken(\"value_service\");\n\n@Directive({\nselector: \"[paDisplayValue]\"\n})\nexport class PaDisplayValueDirective {\n\nconstructor( @Inject(VALUE_SERVICE) @Host() @Optional() serviceValue: string) {\n   this.elementContent = serviceValue || \"No Value\";\n}\n\n@HostBinding(\"textContent\")\nelementContent: string;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 20/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"                            \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { ProductTableComponent } from \"./components/productTable.component\";\nimport { ProductFormComponent } from \"./components/productForm.component\";\n// import { PaDiscountDisplayComponent } from \"./discountDisplay.component\";\n// import { PaDiscountEditorComponent } from \"./discountEditor.component\";\nimport { ModelModule } from \"./model/model.module\";\nimport { CommonModule } from \"./common/common.module\";\nimport { ComponentsModule } from \"./components/components.module\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule,\n        ModelModule, CommonModule, ComponentsModule],\n    declarations: [ProductComponent],\n    bootstrap: [ProductFormComponent, ProductTableComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/common/addTax.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\n\n@Pipe({\n    name: \"addTax\"\n})\nexport class PaAddTaxPipe {\n\n    defaultRate: number = 10;\n\n    transform(value: any, rate?: any): number {\n        let valueNumber = Number.parseFloat(value);\n        let rateNumber = rate == undefined ? \n            this.defaultRate : Number.parseInt(rate);\n        return valueNumber + (valueNumber * (rateNumber / 100));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/common/attr.directive.ts",
    "content": "import { Directive, ElementRef, Attribute, Input,\n    SimpleChange, Output, EventEmitter, HostListener, HostBinding }\n       from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\n\n@Directive({\nselector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n@Input(\"pa-attr\")\n@HostBinding(\"class\")\nbgClass: string;\n\n@Input(\"pa-product\")\nproduct: Product;\n\n@Output(\"pa-category\")\nclick = new EventEmitter<string>();\n\n@HostListener(\"click\")\ntriggerCustomEvent() {\n   if (this.product != null) {\n       this.click.emit(this.product.category);\n   }\n}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/common/categoryFilter.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\n\n@Pipe({\n    name: \"filter\",\n    pure: false\n})\nexport class PaCategoryFilterPipe {\n\n    transform(products: Product[], category: string): Product[] {\n        return category == undefined ?\n            products : products.filter(p => p.category == category);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/common/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/common/cellColorSwitcher.directive.ts",
    "content": "import {\n    Directive, Input, Output, EventEmitter,\n    SimpleChange, ContentChildren, QueryList\n} from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\n    selector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n    @Input(\"paCellDarkColor\")\n    modelProperty: Boolean;\n\n    @ContentChildren(PaCellColor, { descendants: true })\n    contentChildren: QueryList<PaCellColor>;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n    }\n\n    ngAfterContentInit() {\n        this.contentChildren.changes.subscribe(() => {\n            setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n        });\n    }\n\n    private updateContentChildren(dark: Boolean) {\n        if (this.contentChildren != null && dark != undefined) {\n            this.contentChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? dark : !dark);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/common/common.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { PaAddTaxPipe } from \"./addTax.pipe\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaCategoryFilterPipe } from \"./categoryFilter.pipe\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { PaDiscountPipe } from \"./discount.pipe\";\nimport { PaDiscountAmountDirective } from \"./discountAmount.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { VALUE_SERVICE, PaDisplayValueDirective} from \"./valueDisplay.directive\";\nimport { DiscountService } from \"./discount.service\";\nimport { LogService } from \"./log.service\";\nimport { ModelModule } from \"../model/model.module\";\n\n@NgModule({\n    imports: [ModelModule],\n    providers: [LogService, DiscountService,\n        { provide: VALUE_SERVICE, useValue: \"Apples\" }],\n    declarations: [PaAddTaxPipe, PaAttrDirective, PaCategoryFilterPipe,\n        PaCellColor, PaCellColorSwitcher, PaDiscountPipe,\n        PaDiscountAmountDirective, PaIteratorDirective, PaStructureDirective,\n        PaModel, PaDisplayValueDirective],\n    exports: [PaAddTaxPipe, PaAttrDirective, PaCategoryFilterPipe,\n        PaCellColor, PaCellColorSwitcher, PaDiscountPipe,\n        PaDiscountAmountDirective, PaIteratorDirective, PaStructureDirective,\n        PaModel, PaDisplayValueDirective]\n})\nexport class CommonModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/common/discount.pipe.ts",
    "content": "import { Pipe, Injectable } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\nimport { LogService } from \"./log.service\";\n\n@Pipe({\n    name: \"discount\",\n    pure: false\n})\nexport class PaDiscountPipe {\n\n    constructor(private discount: DiscountService,\n                private logger: LogService) { }\n\n    transform(price: number): number {\n        if (price > 100) {\n            this.logger.logInfoMessage(`Large price discounted: ${price}`);\n        }\n        return this.discount.applyDiscount(price);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/common/discount.service.ts",
    "content": "import { Injectable, Inject } from \"@angular/core\";\nimport { LogService, LOG_SERVICE, LogLevel } from \"./log.service\";\n\n@Injectable()\nexport class DiscountService {\n    private discountValue: number = 10;\n\n    constructor(private logger: LogService) { }\n\n    public get discount(): number {\n        return this.discountValue;\n    }\n\n    public set discount(newValue: number) {\n        this.discountValue = newValue || 0;\n    }\n\n    public applyDiscount(price: number) {\n        this.logger.logInfoMessage(`Discount ${this.discount}`\n            + ` applied to price: ${price}`);\n        return Math.max(price - this.discountValue, 5);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/common/discountAmount.directive.ts",
    "content": "import { Directive, HostBinding, Input,\n    SimpleChange, KeyValueDiffer, KeyValueDiffers,\n    ChangeDetectorRef } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Directive({\n    selector: \"td[pa-price]\",\n    exportAs: \"discount\"\n})\nexport class PaDiscountAmountDirective {\n    private differ: KeyValueDiffer<any, any>;\n\n    constructor(private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef,\n        private discount: DiscountService) { }\n\n    @Input(\"pa-price\")\n    originalPrice: number;\n\n    discountAmount: number;\n\n    ngOnInit() {\n        this.differ =\n            this.keyValueDiffers.find(this.discount).create();\n    }\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        if (changes[\"originalPrice\"] != null) {\n            this.updateValue();\n        }\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.discount) != null) {\n            this.updateValue();\n        }\n    }\n\n    private updateValue() {\n        this.discountAmount = this.originalPrice\n            - this.discount.applyDiscount(this.originalPrice);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/common/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, CollectionChangeRecord, DefaultIterableDiffer, ViewRef\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: DefaultIterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <DefaultIterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n            changes.forEachAddedItem(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, changes.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n        public position: number, total: number) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/common/log.service.ts",
    "content": "import { Injectable, InjectionToken } from \"@angular/core\";\n\nexport const LOG_SERVICE = new InjectionToken(\"logger\");\nexport const LOG_LEVEL = new InjectionToken(\"log_level\");\n\nexport enum LogLevel {\n    DEBUG, INFO, ERROR\n}\n\n@Injectable()\nexport class LogService {\n    minimumLevel: LogLevel = LogLevel.INFO;\n\n    logInfoMessage(message: string) {\n        this.logMessage(LogLevel.INFO, message);\n    }\n\n    logDebugMessage(message: string) {\n        this.logMessage(LogLevel.DEBUG, message);\n    }\n\n    logErrorMessage(message: string) {\n        this.logMessage(LogLevel.ERROR, message);\n    }\n\n    logMessage(level: LogLevel, message: string) {\n        if (level >= this.minimumLevel) {\n            console.log(`Message (${LogLevel[level]}): ${message}`);\n        }\n    }\n}\n\n@Injectable()\nexport class SpecialLogService extends LogService {\n\n    constructor() {\n        super()\n        this.minimumLevel = LogLevel.DEBUG;\n    }\n\n    logMessage(level: LogLevel, message: string) {\n        if (level >= this.minimumLevel) {\n            console.log(`Special Message (${LogLevel[level]}): ${message}`);\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/common/structure.directive.ts",
    "content": "import {\n    Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>) { }\n\n    @Input(\"paIf\")\n    expressionResult: boolean;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"expressionResult\"];\n        if (!change.isFirstChange() && !change.currentValue) {\n            this.container.clear();\n        } else if (change.currentValue) {\n            this.container.createEmbeddedView(this.template);\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/common/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n    HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n    selector: \"input[paModel]\",\n    exportAs: \"paModel\"\n})\nexport class PaModel {\n\n    direction: string = \"None\";\n\n    @Input(\"paModel\")\n    modelProperty: string;\n\n    @HostBinding(\"value\")\n    fieldValue: string = \"\";\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"modelProperty\"];\n        if (change.currentValue != this.fieldValue) {\n            this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n            this.direction = \"Model\";\n        }\n    }\n\n    @Output(\"paModelChange\")\n    update = new EventEmitter<string>();\n\n    @HostListener(\"input\", [\"$event.target.value\"])\n    updateValue(newValue: string) {\n        this.fieldValue = newValue;\n        this.update.emit(newValue);\n        this.direction = \"Element\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/common/valueDisplay.directive.ts",
    "content": "import { Directive, InjectionToken, Inject,\n    HostBinding, Host, Optional} from \"@angular/core\";\n\nexport const VALUE_SERVICE = new InjectionToken(\"value_service\");\n\n@Directive({\nselector: \"[paDisplayValue]\"\n})\nexport class PaDisplayValueDirective {\n\nconstructor( @Inject(VALUE_SERVICE) @Host() @Optional() serviceValue: string) {\n   this.elementContent = serviceValue || \"No Value\";\n}\n\n@HostBinding(\"textContent\")\nelementContent: string;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/component.ts",
    "content": "import { Component } from \"@angular/core\";\n//import { Model } from \"./repository.model\";\n//import { Product } from \"./product.model\";\n//import { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    //model: Model = new Model();\n\n    //constructor(public model: Model) { }\n\n    //addProduct(p: Product) {\n    //    this.model.saveProduct(p);\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/components/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/components/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/components/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/components/components.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { CommonModule } from \"../common/common.module\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\"\nimport { PaDiscountDisplayComponent } from \"./discountDisplay.component\";\nimport { PaDiscountEditorComponent } from \"./discountEditor.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { ProductTableComponent } from \"./productTable.component\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule, CommonModule],\n    declarations: [PaDiscountDisplayComponent, PaDiscountEditorComponent,\n        ProductFormComponent, ProductTableComponent],\n    exports: [ProductFormComponent, ProductTableComponent]\n})\nexport class ComponentsModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/components/discountDisplay.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"../common/discount.service\";\n\n@Component({\n  selector: \"paDiscountDisplay\",\n  template: `<div class=\"bg-info text-white p-2\">\n                The discount is {{discounter.discount}}\n               </div>`\n})\nexport class PaDiscountDisplayComponent {\n\n  constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/components/discountEditor.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"../common/discount.service\";\n\n@Component({\n    selector: \"paDiscountEditor\",\n    template: `<div class=\"form-group\">\n                   <label>Discount</label>\n                   <input [(ngModel)]=\"discounter.discount\" \n                        class=\"form-control\" type=\"number\" />              \n               </div>`\n})\nexport class PaDiscountEditorComponent {\n\n    constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/components/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover { \n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/components/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" \n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>    \n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" \n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>    \n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n\n<!-- <div class=\"bg-info text-white m-2 p-2\">\n    View Child Value: <span paDisplayValue></span>\n</div>\n<div class=\"bg-info text-white m-2 p-2\">\n    Content Child Value: <ng-content></ng-content>\n</div> -->\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/components/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation, \n    Inject, SkipSelf } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { VALUE_SERVICE } from \"../common/valueDisplay.directive\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\",\n    viewProviders: [{ provide: VALUE_SERVICE, useValue: \"Oranges\" }]\n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    constructor(private model: Model,\n            @Inject(VALUE_SERVICE) @SkipSelf() private serviceValue: string) {\n        console.log(\"Service Value: \" + serviceValue);\n    }\n\n    submitForm(form: any) {\n        this.model.saveProduct(this.newProduct);        \n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/components/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <thead>\n        <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *paFor=\"let item of getProducts(); let i = index\">\n            <td>{{i + 1}}</td>\n            <td>{{item.name}}</td>\n            <td>{{item.category}}</td>\n            <td [pa-price]=\"item.price\" #discount=\"discount\">\n                {{ discount.discountAmount | currency:\"USD\":\"symbol\"}}\n            </td>\n            <td class=\"text-center\">\n                <button class=\"btn btn-danger btn-sm\" \n                        (click)=\"deleteProduct(item.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>    \n</table>\n\n<!-- <paDiscountEditor></paDiscountEditor> -->\n<!-- <paDiscountDisplay></paDiscountDisplay> -->\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/components/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { Product } from \"../model/product.model\";\nimport { DiscountService } from \"../common/discount.service\";\nimport { LogService } from \"../common/log.service\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\",\n    providers:[LogService]    \n\n})\nexport class ProductTableComponent {\n    \n    constructor(private dataModel: Model) { }\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n    dateObject: Date = new Date(2020, 1, 20);\n    dateString: string = \"2020-02-20T00:00:00.000Z\";\n    dateNumber: number = 1582156800000;\n\n    selectMap = {\n        \"Watersports\": \"stay dry\", \n        \"Soccer\": \"score goals\",\n        \"other\": \"have fun\"    \n    }\n\n    numberMap = {\n        \"=1\": \"one product\",\n        \"=2\": \"two products\",\n        \"other\": \"# products\"\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/components/toggleView.component.html",
    "content": "<div class=\"checkbox\"> \n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/components/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\" \n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/model/datasource.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class SimpleDataSource {\n    private data:Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n        new Product(1, \"Kayak\", \"Watersports\", 275),\n        new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n        new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n        new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n        new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/model/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;    \n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),                    \n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c => \n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/model/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { SimpleDataSource } from \"./datasource.model\";\nimport { Model } from \"./repository.model\";\n\n@NgModule({\n    providers: [Model, SimpleDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n        public name?: string,\n        public category?: string,\n        public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\n@Injectable()\nexport class Model {\n    //private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p:Product, id:number) => p.id == id;\n\n    constructor(private dataSource: SimpleDataSource) {\n        //this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n        let p = this.products.shift();\n        this.products.push(new Product(p.id, p.name, p.category, p.price));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n  <div class=\"col-4 p-2\">\n    <paProductForm>\n      <span paDisplayValue></span>\n    </paProductForm>\n  </div>\n  <div class=\"col-8 p-2\">\n    <paProductTable></paProductTable>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2 row\">\n    <div class=\"col-8 p-2\">\n        <paProductTable></paProductTable>\n    </div>\n    <div class=\"col-4 p-2\">\n        <paProductForm></paProductForm>\n    </div>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 21/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'exampleApp';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n//import { AppComponent } from './app.component';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\n\n@NgModule({\n  imports: [BrowserModule, ModelModule, CoreModule, MessageModule],\n  bootstrap: [TableComponent, FormComponent, MessageComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { SharedState } from \"./sharedState.model\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule],\n    declarations: [TableComponent, FormComponent],\n    exports: [ModelModule, TableComponent, FormComponent],\n    providers: [SharedState]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\">Cancel</button>\n</form>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\"\nimport { MODES, SharedState } from \"./sharedState.model\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model,\n            private state: SharedState) { }\n    \n    get editing(): boolean {\n        return this.state.mode == MODES.EDIT;\n    }\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.product = new Product();\n            form.reset();\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/core/sharedState.model.ts",
    "content": "export enum MODES {\n    CREATE, EDIT\n}\n\nexport class SharedState {\n    mode: MODES = MODES.EDIT;\n    id: number;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\" (click)=\"editProduct(item.id)\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<button class=\"btn btn-primary m-1\" (click)=\"createProduct()\">\n    Create New Product\n</button>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState } from \"./sharedState.model\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model, private state: SharedState) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    editProduct(key: number) {\n        this.state.id = key;\n        this.state.mode = MODES.EDIT;\n    }\n\n    createProduct() {\n        this.state.id = undefined;\n        this.state.mode = MODES.CREATE;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService) {\n        messageService.registerMessageHandler(m => this.lastMessage = m);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\n\n@NgModule({\n    imports: [BrowserModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageService {\n    private handler: (m: Message) => void;\n\n    reportMessage(msg: Message) {\n        if (this.handler != null) {\n            this.handler(msg);\n        }\n    }\n\n    registerMessageHandler(handler: (m: Message) => void) {\n        this.handler = handler;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\n\n@NgModule({\n    providers: [Model, StaticDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: StaticDataSource) {\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <paMessages></paMessages>\n  <div class=\"row m-2\">\n    <div class=\"col-8 p-2\">\n      <paTable></paTable>\n    </div>\n    <div class=\"col-4 p-2\">\n      <paForm></paForm>\n    </div>\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 22/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'exampleApp';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n//import { AppComponent } from './app.component';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\n\n@NgModule({\n  imports: [BrowserModule, ModelModule, CoreModule, MessageModule],\n  bootstrap: [TableComponent, FormComponent, MessageComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES } from \"./sharedState.model\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule],\n    declarations: [TableComponent, FormComponent, StatePipe],\n    exports: [ModelModule, TableComponent, FormComponent],\n    providers: [{\n        provide: SHARED_STATE,\n        deps: [MessageService, Model],\n        useFactory: (messageService, model) => {\n            let subject = new Subject<SharedState>();\n            subject.subscribe(m => messageService.reportMessage(\n                    new Message(MODES[m.mode] + (m.id != undefined\n                        ? ` ${model.getProduct(m.id).name}` : \"\")))\n                );\n            return subject;       \n        }\n    }]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n    Last Event: {{ stateEvents | async | formatState }}\t\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\">Cancel</button>\n</form>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observable } from \"rxjs\";\nimport { filter, map, distinctUntilChanged, skipWhile } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public stateEvents: Observable<SharedState>) {\n            stateEvents\n            .pipe(skipWhile(state => state.mode == MODES.EDIT))\n            .pipe(distinctUntilChanged((firstState, secondState) =>\n                firstState.mode == secondState.mode \n                    && firstState.id == secondState.id))\n            .subscribe(update => {\n                this.product = new Product();\n                if (update.id != undefined) {\n                    Object.assign(this.product, this.model.getProduct(update.id));\n                }\n                this.editing = update.mode == MODES.EDIT;     \n            });\n    }\n\n    editing: boolean = false;\n    \n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.product = new Product();\n            form.reset();\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\" (click)=\"editProduct(item.id)\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<button class=\"btn btn-primary m-1\" (click)=\"createProduct()\">\n    Create New Product\n</button>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observer } from \"rxjs\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public observer: Observer<SharedState>) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    editProduct(key: number) {\n        this.observer.next(new SharedState(MODES.EDIT, key));\n    }\n\n    createProduct() {\n        this.observer.next(new SharedState(MODES.CREATE));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\n\n@NgModule({\n    imports: [BrowserModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\n\n@NgModule({\n    providers: [Model, StaticDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: StaticDataSource) {\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <paMessages></paMessages>\n  <div class=\"row m-2\">\n    <div class=\"col-8 p-2\">\n      <paTable></paTable>\n    </div>\n    <div class=\"col-4 p-2\">\n      <paForm></paForm>\n    </div>\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 23/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"    \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'exampleApp';\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n//import { AppComponent } from './app.component';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\n\n@NgModule({\n  imports: [BrowserModule, ModelModule, CoreModule, MessageModule],\n  bootstrap: [TableComponent, FormComponent, MessageComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES } from \"./sharedState.model\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule],\n    declarations: [TableComponent, FormComponent, StatePipe],\n    exports: [ModelModule, TableComponent, FormComponent],\n    providers: [{\n        provide: SHARED_STATE,\n        deps: [MessageService, Model],\n        useFactory: (messageService, model) => {\n            let subject = new Subject<SharedState>();\n            subject.subscribe(m => messageService.reportMessage(\n                    new Message(MODES[m.mode] + (m.id != undefined\n                        ? ` ${model.getProduct(m.id).name}` : \"\")))\n                );\n            return subject;       \n        }\n    }]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n    Last Event: {{ stateEvents | async | formatState }}\t\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\">Cancel</button>\n</form>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observable } from \"rxjs\";\nimport { filter, map, distinctUntilChanged, skipWhile } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public stateEvents: Observable<SharedState>) {\n            stateEvents\n            // .pipe(skipWhile(state => state.mode == MODES.EDIT))\n            // .pipe(distinctUntilChanged((firstState, secondState) =>\n            //     firstState.mode == secondState.mode \n            //         && firstState.id == secondState.id))\n            .subscribe(update => {\n                this.product = new Product();\n                if (update.id != undefined) {\n                    Object.assign(this.product, this.model.getProduct(update.id));\n                }\n                this.editing = update.mode == MODES.EDIT;     \n            });\n    }\n\n    editing: boolean = false;\n    \n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.product = new Product();\n            form.reset();\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\" (click)=\"editProduct(item.id)\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<button class=\"btn btn-primary m-1\" (click)=\"createProduct()\">\n    Create New Product\n</button>\n<button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n    Generate HTTP Error\n</button>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observer } from \"rxjs\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public observer: Observer<SharedState>) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    editProduct(key: number) {\n        this.observer.next(new SharedState(MODES.EDIT, key));\n    }\n\n    createProduct() {\n        this.observer.next(new SharedState(MODES.CREATE));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\n\n@NgModule({\n    imports: [BrowserModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource,\n        { provide: REST_URL, useValue: `http://${location.hostname}:3500/products` }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        }).pipe(catchError((error: Response) => \n             throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <paMessages></paMessages>\n  <div class=\"row m-2\">\n    <div class=\"col-8 p-2\">\n      <paTable></paTable>\n    </div>\n    <div class=\"col-4 p-2\">\n      <paForm></paForm>\n    </div>\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 24/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"    \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { AppComponent } from './app.component';\nimport { routing } from \"./app.routing\";\n\n@NgModule({\n    imports: [BrowserModule, ModelModule, CoreModule, MessageModule, routing],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\n\nconst routes: Routes = [\n    { path: \"form/:mode/:id\", component: FormComponent },\n    { path: \"form/:mode\", component: FormComponent },\n    { path: \"\", component: TableComponent }]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\n//import { SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\n//import { MODES } from \"./sharedState.model\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe],\n    exports: [ModelModule, TableComponent, FormComponent],\n    //providers: [{\n    //    provide: SHARED_STATE,\n    //    deps: [MessageService, Model],\n    //    useFactory: (messageService, model) => {\n    //        return new Subject<SharedState>();\n    //    }\n    //}]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n    <!-- Last Event: {{ stateEvents | async | formatState }} -->\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n            Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model, activeRoute: ActivatedRoute,\n            private router: Router) {\n\n        this.editing = activeRoute.snapshot.params[\"mode\"] == \"edit\";\n        let id = activeRoute.snapshot.params[\"id\"];\n        if (id != null) {\n            let name = activeRoute.snapshot.params[\"name\"];\n            let category = activeRoute.snapshot.params[\"category\"];\n            let price = activeRoute.snapshot.params[\"price\"];\n    \n            if (name != null && category != null && price != null) {\n                this.product.id = id;\n                this.product.name = name;\n                this.product.category = category;\n                this.product.price = Number.parseFloat(price);\n            } else {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n            }\n        }\n    }\n    \n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            //this.product = new Product();\n            //form.reset();\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\"\n                [routerLink]=\"['/form', 'edit', item.id,\n                    {name: item.name, category: item.category, price: item.price}]\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n    Create New Product\n</button>\n<button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n    Generate HTTP Error\n</button>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\n//import { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\n//import { Observer } from \"rxjs\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model,\n        /*@Inject(SHARED_STATE) private observer: Observer<SharedState>*/) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    //editProduct(key: number) {\n    //    this.observer.next(new SharedState(MODES.EDIT, key));\n    //}\n\n    //createProduct() {\n    //    this.observer.next(new SharedState(MODES.CREATE));\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd \n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource,\n        { provide: REST_URL, useValue: `http://${location.hostname}:3500/products` }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        }).pipe(catchError((error: Response) => \n             throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 25/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"    \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { AppComponent } from './app.component';\nimport { routing } from \"./app.routing\";\n\n@NgModule({\n    imports: [BrowserModule, ModelModule, CoreModule, MessageModule, routing],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { NotFoundComponent } from \"./core/notFound.component\";\nimport { ProductCountComponent } from \"./core/productCount.component\";\nimport { CategoryCountComponent } from \"./core/categoryCount.component\";\n\nconst childRoutes: Routes = [\n    { path: \"products\", component: ProductCountComponent },\n    { path: \"categories\", component: CategoryCountComponent },\n    { path: \"\", component: ProductCountComponent }\n];\n\nconst routes: Routes = [\n    { path: \"form/:mode/:id\", component: FormComponent },\n    { path: \"form/:mode\", component: FormComponent },\n    { path: \"does\", redirectTo: \"/form/create\", pathMatch: \"prefix\" },\n    { path: \"table\", component: TableComponent, children: childRoutes },\n    { path: \"table/:category\", component: TableComponent, children: childRoutes },\n    { path: \"\", redirectTo: \"/table\", pathMatch: \"full\" },\n    { path: \"**\", component: NotFoundComponent }\n]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n    selector: \"paCategoryCount\",\n    template: `<div class=\"bg-primary p-2 text-white\">\n                    There are {{count}} categories\n               </div>`\n})\nexport class CategoryCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n\n    constructor(private model: Model,\n        private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef) { }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.count = this.model.getProducts()\n                .map(p => p.category)\n                .filter((category, index, array) => array.indexOf(category) == index)\n                .length;\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n    <!-- Last Event: {{ stateEvents | async | formatState }} -->\n</div>\n\n<div *ngIf=\"editing\" class=\"p-2\">\n    <button class=\"btn btn-secondary m-1\"\n            [routerLink]=\"['/form', 'edit', model.getPreviousProductid(product.id)]\">\n        Previous\n    </button>\n    <button class=\"btn btn-secondary\"\n            [routerLink]=\"['/form', 'edit', model.getNextProductId(product.id)]\">\n        Next\n    </button>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n            Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public  router: Router) {\n\n        activeRoute.params.subscribe(params => {\n            this.editing = params[\"mode\"] == \"edit\";\n            let id = params[\"id\"];\n            if (id != null) {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n            }\n        })        \n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paProductCount\",\n    template: `<div class=\"bg-info p-2\">There are {{count}} products</div>`\n})\nexport class ProductCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n    private category: string;\n\n    constructor(private model: Model,\n            private keyValueDiffers: KeyValueDiffers,\n            private changeDetector: ChangeDetectorRef,\n            activeRoute: ActivatedRoute) {\n\n        activeRoute.pathFromRoot.forEach(route => route.params.subscribe(params => {\n            if (params[\"category\"] != null) {\n                this.category = params[\"category\"];\n                this.updateCount();\n            }\n        }))\n    }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.updateCount();\n        }\n    }\n\n    private updateCount() {\n        this.count = this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category)\n            .length;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/core/table.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col-auto\">\n            <button class=\"btn btn-secondary btn-block\" \n                routerLink=\"/table\" routerLinkActive=\"bg-primary\"\n                [routerLinkActiveOptions]=\"{exact: true}\">\n                All\n            </button>\n            <button *ngFor=\"let category of categories\" \n                    class=\"btn btn-secondary btn-block px-3\"\n                    [routerLink]=\"['/table', category]\" \n                    routerLinkActive=\"bg-primary\">\n                {{category}}\n            </button>\n        </div>\n        <div class=\"col\">\n            <button class=\"btn btn-info mx-1\" routerLink=\"products\">\n                Count Products\n            </button>\n            <button class=\"btn btn-primary mx-1\" routerLink=\"categories\">\n                Count Categories\n            </button>\n            <button class=\"btn btn-secondary mx-1\" routerLink=\"/table\">\n                Count Neither\n            </button>\n            <div class=\"my-2\">\n                <router-outlet></router-outlet>\n            </div>\n            <table class=\"table table-sm table-bordered table-striped\">\n                <tr>\n                    <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n                </tr>\n                <tr *ngFor=\"let item of getProducts()\">\n                    <td>{{item.id}}</td>\n                    <td>{{item.name}}</td>\n                    <td>{{item.category}}</td>\n                    <td>{{item.price | currency:\"USD\" }}</td>\n                    <td class=\"text-center\">\n                        <button class=\"btn btn-danger btn-sm mr-1\" \n                                (click)=\"deleteProduct(item.id)\">\n                            Delete\n                        </button>\n                        <button class=\"btn btn-warning btn-sm\"\n                            [routerLink]=\"['/form', 'edit', item.id]\">\n                            Edit\n                        </button>\n                    </td>\n                </tr>\n            </table>\n        </div>\n    </div>\n</div>\n<div class=\"p-2 text-center\">\n    <button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n        Create New Product\n    </button>\n    <button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n        Generate HTTP Error\n    </button>\n    <button class=\"btn btn-danger m-1\" routerLink=\"/does/not/exist\">\n        Generate Routing Error\n    </button>\n</div>                    \n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n    category: string = null;\n\n    constructor(public model: Model, activeRoute: ActivatedRoute) {\n        activeRoute.params.subscribe(params => {\n            this.category = params[\"category\"] || null;\n        })\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category);\n    }\n\n    get categories(): string[] {\n        return this.model.getProducts()\n            .map(p => p.category)\n            .filter((category, index, array) => array.indexOf(category) == index);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\" \n     class=\"bg-info text-white p-2 text-center\" \n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4> \n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd \n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource,\n        { provide: REST_URL, useValue: `http://${location.hostname}:3500/products` }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2 \n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0 \n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    } \n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        }).pipe(catchError((error: Response) => \n             throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 26/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"    \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { routing } from \"./app.routing\";\nimport { AppComponent } from \"./app.component\";\nimport { TermsGuard } from \"./terms.guard\"\nimport { LoadGuard } from \"./load.guard\";\n\n@NgModule({\n    imports: [BrowserModule, CoreModule, MessageModule, routing],\n    declarations: [AppComponent],\n    providers: [TermsGuard, LoadGuard],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { NotFoundComponent } from \"./core/notFound.component\";\nimport { ProductCountComponent } from \"./core/productCount.component\";\nimport { CategoryCountComponent } from \"./core/categoryCount.component\";\nimport { ModelResolver } from \"./model/model.resolver\";\nimport { TermsGuard } from \"./terms.guard\";\nimport { UnsavedGuard } from \"./core/unsaved.guard\";\nimport { LoadGuard } from \"./load.guard\";\n\nconst childRoutes: Routes = [\n    {\n        path: \"\",\n        canActivateChild: [TermsGuard],\n        children: [{ path: \"products\", component: ProductCountComponent },\n                   { path: \"categories\", component: CategoryCountComponent },\n                   { path: \"\", component: ProductCountComponent }],\n        resolve: { model: ModelResolver }\n    }\n];\n\nconst routes: Routes = [\n    {\n        path: \"ondemand\",\n        loadChildren: () => import(\"./ondemand/ondemand.module\")\n                                .then(m => m.OndemandModule),\n        canLoad: [LoadGuard]                                \n    },\n    {\n        path: \"form/:mode/:id\", component: FormComponent,\n        resolve: { model: ModelResolver },\n        canDeactivate: [UnsavedGuard]\n    },\n    {\n        path: \"form/:mode\", component: FormComponent,\n        resolve: { model: ModelResolver },\n        canActivate: [TermsGuard]\n    },\n    { path: \"table\", component: TableComponent, children: childRoutes },\n    { path: \"table/:category\", component: TableComponent, children: childRoutes },\n    { path: \"\", redirectTo: \"/table\", pathMatch: \"full\" },\n    { path: \"**\", component: NotFoundComponent }\n]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n    selector: \"paCategoryCount\",\n    template: `<div class=\"bg-primary p-2 text-white\">\n                    There are {{count}} categories\n               </div>`\n})\nexport class CategoryCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n\n    constructor(private model: Model,\n        private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef) { }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.count = this.model.getProducts()\n                .map(p => p.category)\n                .filter((category, index, array) => array.indexOf(category) == index)\n                .length;\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\nimport { UnsavedGuard } from \"./unsaved.guard\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    providers: [UnsavedGuard],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n\n<div *ngIf=\"editing\" class=\"p-2\">\n    <button class=\"btn btn-secondary m-1\"\n            [routerLink]=\"['/form', 'edit', model.getPreviousProductid(product.id)]\">\n        Previous\n    </button>\n    <button class=\"btn btn-secondary\"\n            [routerLink]=\"['/form', 'edit', model.getNextProductId(product.id)]\">\n        Next\n    </button>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"button\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n            Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n    originalProduct = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public router: Router) {\n\n        activeRoute.params.subscribe(params => {\n            this.editing = params[\"mode\"] == \"edit\";\n            let id = params[\"id\"];\n            if (id != null) {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n                Object.assign(this.originalProduct, this.product);\n            }\n        })\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.originalProduct = this.product;\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    //resetForm() {\n    //    this.product = new Product();\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paProductCount\",\n    template: `<div class=\"bg-info p-2\">There are {{count}} products</div>`\n})\nexport class ProductCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n    private category: string;\n\n    constructor(private model: Model,\n            private keyValueDiffers: KeyValueDiffers,\n            private changeDetector: ChangeDetectorRef,\n            activeRoute: ActivatedRoute) {\n\n        activeRoute.pathFromRoot.forEach(route => route.params.subscribe(params => {\n            if (params[\"category\"] != null) {\n                this.category = params[\"category\"];\n                this.updateCount();\n            }\n        }))\n    }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.updateCount();\n        }\n    }\n\n    private updateCount() {\n        this.count = this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category)\n            .length;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/core/table.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col-auto\">\n            <button class=\"btn btn-secondary btn-block\" \n                routerLink=\"/table\" routerLinkActive=\"bg-primary\"\n                [routerLinkActiveOptions]=\"{exact: true}\">\n                All\n            </button>\n            <button *ngFor=\"let category of categories\" \n                    class=\"btn btn-secondary btn-block px-3\"\n                    [routerLink]=\"['/table', category]\" \n                    routerLinkActive=\"bg-primary\">\n                {{category}}\n            </button>\n        </div>\n        <div class=\"col\">\n            <button class=\"btn btn-info mx-1\" routerLink=\"products\">\n                Count Products\n            </button>\n            <button class=\"btn btn-primary mx-1\" routerLink=\"categories\">\n                Count Categories\n            </button>\n            <button class=\"btn btn-secondary mx-1\" routerLink=\"/table\">\n                Count Neither\n            </button>\n            <div class=\"my-2\">\n                <router-outlet></router-outlet>\n            </div>\n            <table class=\"table table-sm table-bordered table-striped\">\n                <tr>\n                    <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n                </tr>\n                <tr *ngFor=\"let item of getProducts()\">\n                    <td>{{item.id}}</td>\n                    <td>{{item.name}}</td>\n                    <td>{{item.category}}</td>\n                    <td>{{item.price | currency:\"USD\" }}</td>\n                    <td class=\"text-center\">\n                        <button class=\"btn btn-danger btn-sm mr-1\" \n                                (click)=\"deleteProduct(item.id)\">\n                            Delete\n                        </button>\n                        <button class=\"btn btn-warning btn-sm\"\n                            [routerLink]=\"['/form', 'edit', item.id]\">\n                            Edit\n                        </button>\n                    </td>\n                </tr>\n            </table>\n        </div>\n    </div>\n</div>\n<div class=\"p-2 text-center\">\n    <button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n        Create New Product\n    </button>\n    <button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n        Generate HTTP Error\n    </button>\n    <button class=\"btn btn-danger m-1\" routerLink=\"/does/not/exist\">\n        Generate Routing Error\n    </button>\n    <button class=\"btn btn-danger\" routerLink=\"/ondemand\">\n        Load Module\n    </button>\n</div>                    \n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n    category: string = null;\n\n    constructor(public model: Model, activeRoute: ActivatedRoute) {\n        activeRoute.params.subscribe(params => {\n            this.category = params[\"category\"] || null;\n        })\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category);\n    }\n\n    get categories(): string[] {\n        return this.model.getProducts()\n            .map(p => p.category)\n            .filter((category, index, array) => array.indexOf(category) == index);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/core/unsaved.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { Observable, Subject } from \"rxjs\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { FormComponent } from \"./form.component\";\n\n@Injectable()\nexport class UnsavedGuard {\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canDeactivate(component: FormComponent, route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<boolean> | boolean {\n\n        if (component.editing) {\n            if ([\"name\", \"category\", \"price\"]\n                .some(prop => component.product[prop]\n                    != component.originalProduct[prop])) {\n                let subject = new Subject<boolean>();\n\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => {\n                        subject.next(true);\n                        subject.complete();\n                    }],\n                    [\"No\", () => {\n                        this.router.navigateByUrl(this.router.url);\n                        subject.next(false);\n                        subject.complete();\n                    }]\n                ];\n                this.messages.reportMessage(new Message(\"Discard Changes?\",\n                    true, responses));\n                return subject;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/load.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Route, Router } from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class LoadGuard {\n    private loaded: boolean = false;\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canLoad(route: Route): Promise<boolean> | boolean {\n\n        return this.loaded || new Promise<boolean>((resolve, reject) => {\n            let responses: [string, (string) => void] [] = [\n                [\"Yes\", () => {\n                    this.loaded = true;\n                    resolve(true);\n                }],\n                [\"No\", () => {\n                    this.router.navigateByUrl(this.router.url);\n                    resolve(false);\n                }]\n            ];\n\n            this.messages.reportMessage(\n                new Message(\"Do you want to load the module?\",\n                    false, responses));\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n    <h4>{{lastMessage.text}}</h4>\n</div>\n<div class=\"text-center my-2\">\n    <button *ngFor=\"let resp of lastMessage?.responses; let i = index\"\n            (click)=\"resp[1](resp[0])\"\n            class=\"btn btn-primary m-2\" [class.btn-secondary]=\"i > 0\">\n        {{resp[0]}}\n    </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd \n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false, \n        public responses?: [string, (string) => void][]) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\nimport { ModelResolver } from \"./model.resolver\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource, ModelResolver,\n        { provide: REST_URL, useValue: \"http://localhost:3500/products\" }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/model/model.resolver.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { Model } from \"./repository.model\"\nimport { RestDataSource } from \"./rest.datasource\";\nimport { Product } from \"./product.model\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\n\n@Injectable()\nexport class ModelResolver {\n\n    constructor(\n        private model: Model,\n        private dataSource: RestDataSource,\n        private messages: MessageService) { }\n\n    resolve(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<Product[]> {\n\n        if (this.model.getProducts().length == 0) {\n            this.messages.reportMessage(new Message(\"Loading data...\"));\n            return this.dataSource.getData();\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2 \n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0 \n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    } \n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError, delay } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        })\n        //.pipe(delay(5000))\n        .pipe(catchError((error: Response) => \n            throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/ondemand/first.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"first\",\n    template: `<div class=\"bg-primary text-white p-2\">First Component</div>`\n})\nexport class FirstComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/ondemand/ondemand.component.html",
    "content": "<div class=\"bg-primary text-white p-2\">This is the ondemand component</div>\n<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col-12 p-2\">\n            <router-outlet></router-outlet>\n        </div>\n    </div>\n    <div class=\"row\">\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"left\"></router-outlet>\n        </div>\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"right\"></router-outlet>\n        </div>\n    </div>\n</div>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand\">Normal</button>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand/swap\">Swap</button>\n<button class=\"btn btn-primary m-2\" routerLink=\"/\">Back</button>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/ondemand/ondemand.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"ondemand\",\n    templateUrl: \"ondemand.component.html\"\n})\nexport class OndemandComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/ondemand/ondemand.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OndemandComponent } from \"./ondemand.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { FirstComponent } from \"./first.component\";\nimport { SecondComponent } from \"./second.component\";\n\nlet routing = RouterModule.forChild([\n    {\n        path: \"\",\n        component: OndemandComponent,\n        children: [\n            {\n                path: \"\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: FirstComponent, },\n                    { outlet: \"left\", path: \"\", component: SecondComponent, },\n                    { outlet: \"right\", path: \"\", component: SecondComponent, },\n                ]\n            },\n            {\n                path: \"swap\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: SecondComponent, },\n                    { outlet: \"left\", path: \"\", component: FirstComponent, },\n                    { outlet: \"right\", path: \"\", component: FirstComponent, },\n                ]\n            },\n        ]\n    },\n]);\n\n@NgModule({\n    imports: [CommonModule, routing],\n    declarations: [OndemandComponent, FirstComponent, SecondComponent],\n    exports: [OndemandComponent]\n})\nexport class OndemandModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/ondemand/second.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"second\",\n    template: `<div class=\"bg-info text-white p-2\">Second Component</div>`\n})\nexport class SecondComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/app/terms.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class TermsGuard {\n\n    constructor(private messages: MessageService,\n        private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.params[\"mode\"] == \"create\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No\", () => resolve(false)]\n                ];\n                this.messages.reportMessage(\n                    new Message(\"Do you accept the terms & conditions?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n\n    canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.url.length > 0\n            && route.url[route.url.length - 1].path == \"categories\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No \", () => resolve(false)]\n                ];\n\n                this.messages.reportMessage(\n                    new Message(\"Do you want to see the categories component?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 27/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"    \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { routing } from \"./app.routing\";\nimport { AppComponent } from \"./app.component\";\nimport { TermsGuard } from \"./terms.guard\"\nimport { LoadGuard } from \"./load.guard\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\n\n@NgModule({\n    imports: [BrowserModule, CoreModule, MessageModule, routing, \n              BrowserAnimationsModule],\n    declarations: [AppComponent],\n    providers: [TermsGuard, LoadGuard],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { NotFoundComponent } from \"./core/notFound.component\";\nimport { ProductCountComponent } from \"./core/productCount.component\";\nimport { CategoryCountComponent } from \"./core/categoryCount.component\";\nimport { ModelResolver } from \"./model/model.resolver\";\nimport { TermsGuard } from \"./terms.guard\";\nimport { UnsavedGuard } from \"./core/unsaved.guard\";\nimport { LoadGuard } from \"./load.guard\";\n\nconst routes: Routes = [\n    {\n        path: \"form/:mode/:id\", component: FormComponent,\n        canDeactivate: [UnsavedGuard]\n    },\n    { path: \"form/:mode\", component: FormComponent, canActivate: [TermsGuard] },\n    { path: \"table\", component: TableComponent },\n    { path: \"table/:category\", component: TableComponent },\n    { path: \"\", redirectTo: \"/table\", pathMatch: \"full\" },\n    { path: \"**\", component: NotFoundComponent }\n]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/core/animationUtils.ts",
    "content": "export function getStylesFromClasses(names: string | string[], \n    elementType: string = \"div\") : { [key: string]: string | number } {\n\nlet elem = document.createElement(elementType);\n(typeof names == \"string\" ? [names] : names).forEach(c => elem.classList.add(c));\n\nlet result = {};\n\nfor (let i = 0; i < document.styleSheets.length; i++) {\n    let sheet = document.styleSheets[i] as CSSStyleSheet;\n    let rules = sheet.rules || sheet.cssRules;\n    for (let j = 0; j < rules.length; j++) {\n        if (rules[j].type == CSSRule.STYLE_RULE) {\n            let styleRule = rules[j] as CSSStyleRule;\n            if (elem.matches(styleRule.selectorText)) {\n                for (let k = 0; k < styleRule.style.length; k++) {\n                    result[styleRule.style[k]] =\n                        styleRule.style[styleRule.style[k]];\n                }\n            } \n        }\n    }\n}\nreturn result;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n    selector: \"paCategoryCount\",\n    template: `<div class=\"bg-primary p-2 text-white\">\n                    There are {{count}} categories\n               </div>`\n})\nexport class CategoryCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n\n    constructor(private model: Model,\n        private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef) { }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.count = this.model.getProducts()\n                .map(p => p.category)\n                .filter((category, index, array) => array.indexOf(category) == index)\n                .length;\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\nimport { UnsavedGuard } from \"./unsaved.guard\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    providers: [UnsavedGuard],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n\n<div *ngIf=\"editing\" class=\"p-2\">\n    <button class=\"btn btn-secondary m-1\"\n            [routerLink]=\"['/form', 'edit', model.getPreviousProductid(product.id)]\">\n        Previous\n    </button>\n    <button class=\"btn btn-secondary\"\n            [routerLink]=\"['/form', 'edit', model.getNextProductId(product.id)]\">\n        Next\n    </button>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"button\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n            Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n    originalProduct = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public router: Router) {\n\n        activeRoute.params.subscribe(params => {\n            this.editing = params[\"mode\"] == \"edit\";\n            let id = params[\"id\"];\n            if (id != null) {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n                Object.assign(this.originalProduct, this.product);\n            }\n        })\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.originalProduct = this.product;\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    //resetForm() {\n    //    this.product = new Product();\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paProductCount\",\n    template: `<div class=\"bg-info p-2\">There are {{count}} products</div>`\n})\nexport class ProductCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n    private category: string;\n\n    constructor(private model: Model,\n            private keyValueDiffers: KeyValueDiffers,\n            private changeDetector: ChangeDetectorRef,\n            activeRoute: ActivatedRoute) {\n\n        activeRoute.pathFromRoot.forEach(route => route.params.subscribe(params => {\n            if (params[\"category\"] != null) {\n                this.category = params[\"category\"];\n                this.updateCount();\n            }\n        }))\n    }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.updateCount();\n        }\n    }\n\n    private updateCount() {\n        this.count = this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category)\n            .length;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/core/table.animations.ts",
    "content": "import { trigger, style, state, transition, animate, group } \n    from \"@angular/animations\";\nimport { getStylesFromClasses } from \"./animationUtils\";\n\nexport const HighlightTrigger = trigger(\"rowHighlight\", [\n    state(\"selected\", style(getStylesFromClasses([\"bg-success\", \"h2\"]))),\n    state(\"notselected\", style(getStylesFromClasses(\"bg-info\"))),\n    state(\"void\", style({\n        transform: \"translateX(-50%)\"\n    })),\n    transition(\"* => notselected\", animate(\"200ms\")),\n    transition(\"* => selected\", animate(\"400ms 200ms ease-in\")),\n    transition(\"void => *\", animate(\"500ms\"))\n]);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/core/table.component.html",
    "content": "<div class=\"form-group bg-info text-white p-2\">\n    <label>Category</label>\n    <select [(ngModel)]=\"highlightCategory\" class=\"form-control\">\n        <option value=\"\">None</option>\n        <option *ngFor=\"let category of categories\">\n            {{category}}\n        </option>\n    </select>\n</div>\n<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\" \n            [@rowHighlight]=\"getRowState(item.category)\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\"\n                [routerLink]=\"['/form', 'edit', item.id]\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<div class=\"p-2 text-center\">\n    <button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n        Create New Product\n    </button>\n</div>                    \n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { HighlightTrigger } from \"./table.animations\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\",\n    animations: [HighlightTrigger]\n})\nexport class TableComponent {\n    category: string = null;\n\n    constructor(private model: Model, activeRoute: ActivatedRoute) {\n        activeRoute.params.subscribe(params => {\n            this.category = params[\"category\"] || null;\n        })\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category);\n    }\n\n    get categories(): string[] {\n        return this.model.getProducts()\n            .map(p => p.category)\n            .filter((category, index, array) => array.indexOf(category) == index);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    highlightCategory: string = \"\";\n\n    getRowState(category: string): string {\n        return this.highlightCategory == \"\" ? \"\" :\n            this.highlightCategory == category ? \"selected\" : \"notselected\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/core/unsaved.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { Observable, Subject } from \"rxjs\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { FormComponent } from \"./form.component\";\n\n@Injectable()\nexport class UnsavedGuard {\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canDeactivate(component: FormComponent, route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<boolean> | boolean {\n\n        if (component.editing) {\n            if ([\"name\", \"category\", \"price\"]\n                .some(prop => component.product[prop]\n                    != component.originalProduct[prop])) {\n                let subject = new Subject<boolean>();\n\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => {\n                        subject.next(true);\n                        subject.complete();\n                    }],\n                    [\"No\", () => {\n                        this.router.navigateByUrl(this.router.url);\n                        subject.next(false);\n                        subject.complete();\n                    }]\n                ];\n                this.messages.reportMessage(new Message(\"Discard Changes?\",\n                    true, responses));\n                return subject;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/load.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Route, Router } from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class LoadGuard {\n    private loaded: boolean = false;\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canLoad(route: Route): Promise<boolean> | boolean {\n\n        return this.loaded || new Promise<boolean>((resolve, reject) => {\n            let responses: [string, (string) => void] [] = [\n                [\"Yes\", () => {\n                    this.loaded = true;\n                    resolve(true);\n                }],\n                [\"No\", () => {\n                    this.router.navigateByUrl(this.router.url);\n                    resolve(false);\n                }]\n            ];\n\n            this.messages.reportMessage(\n                new Message(\"Do you want to load the module?\",\n                    false, responses));\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n    <h4>{{lastMessage.text}}</h4>\n</div>\n<div class=\"text-center my-2\">\n    <button *ngFor=\"let resp of lastMessage?.responses; let i = index\"\n            (click)=\"resp[1](resp[0])\"\n            class=\"btn btn-primary m-2\" [class.btn-secondary]=\"i > 0\">\n        {{resp[0]}}\n    </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd \n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false, \n        public responses?: [string, (string) => void][]) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\nimport { ModelResolver } from \"./model.resolver\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource, ModelResolver,\n        { provide: REST_URL, useValue: \"http://localhost:3500/products\" }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/model/model.resolver.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { Model } from \"./repository.model\"\nimport { RestDataSource } from \"./rest.datasource\";\nimport { Product } from \"./product.model\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\n\n@Injectable()\nexport class ModelResolver {\n\n    constructor(\n        private model: Model,\n        private dataSource: RestDataSource,\n        private messages: MessageService) { }\n\n    resolve(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<Product[]> {\n\n        if (this.model.getProducts().length == 0) {\n            this.messages.reportMessage(new Message(\"Loading data...\"));\n            return this.dataSource.getData();\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2 \n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0 \n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    } \n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError, delay } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        })\n        //.pipe(delay(5000))\n        .pipe(catchError((error: Response) => \n            throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/ondemand/first.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"first\",\n    template: `<div class=\"bg-primary text-white p-2\">First Component</div>`\n})\nexport class FirstComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/ondemand/ondemand.component.html",
    "content": "<div class=\"bg-primary text-white p-2\">This is the ondemand component</div>\n<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col-12 p-2\">\n            <router-outlet></router-outlet>\n        </div>\n    </div>\n    <div class=\"row\">\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"left\"></router-outlet>\n        </div>\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"right\"></router-outlet>\n        </div>\n    </div>\n</div>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand\">Normal</button>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand/swap\">Swap</button>\n<button class=\"btn btn-primary m-2\" routerLink=\"/\">Back</button>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/ondemand/ondemand.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"ondemand\",\n    templateUrl: \"ondemand.component.html\"\n})\nexport class OndemandComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/ondemand/ondemand.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OndemandComponent } from \"./ondemand.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { FirstComponent } from \"./first.component\";\nimport { SecondComponent } from \"./second.component\";\n\nlet routing = RouterModule.forChild([\n    {\n        path: \"\",\n        component: OndemandComponent,\n        children: [\n            {\n                path: \"\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: FirstComponent, },\n                    { outlet: \"left\", path: \"\", component: SecondComponent, },\n                    { outlet: \"right\", path: \"\", component: SecondComponent, },\n                ]\n            },\n            {\n                path: \"swap\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: SecondComponent, },\n                    { outlet: \"left\", path: \"\", component: FirstComponent, },\n                    { outlet: \"right\", path: \"\", component: FirstComponent, },\n                ]\n            },\n        ]\n    },\n]);\n\n@NgModule({\n    imports: [CommonModule, routing],\n    declarations: [OndemandComponent, FirstComponent, SecondComponent],\n    exports: [OndemandComponent]\n})\nexport class OndemandModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/ondemand/second.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"second\",\n    template: `<div class=\"bg-info text-white p-2\">Second Component</div>`\n})\nexport class SecondComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/app/terms.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class TermsGuard {\n\n    constructor(private messages: MessageService,\n        private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.params[\"mode\"] == \"create\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No\", () => resolve(false)]\n                ];\n                this.messages.reportMessage(\n                    new Message(\"Do you accept the terms & conditions?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n\n    canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.url.length > 0\n            && route.url[route.url.length - 1].path == \"categories\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No \", () => resolve(false)]\n                ];\n\n                this.messages.reportMessage(\n                    new Message(\"Do you want to see the categories component?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 28/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major version\nlast 2 iOS major versions\nFirefox ESR\nnot IE 9-11 # For IE 9-11 support, remove 'not'.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only exists if Bazel was run\n/bazel-out\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events*.json\nspeed-measure-plugin*.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n.history/*\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"              \n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }},\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl) as Promise<unknown>;\n  }\n\n  getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText() as Promise<string>;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"    \n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~10.0.0\",\n    \"@angular/common\": \"~10.0.0\",\n    \"@angular/compiler\": \"~10.0.0\",\n    \"@angular/core\": \"~10.0.0\",\n    \"@angular/forms\": \"~10.0.0\",\n    \"@angular/platform-browser\": \"~10.0.0\",\n    \"@angular/platform-browser-dynamic\": \"~10.0.0\",\n    \"@angular/router\": \"~10.0.0\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.5.5\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.3\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1000.0\",\n    \"@angular/cli\": \"~10.0.0\",\n    \"@angular/compiler-cli\": \"~10.0.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"@types/jasmine\": \"~3.5.0\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"codelyzer\": \"^6.0.0-next.1\",\n    \"jasmine-core\": \"~3.5.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.0.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage-istanbul-reporter\": \"~3.0.2\",\n    \"karma-jasmine\": \"~3.3.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~3.9.5\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/restData.js",
    "content": "module.exports = function () {\n    var data = {\n        products: [\n            { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n            { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n            { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n            { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n            { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n            { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n            { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n            { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n            { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n        ]\n    }\n    return data\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { routing } from \"./app.routing\";\nimport { AppComponent } from \"./app.component\";\nimport { TermsGuard } from \"./terms.guard\"\nimport { LoadGuard } from \"./load.guard\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\n\n@NgModule({\n    imports: [BrowserModule, CoreModule, MessageModule, routing, \n              BrowserAnimationsModule],\n    declarations: [AppComponent],\n    providers: [TermsGuard, LoadGuard],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { NotFoundComponent } from \"./core/notFound.component\";\nimport { ProductCountComponent } from \"./core/productCount.component\";\nimport { CategoryCountComponent } from \"./core/categoryCount.component\";\nimport { ModelResolver } from \"./model/model.resolver\";\nimport { TermsGuard } from \"./terms.guard\";\nimport { UnsavedGuard } from \"./core/unsaved.guard\";\nimport { LoadGuard } from \"./load.guard\";\n\nconst routes: Routes = [\n    {\n        path: \"ondemand\",\n        loadChildren: () => import(\"./ondemand/ondemand.module\")\n                                .then(m => m.OndemandModule)\n    },\n    { path: \"\", redirectTo: \"/ondemand\", pathMatch: \"full\" }\n]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/core/animationUtils.ts",
    "content": "export function getStylesFromClasses(names: string | string[], \n    elementType: string = \"div\") : { [key: string]: string | number } {\n\nlet elem = document.createElement(elementType);\n(typeof names == \"string\" ? [names] : names).forEach(c => elem.classList.add(c));\n\nlet result = {};\n\nfor (let i = 0; i < document.styleSheets.length; i++) {\n    let sheet = document.styleSheets[i] as CSSStyleSheet;\n    let rules = sheet.rules || sheet.cssRules;\n    for (let j = 0; j < rules.length; j++) {\n        if (rules[j].type == CSSRule.STYLE_RULE) {\n            let styleRule = rules[j] as CSSStyleRule;\n            if (elem.matches(styleRule.selectorText)) {\n                for (let k = 0; k < styleRule.style.length; k++) {\n                    result[styleRule.style[k]] =\n                        styleRule.style[styleRule.style[k]];\n                }\n            } \n        }\n    }\n}\nreturn result;\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n    selector: \"paCategoryCount\",\n    template: `<div class=\"bg-primary p-2 text-white\">\n                    There are {{count}} categories\n               </div>`\n})\nexport class CategoryCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n\n    constructor(private model: Model,\n        private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef) { }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.count = this.model.getProducts()\n                .map(p => p.category)\n                .filter((category, index, array) => array.indexOf(category) == index)\n                .length;\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\nimport { UnsavedGuard } from \"./unsaved.guard\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    providers: [UnsavedGuard],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n\n<div *ngIf=\"editing\" class=\"p-2\">\n    <button class=\"btn btn-secondary m-1\"\n            [routerLink]=\"['/form', 'edit', model.getPreviousProductid(product.id)]\">\n        Previous\n    </button>\n    <button class=\"btn btn-secondary\"\n            [routerLink]=\"['/form', 'edit', model.getNextProductId(product.id)]\">\n        Next\n    </button>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" \n               [(ngModel)]=\"product.name\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" \n               [(ngModel)]=\"product.category\" required />\n    </div>\n\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" \n               [(ngModel)]=\"product.price\" \n               required pattern=\"^[0-9\\.]+$\" />\n    </div>\n\n    <button type=\"submit\" class=\"btn btn-primary m-1\" \n            [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"button\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n            Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n    originalProduct = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public router: Router) {\n\n        activeRoute.params.subscribe(params => {\n            this.editing = params[\"mode\"] == \"edit\";\n            let id = params[\"id\"];\n            if (id != null) {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n                Object.assign(this.originalProduct, this.product);\n            }\n        })\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.originalProduct = this.product;\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    //resetForm() {\n    //    this.product = new Product();\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n    Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paProductCount\",\n    template: `<div class=\"bg-info p-2\">There are {{count}} products</div>`\n})\nexport class ProductCountComponent {\n    private differ: KeyValueDiffer<any, any>;\n    count: number = 0;\n    private category: string;\n\n    constructor(private model: Model,\n            private keyValueDiffers: KeyValueDiffers,\n            private changeDetector: ChangeDetectorRef,\n            activeRoute: ActivatedRoute) {\n\n        activeRoute.pathFromRoot.forEach(route => route.params.subscribe(params => {\n            if (params[\"category\"] != null) {\n                this.category = params[\"category\"];\n                this.updateCount();\n            }\n        }))\n    }\n\n    ngOnInit() {\n        this.differ = this.keyValueDiffers\n            .find(this.model.getProducts())\n            .create();\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.model.getProducts()) != null) {\n            this.updateCount();\n        }\n    }\n\n    private updateCount() {\n        this.count = this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category)\n            .length;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/core/table.animations.ts",
    "content": "import { trigger, style, state, transition, animate, group } \n    from \"@angular/animations\";\nimport { getStylesFromClasses } from \"./animationUtils\";\n\nexport const HighlightTrigger = trigger(\"rowHighlight\", [\n    state(\"selected\", style(getStylesFromClasses([\"bg-success\", \"h2\"]))),\n    state(\"notselected\", style(getStylesFromClasses(\"bg-info\"))),\n    state(\"void\", style({\n        transform: \"translateX(-50%)\"\n    })),\n    transition(\"* => notselected\", animate(\"200ms\")),\n    transition(\"* => selected\", animate(\"400ms 200ms ease-in\")),\n    transition(\"void => *\", animate(\"500ms\"))\n]);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/core/table.component.html",
    "content": "<div class=\"form-group bg-info text-white p-2\">\n    <label>Category</label>\n    <select [(ngModel)]=\"highlightCategory\" class=\"form-control\">\n        <option value=\"\">None</option>\n        <option *ngFor=\"let category of categories\">\n            {{category}}\n        </option>\n    </select>\n</div>\n<table class=\"table table-sm table-bordered table-striped\">\n    <tr>\n        <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n    </tr>\n    <tr *ngFor=\"let item of getProducts()\" \n            [@rowHighlight]=\"getRowState(item.category)\">\n        <td>{{item.id}}</td>\n        <td>{{item.name}}</td>\n        <td>{{item.category}}</td>\n        <td>{{item.price | currency:\"USD\" }}</td>\n        <td class=\"text-center\">\n            <button class=\"btn btn-danger btn-sm mr-1\" \n                    (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n            <button class=\"btn btn-warning btn-sm\"\n                [routerLink]=\"['/form', 'edit', item.id]\">\n                Edit\n            </button>\n        </td>\n    </tr>\n</table>\n<div class=\"p-2 text-center\">\n    <button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n        Create New Product\n    </button>\n</div>                    \n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { HighlightTrigger } from \"./table.animations\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\",\n    animations: [HighlightTrigger]\n})\nexport class TableComponent {\n    category: string = null;\n\n    constructor(private model: Model, activeRoute: ActivatedRoute) {\n        activeRoute.params.subscribe(params => {\n            this.category = params[\"category\"] || null;\n        })\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category);\n    }\n\n    get categories(): string[] {\n        return this.model.getProducts()\n            .map(p => p.category)\n            .filter((category, index, array) => array.indexOf(category) == index);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    highlightCategory: string = \"\";\n\n    getRowState(category: string): string {\n        return this.highlightCategory == \"\" ? \"\" :\n            this.highlightCategory == category ? \"selected\" : \"notselected\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/core/unsaved.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { Observable, Subject } from \"rxjs\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { FormComponent } from \"./form.component\";\n\n@Injectable()\nexport class UnsavedGuard {\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canDeactivate(component: FormComponent, route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<boolean> | boolean {\n\n        if (component.editing) {\n            if ([\"name\", \"category\", \"price\"]\n                .some(prop => component.product[prop]\n                    != component.originalProduct[prop])) {\n                let subject = new Subject<boolean>();\n\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => {\n                        subject.next(true);\n                        subject.complete();\n                    }],\n                    [\"No\", () => {\n                        this.router.navigateByUrl(this.router.url);\n                        subject.next(false);\n                        subject.complete();\n                    }]\n                ];\n                this.messages.reportMessage(new Message(\"Discard Changes?\",\n                    true, responses));\n                return subject;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/load.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Route, Router } from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class LoadGuard {\n    private loaded: boolean = false;\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canLoad(route: Route): Promise<boolean> | boolean {\n\n        return this.loaded || new Promise<boolean>((resolve, reject) => {\n            let responses: [string, (string) => void] [] = [\n                [\"Yes\", () => {\n                    this.loaded = true;\n                    resolve(true);\n                }],\n                [\"No\", () => {\n                    this.router.navigateByUrl(this.router.url);\n                    resolve(false);\n                }]\n            ];\n\n            this.messages.reportMessage(\n                new Message(\"Do you want to load the module?\",\n                    false, responses));\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n    <h4>{{lastMessage.text}}</h4>\n</div>\n<div class=\"text-center my-2\">\n    <button *ngFor=\"let resp of lastMessage?.responses; let i = index\"\n            (click)=\"resp[1](resp[0])\"\n            class=\"btn btn-primary m-2\" [class.btn-secondary]=\"i > 0\">\n        {{resp[0]}}\n    </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd \n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n    constructor(public text: string,\n        public error: boolean = false, \n        public responses?: [string, (string) => void][]) { }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\nimport { ModelResolver } from \"./model.resolver\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource, ModelResolver,\n        { provide: REST_URL, useValue: \"http://localhost:3500/products\" }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/model/model.resolver.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { Model } from \"./repository.model\"\nimport { RestDataSource } from \"./rest.datasource\";\nimport { Product } from \"./product.model\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\n\n@Injectable()\nexport class ModelResolver {\n\n    constructor(\n        private model: Model,\n        private dataSource: RestDataSource,\n        private messages: MessageService) { }\n\n    resolve(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<Product[]> {\n\n        if (this.model.getProducts().length == 0) {\n            this.messages.reportMessage(new Message(\"Loading data...\"));\n            return this.dataSource.getData();\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n    constructor(public id?: number,\n                public name?: string,\n                public category?: string,\n                public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2 \n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0 \n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    } \n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError, delay } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        })\n        //.pipe(delay(5000))\n        .pipe(catchError((error: Response) => \n            throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/ondemand/attr.directive.ts",
    "content": "import {\n    Directive, ElementRef, Attribute, Input, SimpleChange\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n    constructor(private element: ElementRef) { }\n\n    @Input(\"pa-attr\")\n    bgClass: string;\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        let change = changes[\"bgClass\"];\n        let classList = this.element.nativeElement.classList;\n        if (!change.isFirstChange() && classList.contains(change.previousValue)) {\n            classList.remove(change.previousValue);\n        }\n        if (!classList.contains(change.currentValue)) {\n            classList.add(change.currentValue);\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/ondemand/first.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-success]=\"highlighted\">\n    There are\n    <span class=\"strong\"> {{getProducts().length}} </span>\n    products\n</div>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/ondemand/first.component.ts",
    "content": "import { Component, HostListener, Input } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RestDataSource } from \"../model/rest.datasource\";\n\n@Component({\n    selector: \"first\",\n    templateUrl: \"first.component.html\"\n})\nexport class FirstComponent {\n    _category: string = \"Soccer\";\n    _products: Product[] = [];\n    highlighted: boolean = false;\n\n    constructor(public datasource: RestDataSource) {}\n\n    ngOnInit() {\n        this.updateData();\n    }\n\n    getProducts(): Product[] {\n        return this._products;\n    }\n\n    set category(newValue: string) {\n        this._category;\n        this.updateData();\n    }\n\n    updateData() {\n        this.datasource.getData()\n            .subscribe(data => this._products = data\n                .filter(p => p.category == this._category));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/ondemand/ondemand.component.html",
    "content": "<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col-12 p-2\">\n            <router-outlet></router-outlet>\n        </div>\n    </div>\n    <div class=\"row\">\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"left\"></router-outlet>\n        </div>\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"right\"></router-outlet>\n        </div>\n    </div>\n</div>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand\">Normal</button>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand/swap\">Swap</button>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/ondemand/ondemand.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"ondemand\",\n    templateUrl: \"ondemand.component.html\"\n})\nexport class OndemandComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/ondemand/ondemand.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OndemandComponent } from \"./ondemand.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { FirstComponent } from \"./first.component\";\nimport { SecondComponent } from \"./second.component\";\n\nlet routing = RouterModule.forChild([\n    {\n        path: \"\",\n        component: OndemandComponent,\n        children: [\n            {\n                path: \"\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: FirstComponent, },\n                    { outlet: \"left\", path: \"\", component: SecondComponent, },\n                    { outlet: \"right\", path: \"\", component: SecondComponent, },\n                ]\n            },\n            {\n                path: \"swap\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: SecondComponent, },\n                    { outlet: \"left\", path: \"\", component: FirstComponent, },\n                    { outlet: \"right\", path: \"\", component: FirstComponent, },\n                ]\n            },\n        ]\n    },\n]);\n\n@NgModule({\n    imports: [CommonModule, routing],\n    declarations: [OndemandComponent, FirstComponent, SecondComponent],\n    exports: [OndemandComponent]\n})\nexport class OndemandModule { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/ondemand/second.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"second\",\n    template: `<div class=\"bg-info text-white p-2\">Second Component</div>`\n})\nexport class SecondComponent { }\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/terms.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class TermsGuard {\n\n    constructor(private messages: MessageService,\n        private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.params[\"mode\"] == \"create\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No\", () => resolve(false)]\n                ];\n                this.messages.reportMessage(\n                    new Message(\"Do you accept the terms & conditions?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n\n    canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.url.length > 0\n            && route.url[route.url.length - 1].path == \"categories\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No \", () => resolve(false)]\n                ];\n\n                this.messages.reportMessage(\n                    new Message(\"Do you want to see the categories component?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/tests/app.component.spec.ts",
    "content": "describe(\"Jasmine Test Environment\", () => {\n    it(\"test numeric value\", () => expect(12).toBeGreaterThan(10));\n    it(\"test string value\", () => expect(\"London\").toMatch(\"^Lon\"));\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/tests/attr.directive.spec.ts",
    "content": "import { TestBed, ComponentFixture } from \"@angular/core/testing\";\nimport { Component, DebugElement, ViewChild } from \"@angular/core\";\nimport { By } from \"@angular/platform-browser\";\nimport { PaAttrDirective } from \"../ondemand/attr.directive\";\n\n@Component({\n    template: `<div><span [pa-attr]=\"className\">Test Content</span></div>`\n})\nclass TestComponent {\n    className = \"initialClass\"\n\n    @ViewChild(PaAttrDirective)\n    attrDirective: PaAttrDirective;\n}\n\ndescribe(\"PaAttrDirective\", () => {\n\n    let fixture: ComponentFixture<TestComponent>;\n    let directive: PaAttrDirective;\n    let spanElement: HTMLSpanElement;\n\n    beforeEach(() => {\n        TestBed.configureTestingModule({\n            declarations: [TestComponent, PaAttrDirective],\n        });\n        fixture = TestBed.createComponent(TestComponent);\n        fixture.detectChanges();\n        directive = fixture.componentInstance.attrDirective;\n        spanElement = fixture.debugElement.query(By.css(\"span\")).nativeElement;\n    });\n\n    it(\"generates the correct number of elements\", () => {\n        fixture.detectChanges();\n        expect(directive.bgClass).toBe(\"initialClass\");\n        expect(spanElement.className).toBe(\"initialClass\");\n\n        fixture.componentInstance.className = \"nextClass\";\n        fixture.detectChanges();\n        expect(directive.bgClass).toBe(\"nextClass\");\n        expect(spanElement.className).toBe(\"nextClass\");\n    });\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/app/tests/first.component.spec.ts",
    "content": "import { TestBed, ComponentFixture, async, fakeAsync, tick } from \"@angular/core/testing\";\nimport { FirstComponent } from \"../ondemand/first.component\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { DebugElement } from \"@angular/core\";\nimport { By } from \"@angular/platform-browser\";\nimport { Component, ViewChild } from \"@angular/core\";\nimport { RestDataSource } from \"../model/rest.datasource\";\nimport { Observable } from \"rxjs\";\nimport { Injectable } from \"@angular/core\";\n\n@Injectable()\nclass MockDataSource {\n    public data = [\n        new Product(1, \"test1\", \"Soccer\", 100),\n        new Product(2, \"test2\", \"Chess\", 100),\n        new Product(3, \"test3\", \"Soccer\", 100),\n    ];\n\n    getData(): Observable<Product[]> {\n        return new Observable<Product[]>(obs => {\n            setTimeout(() => obs.next(this.data), 1000);\n        })\n    }\n}\n\ndescribe(\"FirstComponent\", () => {\n\n    let fixture: ComponentFixture<FirstComponent>;\n    let component: FirstComponent;\n    let dataSource = new MockDataSource();\n\n    beforeEach(async(() => {\n        TestBed.configureTestingModule({\n            declarations: [FirstComponent],\n            providers: [\n                { provide: RestDataSource, useValue: dataSource }\n            ]\n        });\n        TestBed.compileComponents().then(() => {\n            fixture = TestBed.createComponent(FirstComponent);\n            component = fixture.componentInstance;\n        });\n    }));\n\n    it(\"performs async op\", fakeAsync( () => {\n        dataSource.data.push(new Product(100, \"test100\", \"Soccer\", 100));\n\n        fixture.detectChanges();\n\n        tick(1000);\n       \n        fixture.whenStable().then(() => {\n            expect(component.getProducts().length).toBe(3);\n        });\n    }));\n});\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/tsconfig.base.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/tsconfig.json",
    "content": "/*\n  This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.\n  It is not intended to be used to perform a compilation.\n\n  To learn more about this file see: https://angular.io/config/solution-tsconfig.\n*/\n{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \"./tsconfig.app.json\"\n    },\n    {\n      \"path\": \"./tsconfig.spec.json\"\n    },\n    {\n      \"path\": \"./e2e/tsconfig.json\"\n    }\n]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 10/Chapter 29/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ],\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true\n  },\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ]\n}"
  },
  {
    "path": "Update for Angular 10/README.md",
    "content": "# Update for Angular 10\n\nAll the examples in Pro Angular 9 work with Angular 10. The two changes shown below install the Angular 10 tools and reflect a change in the way that Angular 10 progressive web applications are configured. \n\nThis folder contains a complete set of projects created using Angular 10, equivilent to the \"End of Chapter\" projects in the main repository.\n\nWhen you add new code files to a project, you may see this error displayed in your code editor:\n\n    Error: Experimental support for decorators is a feature that is subject to change in a future release. \n    Set the 'experimentalDecorators' option in your 'tsconfig' or 'jsconfig' to remove this warning.\n\n There has been a TypeScript compiler configuration change that triggers this warning for files that use decorators but have not yet been added to the compilation context. Continue following the examples and this error will disappear once you update the Angular module that incorprates the new file into the application.\n\nAdam Freeman, July 2020\n\n---\n\n**Chapter 2**\n\nTo install the package for creating Angular 10 projects, use this command instead of the one shown in Listing 2-3:\n\n    npm install --global @angular/cli@10.0.0\n\n***\n\n**Chapter 10**\n\nUse the following code for Listing 10-2:\n\n    {\n    \"$schema\": \"./node_modules/@angular/service-worker/config/schema.json\",\n    \"index\": \"/index.html\",\n    \"assetGroups\": [\n        {\n        \"name\": \"app\",\n        \"installMode\": \"prefetch\",\n        \"resources\": {\n            \"files\": [\n            \"/favicon.ico\",\n            \"/index.html\",\n            \"/manifest.webmanifest\",\n            \"/*.css\",\n            \"/*.js\"\n            ]\n        }\n        }, {\n        \"name\": \"assets\",\n        \"installMode\": \"lazy\",\n        \"updateMode\": \"prefetch\",\n        \"resources\": {\n            \"files\": [\n            \"/assets/**\",\n            \"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)\", \n            \"/font/*\"\n            ]\n        }\n        }\n    ], \n    \"dataGroups\": [\n        {\n            \"name\": \"api-product\",\n            \"urls\": [\"/api/products\"],\n            \"cacheConfig\" : {\n                \"maxSize\": 100,\n                \"maxAge\": \"5d\"\n            }\n        }],\n        \"navigationUrls\": [\n        \"/**\"\n        ]\n    }"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"todo\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/todo\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"todo:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"todo:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"todo:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"todo:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"todo:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"todo\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('todo app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/todo'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/package.json",
    "content": "{\n  \"name\": \"todo\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/src/app/app.component.html",
    "content": "<h3 class=\"bg-primary text-center text-white p-2\">\n  {{ username }}'s To Do List\n  <h6 class=\"mt-1\">{{ itemCount }} {{ showComplete ? \"\" : \"Incomplete\" }} Items</h6>\n</h3>\n\n<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col\">\n      <input class=\"form-control\" placeholder=\"Enter task here\" #todoText />\n    </div>\n    <div class=\"col-auto\">\n      <button class=\"btn btn-primary\" (click)=\"addItem(todoText.value)\">\n        Add\n      </button>\n    </div>\n  </div>\n</div>\n\n<div class=\"m-2\">\n  <table class=\"table table-striped table-bordered table-sm\">\n    <thead>\n        <tr><th>#</th><th>Description</th><th>Done</th></tr>\n    </thead>\n    <tbody>\n        <tr *ngFor=\"let item of items; let i = index\">\n            <td>{{ i + 1 }}</td>\n            <td>{{ item.task }}</td>\n            <td><input type=\"checkbox\" [(ngModel)]=\"item.complete\" /></td>\n            <!-- <td [ngSwitch]=\"item.complete\">\n                <span *ngSwitchCase=\"true\">Yes</span>\n                <span *ngSwitchDefault>No</span>\n            </td> -->\n        </tr>\n    </tbody>\n  </table>\n</div>\n\n<div class=\"bg-secondary text-white text-center p-2\">\n  <div class=\"form-check\">\n    <input class=\"form-check-input\" type=\"checkbox\" [(ngModel)]=\"showComplete\" />\n    <label class=\"form-check-label\" for=\"defaultCheck1\">\n      Show Completed Tasks\n    </label>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\nimport { TodoList } from \"./todoList\";\nimport { TodoItem } from \"./todoItem\";\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  private list = new TodoList(\"Bob\", [\n    new TodoItem(\"Go for run\", true),\n    new TodoItem(\"Get flowers\"),\n    new TodoItem(\"Collect tickets\"),\n  ]);\n\n  get username(): string {\n    return this.list.user;\n  }\n\n  get itemCount(): number {\n    return this.items.length;\n  }\n\n  get items(): readonly TodoItem[] {\n    return this.list.items.filter(item => this.showComplete || !item.complete);\n  }\n\n  addItem(newItem) {\n    if (newItem != \"\") {\n        this.list.addItem(newItem);\n    }\n  }\n\n  showComplete: boolean = false;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from \"@angular/forms\";\n\nimport { AppComponent } from './app.component';\n\n@NgModule({\n  declarations: [\n    AppComponent\n  ],\n  imports: [\n    BrowserModule, FormsModule\n  ],\n  providers: [],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/src/app/todoItem.ts",
    "content": "export class TodoItem {\n\n  constructor(taskVal: string, completeVal: boolean = false) {\n      this.task = taskVal;\n      this.complete = completeVal;\n  }\n\n  task: string;\n  complete: boolean;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/src/app/todoList.ts",
    "content": "import { TodoItem } from \"./todoItem\";\n\nexport class TodoList {\n\n    constructor(public user: string, private todoItems: TodoItem[] = []) {\n        // no statements required\n    }\n\n    get items(): readonly TodoItem[]  {\n        return this.todoItems;\n    }\n\n    addItem(task: string) {\n        this.todoItems.push(new TodoItem(task));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Todo</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app-root></app-root>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 02/todo/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 04/HtmlCssPrimer/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n    <title>ToDo</title>\n    <meta charset=\"utf-8\" />\n    <link href=\"node_modules/bootstrap/dist/css/bootstrap.min.css\" \n          rel=\"stylesheet\" />\n</head>\n<body class=\"m-1\">\n    <h3 class=\"bg-primary text-white p-3\">Adam's To Do List</h3>\n    <div class=\"container-fluid\">\n        <div class=\"row\">        \n            <div class=\"col-4\">\n                <form>\n                    <div class=\"form-group\">\n                        <label>Task</label>\n                        <input class=\"form-control\" />\n                    </div>\n                    <div class=\"form-group\">\n                        <label>Location</label>\n                        <input class=\"form-control\" />\n                    </div>\n                    <div class=\"form-group\">\n                        <input type=\"checkbox\" />\n                        <label>Done</label>\n                    </div>\n                    <button class=\"btn btn-primary\">Add</button>\n                </form>\n            </div>\n            <div class=\"col-8\">\n                <table class=\"table table-striped table-bordered\">\n                    <thead>\n                        <tr>\n                            <th>Description</th>\n                            <th>Done</th>\n                        </tr>\n                    </thead>\n                    <tbody>\n                        <tr><td>Buy Flowers</td><td>No</td></tr>\n                        <tr><td>Get Shoes</td><td>No</td></tr>\n                        <tr><td>Collect Tickets</td><td>Yes</td></tr>\n                        <tr><td>Call Joe</td><td>No</td></tr>\n                    </tbody>\n                </table>\n            </div>\n        </div>        \n    </div>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 04/HtmlCssPrimer/package.json",
    "content": "{\n  \"dependencies\": {\n    \"bootstrap\": \"4.4.1\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"JavaScriptPrimer\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/JavaScriptPrimer\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"JavaScriptPrimer:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"JavaScriptPrimer:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"JavaScriptPrimer:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"JavaScriptPrimer:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"JavaScriptPrimer:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"JavaScriptPrimer\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('JavaScriptPrimer app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/JavaScriptPrimer'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/package.json",
    "content": "{\n  \"name\": \"java-script-primer\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'JavaScriptPrimer';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\nimport { AppComponent } from './app.component';\n\n@NgModule({\n  declarations: [\n    AppComponent\n  ],\n  imports: [\n    BrowserModule\n  ],\n  providers: [],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>JavaScriptPrimer</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app-root></app-root>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/src/main.ts",
    "content": "let products = [\n  { name: \"Hat\", price: 24.5, stock: 10 },\n  { name: \"Kayak\", price: 289.99, stock: 1 },\n  { name: \"Soccer Ball\", price: 10, stock: 0 },\n  { name: \"Running Shoes\", price: 116.50, stock: 20 }\n];\n\nlet totalValue = products\n  .filter(item => item.stock > 0)\n  .reduce((prev, item) => prev + (item.price * item.stock), 0);\n\nconsole.log(\"Total value: $\" + totalValue.toFixed(2));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 05/JavaScriptPrimer/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"JavaScriptPrimer\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/JavaScriptPrimer\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"JavaScriptPrimer:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"JavaScriptPrimer:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"JavaScriptPrimer:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"JavaScriptPrimer:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"JavaScriptPrimer:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"JavaScriptPrimer\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('JavaScriptPrimer app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/JavaScriptPrimer'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/package.json",
    "content": "{\n  \"name\": \"java-script-primer\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'JavaScriptPrimer';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\nimport { AppComponent } from './app.component';\n\n@NgModule({\n  declarations: [\n    AppComponent\n  ],\n  imports: [\n    BrowserModule\n  ],\n  providers: [],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>JavaScriptPrimer</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app-root></app-root>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/src/main.ts",
    "content": "import { Name, WeatherLocation } from \"./modules/NameAndWeather\";\nimport { Name as OtherName } from \"./modules/DuplicateName\";\nimport { TempConverter } from \"./tempConverter\";\n\nlet cities: { [index: string]: [string, string] } = {};\n\ncities[\"London\"] = [\"raining\", TempConverter.convertFtoC(\"38\")];\ncities[\"Paris\"] = [\"sunny\", TempConverter.convertFtoC(\"52\")];\ncities[\"Berlin\"] = [\"snowing\", TempConverter.convertFtoC(\"23\")];\n\nfor (let key in cities) {\n    console.log(`${key}: ${cities[key][0]}, ${cities[key][1]}`);\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/src/modules/DuplicateName.ts",
    "content": "export class Name {\n\n  get message() {\n      return \"Other Name\";\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/src/modules/NameAndWeather.ts",
    "content": "export class Name {\n  first: string;\n  second: string;\n\n  constructor(first: string, second: string) {\n      this.first = first;\n      this.second = second;\n  }\n\n  get nameMessage() : string {\n      return `Hello ${this.first} ${this.second}`;\n  }\n}\n\nexport class WeatherLocation {\n  weather: string;\n  city: string;\n\n  constructor(weather: string, city: string) {\n      this.weather = weather;\n      this.city = city;\n  }\n\n  get weatherMessage() : string {\n      return `It is ${this.weather} in ${this.city}`;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/src/tempConverter.ts",
    "content": "export class TempConverter {\n\n  static convertFtoC(temp: any): string {\n      let value: number;\n      if ((temp as number).toPrecision) {\n          value = temp;\n      } else if ((temp as string).indexOf) {\n          value = parseFloat(<string>temp);\n      } else {\n          value = 0;\n      }\n      return TempConverter.performCalculation(value).toFixed(1);\n  }\n\n  private static performCalculation(value: number): number {\n      return (parseFloat(value.toPrecision(2)) - 32) / 1.8;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 06/JavaScriptPrimer/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"\n\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/data.js",
    "content": "module.exports = function () {\n  return {\n      products: [\n          { id: 1, name: \"Kayak\", category: \"Watersports\",\n              description: \"A boat for one person\", price: 275 },\n          { id: 2, name: \"Lifejacket\", category: \"Watersports\",\n              description: \"Protective and fashionable\", price: 48.95 },\n          { id: 3, name: \"Soccer Ball\", category: \"Soccer\",\n              description: \"FIFA-approved size and weight\", price: 19.50 },\n          { id: 4, name: \"Corner Flags\", category: \"Soccer\",\n              description: \"Give your playing field a professional touch\",\n              price: 34.95 },\n          { id: 5, name: \"Stadium\", category: \"Soccer\",\n              description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n          { id: 6, name: \"Thinking Cap\", category: \"Chess\",\n              description: \"Improve brain efficiency by 75%\", price: 16 },\n          { id: 7, name: \"Unsteady Chair\", category: \"Chess\",\n              description: \"Secretly give your opponent a disadvantage\",\n              price: 29.95 },\n          { id: 8, name: \"Human Chess Board\", category: \"Chess\",\n              description: \"A fun game for the family\", price: 75 },\n          { id: 9, name: \"Bling King\", category: \"Chess\",\n              description: \"Gold-plated, diamond-studded King\", price: 1200 }\n      ],\n      orders: []\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<store></store>\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\n\n@NgModule({\n    imports: [BrowserModule, StoreModule],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@NgModule({\n    providers: [ProductRepository, StaticDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n  constructor(\n      public id?: number,\n      public name?: string,\n      public category?: string,\n      public description?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: StaticDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n  Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n  selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n  constructor(private container: ViewContainerRef,\n      private template: TemplateRef<Object>) {\n  }\n\n  @Input(\"counterOf\")\n  counter: number;\n\n  ngOnChanges(changes: SimpleChanges) {\n      this.container.clear();\n      for (let i = 0; i < this.counter; i++) {\n          this.container.createEmbeddedView(this.template,\n              new CounterDirectiveContext(i + 1));\n      }\n  }\n}\n\nclass CounterDirectiveContext {\n  constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col bg-dark text-white\">\n      <a class=\"navbar-brand\">SPORTS STORE</a>\n    </div>\n  </div>\n  <div class=\"row\">\n\n    <div class=\"col-3 p-2\">\n      <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n        Home\n      </button>\n      <button *ngFor=\"let cat of categories\"\n           class=\"btn btn-outline-primary btn-block\"\n           [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n        {{cat}}\n      </button>\n    </div>\n\n    <div class=\"col-9 p-2\">\n      <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n        <h4>\n          {{product.name}}\n          <span class=\"badge badge-pill badge-primary float-right\">\n            {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n          </span>\n        </h4>\n        <div class=\"card-text bg-white p-1\">{{product.description}}</div>\n      </div>\n\n      <div class=\"form-inline float-left mr-1\">\n        <select class=\"form-control\" [value]=\"productsPerPage\"\n                (change)=\"changePageSize($event.target.value)\">\n          <option value=\"3\">3 per Page</option>\n          <option value=\"4\">4 per Page</option>\n          <option value=\"6\">6 per Page</option>\n          <option value=\"8\">8 per Page</option>\n        </select>\n      </div>\n\n      <div class=\"btn-group float-right\">\n        <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n            class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n          {{page}}\n        </button>\n      </div>\n\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository) {}\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    //get pageNumbers(): number[] {\n    //    return Array(Math.ceil(this.repository\n    //        .getProducts(this.selectedCategory).length / this.productsPerPage))\n    //            .fill(0).map((x, i) => i + 1);\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule],\n    declarations: [StoreComponent, CounterDirective],\n    exports: [StoreComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.log(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 07/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"\n\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/data.js",
    "content": "module.exports = function () {\n  return {\n      products: [\n          { id: 1, name: \"Kayak\", category: \"Watersports\",\n              description: \"A boat for one person\", price: 275 },\n          { id: 2, name: \"Lifejacket\", category: \"Watersports\",\n              description: \"Protective and fashionable\", price: 48.95 },\n          { id: 3, name: \"Soccer Ball\", category: \"Soccer\",\n              description: \"FIFA-approved size and weight\", price: 19.50 },\n          { id: 4, name: \"Corner Flags\", category: \"Soccer\",\n              description: \"Give your playing field a professional touch\",\n              price: 34.95 },\n          { id: 5, name: \"Stadium\", category: \"Soccer\",\n              description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n          { id: 6, name: \"Thinking Cap\", category: \"Chess\",\n              description: \"Improve brain efficiency by 75%\", price: 16 },\n          { id: 7, name: \"Unsteady Chair\", category: \"Chess\",\n              description: \"Secretly give your opponent a disadvantage\",\n              price: 29.95 },\n          { id: 8, name: \"Human Chess Board\", category: \"Chess\",\n              description: \"A fun game for the family\", price: 75 },\n          { id: 9, name: \"Bling King\", category: \"Chess\",\n              description: \"Gold-plated, diamond-studded King\", price: 1200 }\n      ],\n      orders: []\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<router-outlet></router-outlet>\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\nimport { StoreComponent } from \"./store/store.component\";\nimport { CheckoutComponent } from \"./store/checkout.component\";\nimport { CartDetailComponent } from \"./store/cartDetail.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { StoreFirstGuard } from \"./storeFirst.guard\";\n\n@NgModule({\n    imports: [BrowserModule, StoreModule,\n        RouterModule.forRoot([\n            {\n                path: \"store\", component: StoreComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"cart\", component: CartDetailComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"checkout\", component: CheckoutComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            { path: \"**\", redirectTo: \"/store\" }\n        ])],\n    providers: [StoreFirstGuard],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/model/cart.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class Cart {\n    public lines: CartLine[] = [];\n    public itemCount: number = 0;\n    public cartPrice: number = 0;\n\n    addLine(product: Product, quantity: number = 1) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity += quantity;\n        } else {\n            this.lines.push(new CartLine(product, quantity));\n        }\n        this.recalculate();\n    }\n\n    updateQuantity(product: Product, quantity: number) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity = Number(quantity);\n        }\n        this.recalculate();\n    }\n\n    removeLine(id: number) {\n        let index = this.lines.findIndex(line => line.product.id == id);\n        this.lines.splice(index, 1);\n        this.recalculate();\n    }\n\n    clear() {\n        this.lines = [];\n        this.itemCount = 0;\n        this.cartPrice = 0;\n    }\n\n    private recalculate() {\n        this.itemCount = 0;\n        this.cartPrice = 0;\n        this.lines.forEach(l => {\n            this.itemCount += l.quantity;\n            this.cartPrice += (l.quantity * l.product.price);\n        })\n    }\n}\n\nexport class CartLine {\n\n    constructor(public product: Product,\n        public quantity: number) {}\n\n    get lineTotal() {\n        return this.quantity * this.product.price;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { OrderRepository } from \"./order.repository\";\nimport { RestDataSource } from \"./rest.datasource\";\nimport { HttpClientModule } from \"@angular/common/http\";\n\n@NgModule({\n  imports: [HttpClientModule],\n  providers: [ProductRepository, Cart, Order, OrderRepository,\n    { provide: StaticDataSource, useClass: RestDataSource }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/model/order.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Cart } from \"./cart.model\";\n\n@Injectable()\nexport class Order {\n    public id: number;\n    public name: string;\n    public address: string;\n    public city: string;\n    public state: string;\n    public zip: string;\n    public country: string;\n    public shipped: boolean = false;\n\n    constructor(public cart: Cart) { }\n\n    clear() {\n        this.id = null;\n        this.name = this.address = this.city = null;\n        this.state = this.zip = this.country = null;\n        this.shipped = false;\n        this.cart.clear();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/model/order.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { Order } from \"./order.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class OrderRepository {\n    private orders: Order[] = [];\n\n    constructor(private dataSource: StaticDataSource) {}\n\n    getOrders(): Order[] {\n        return this.orders;\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.dataSource.saveOrder(order);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n  constructor(\n      public id?: number,\n      public name?: string,\n      public category?: string,\n      public description?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: StaticDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/model/rest.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\n\nconst PROTOCOL = \"http\";\nconst PORT = 3500;\n\n@Injectable()\nexport class RestDataSource {\n  baseUrl: string;\n\n  constructor(private http: HttpClient) {\n    this.baseUrl = `${PROTOCOL}://${location.hostname}:${PORT}/`;\n  }\n\n  getProducts(): Observable<Product[]> {\n    return this.http.get<Product[]>(this.baseUrl + \"products\");\n  }\n\n  saveOrder(order: Order): Observable<Order> {\n    return this.http.post<Order>(this.baseUrl + \"orders\", order);\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\nimport { Order } from \"./order.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        console.log(JSON.stringify(order));\n        return from([order]);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/store/cartDetail.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col bg-dark text-white\">\n      <a class=\"navbar-brand\">SPORTS STORE</a>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"col mt-2\">\n      <h2 class=\"text-center\">Your Cart</h2>\n      <table class=\"table table-bordered table-striped p-2\">\n        <thead>\n          <tr>\n            <th>Quantity</th>\n            <th>Product</th>\n            <th class=\"text-right\">Price</th>\n            <th class=\"text-right\">Subtotal</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr *ngIf=\"cart.lines.length == 0\">\n            <td colspan=\"4\" class=\"text-center\">\n              Your cart is empty\n            </td>\n          </tr>\n          <tr *ngFor=\"let line of cart.lines\">\n            <td>\n              <input type=\"number\" class=\"form-control-sm\"\n                     style=\"width:5em\"\n                     [value]=\"line.quantity\"\n                     (change)=\"cart.updateQuantity(line.product,\n                                $event.target.value)\" />\n            </td>\n            <td>{{line.product.name}}</td>\n            <td class=\"text-right\">\n                {{line.product.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n            </td>\n            <td class=\"text-right\">\n                {{(line.lineTotal) | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n            </td>\n            <td class=\"text-center\">\n              <button class=\"btn btn-sm btn-danger\"\n                      (click)=\"cart.removeLine(line.product.id)\">\n                Remove\n              </button>\n            </td>\n          </tr>\n        </tbody>\n        <tfoot>\n          <tr>\n            <td colspan=\"3\" class=\"text-right\">Total:</td>\n            <td class=\"text-right\">\n              {{cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n            </td>\n          </tr>\n        </tfoot>\n      </table>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"col\">\n    <div class=\"text-center\">\n      <button class=\"btn btn-primary m-1\" routerLink=\"/store\">\n          Continue Shopping\n      </button>\n      <button class=\"btn btn-secondary m-1\" routerLink=\"/checkout\"\n              [disabled]=\"cart.lines.length == 0\">\n        Checkout\n      </button>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/store/cartDetail.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    templateUrl: \"cartDetail.component.html\"\n})\nexport class CartDetailComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/store/cartSummary.component.html",
    "content": "<div class=\"float-right\">\n  <small>\n    Your cart:\n    <span *ngIf=\"cart.itemCount > 0\">\n      {{ cart.itemCount }} item(s)\n      {{ cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n    </span>\n    <span *ngIf=\"cart.itemCount == 0\">\n      (empty)\n    </span>\n  </small>\n  <button class=\"btn btn-sm bg-dark text-white\"\n      [disabled]=\"cart.itemCount == 0\" routerLink=\"/cart\">\n    <i class=\"fa fa-shopping-cart\"></i>\n  </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/store/cartSummary.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    selector: \"cart-summary\",\n    templateUrl: \"cartSummary.component.html\"\n})\nexport class CartSummaryComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/store/checkout.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/store/checkout.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col bg-dark text-white\">\n      <a class=\"navbar-brand\">SPORTS STORE</a>\n    </div>\n  </div>\n</div>\n\n<div *ngIf=\"orderSent\" class=\"m-2 text-center\">\n  <h2>Thanks!</h2>\n  <p>Thanks for placing your order.</p>\n  <p>We'll ship your goods as soon as possible.</p>\n  <button class=\"btn btn-primary\" routerLink=\"/store\">Return to Store</button>\n</div>\n<form *ngIf=\"!orderSent\" #form=\"ngForm\" novalidate\n      (ngSubmit)=\"submitOrder(form)\" class=\"m-2\">\n  <div class=\"form-group\">\n    <label>Name</label>\n    <input class=\"form-control\" #name=\"ngModel\" name=\"name\"\n            [(ngModel)]=\"order.name\" required />\n    <span *ngIf=\"submitted && name.invalid\" class=\"text-danger\">\n      Please enter your name\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>Address</label>\n    <input class=\"form-control\" #address=\"ngModel\" name=\"address\"\n            [(ngModel)]=\"order.address\" required />\n    <span *ngIf=\"submitted && address.invalid\" class=\"text-danger\">\n      Please enter your address\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>City</label>\n    <input class=\"form-control\" #city=\"ngModel\" name=\"city\"\n            [(ngModel)]=\"order.city\" required />\n    <span *ngIf=\"submitted && city.invalid\" class=\"text-danger\">\n      Please enter your city\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>State</label>\n    <input class=\"form-control\" #state=\"ngModel\" name=\"state\"\n            [(ngModel)]=\"order.state\" required />\n    <span *ngIf=\"submitted && state.invalid\" class=\"text-danger\">\n      Please enter your state\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>Zip/Postal Code</label>\n    <input class=\"form-control\" #zip=\"ngModel\" name=\"zip\"\n            [(ngModel)]=\"order.zip\" required />\n    <span *ngIf=\"submitted && zip.invalid\" class=\"text-danger\">\n      Please enter your zip/postal code\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>Country</label>\n    <input class=\"form-control\" #country=\"ngModel\" name=\"country\"\n            [(ngModel)]=\"order.country\" required />\n    <span *ngIf=\"submitted && country.invalid\" class=\"text-danger\">\n      Please enter your country\n    </span>\n  </div>\n  <div class=\"text-center\">\n    <button class=\"btn btn-secondary m-1\" routerLink=\"/cart\">Back</button>\n    <button class=\"btn btn-primary m-1\" type=\"submit\">Complete Order</button>\n  </div>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/store/checkout.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { OrderRepository } from \"../model/order.repository\";\nimport { Order } from \"../model/order.model\";\n\n@Component({\n    templateUrl: \"checkout.component.html\",\n    styleUrls: [\"checkout.component.css\"]\n})\nexport class CheckoutComponent {\n    orderSent: boolean = false;\n    submitted: boolean = false;\n\n    constructor(public repository: OrderRepository,\n                public order: Order) {}\n\n    submitOrder(form: NgForm) {\n        this.submitted = true;\n        if (form.valid) {\n            this.repository.saveOrder(this.order).subscribe(order => {\n                this.order.clear();\n                this.orderSent = true;\n                this.submitted = false;\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n  Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n  selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n  constructor(private container: ViewContainerRef,\n      private template: TemplateRef<Object>) {\n  }\n\n  @Input(\"counterOf\")\n  counter: number;\n\n  ngOnChanges(changes: SimpleChanges) {\n      this.container.clear();\n      for (let i = 0; i < this.counter; i++) {\n          this.container.createEmbeddedView(this.template,\n              new CounterDirectiveContext(i + 1));\n      }\n  }\n}\n\nclass CounterDirectiveContext {\n  constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col bg-dark text-white\">\n      <a class=\"navbar-brand\">SPORTS STORE</a>\n      <cart-summary></cart-summary>\n    </div>\n  </div>\n  <div class=\"row\">\n\n    <div class=\"col-3 p-2\">\n      <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n        Home\n      </button>\n      <button *ngFor=\"let cat of categories\"\n          class=\"btn btn-outline-primary btn-block\"\n          [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n        {{cat}}\n      </button>\n    </div>\n\n    <div class=\"col-9 p-2\">\n      <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n        <h4>\n          {{product.name}}\n          <span class=\"badge badge-pill badge-primary float-right\">\n            {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n          </span>\n        </h4>\n        <div class=\"card-text bg-white p-1\">\n          {{product.description}}\n          <button class=\"btn btn-success btn-sm float-right\"\n                  (click)=\"addProductToCart(product)\">\n            Add To Cart\n          </button>\n        </div>\n      </div>\n\n      <div class=\"form-inline float-left mr-1\">\n        <select class=\"form-control\" [value]=\"productsPerPage\"\n                (change)=\"changePageSize($event.target.value)\">\n          <option value=\"3\">3 per Page</option>\n          <option value=\"4\">4 per Page</option>\n          <option value=\"6\">6 per Page</option>\n          <option value=\"8\">8 per Page</option>\n        </select>\n      </div>\n\n      <div class=\"btn-group float-right\">\n        <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n            class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n          {{page}}\n        </button>\n      </div>\n\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\nimport { Cart } from \"../model/cart.model\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository,\n        private cart: Cart,\n        private router: Router) { }\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    addProductToCart(product: Product) {\n        this.cart.addLine(product);\n        this.router.navigateByUrl(\"/cart\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\nimport { CartSummaryComponent } from \"./cartSummary.component\";\nimport { CartDetailComponent } from \"./cartDetail.component\";\nimport { CheckoutComponent } from \"./checkout.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule, RouterModule],\n    declarations: [StoreComponent, CounterDirective, CartSummaryComponent,\n        CartDetailComponent, CheckoutComponent],\n    exports: [StoreComponent, CartDetailComponent, CheckoutComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/app/storeFirst.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { StoreComponent } from \"./store/store.component\";\n\n@Injectable()\nexport class StoreFirstGuard {\n    private firstNavigation = true;\n\n    constructor(private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n        if (this.firstNavigation) {\n            this.firstNavigation = false;\n            if (route.component != StoreComponent) {\n                this.router.navigateByUrl(\"/\");\n                return false;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.log(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 08/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"\n\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/data.js",
    "content": "module.exports = function () {\n  return {\n      products: [\n          { id: 1, name: \"Kayak\", category: \"Watersports\",\n              description: \"A boat for one person\", price: 275 },\n          { id: 2, name: \"Lifejacket\", category: \"Watersports\",\n              description: \"Protective and fashionable\", price: 48.95 },\n          { id: 3, name: \"Soccer Ball\", category: \"Soccer\",\n              description: \"FIFA-approved size and weight\", price: 19.50 },\n          { id: 4, name: \"Corner Flags\", category: \"Soccer\",\n              description: \"Give your playing field a professional touch\",\n              price: 34.95 },\n          { id: 5, name: \"Stadium\", category: \"Soccer\",\n              description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n          { id: 6, name: \"Thinking Cap\", category: \"Chess\",\n              description: \"Improve brain efficiency by 75%\", price: 16 },\n          { id: 7, name: \"Unsteady Chair\", category: \"Chess\",\n              description: \"Secretly give your opponent a disadvantage\",\n              price: 29.95 },\n          { id: 8, name: \"Human Chess Board\", category: \"Chess\",\n              description: \"A fun game for the family\", price: 75 },\n          { id: 9, name: \"Bling King\", category: \"Chess\",\n              description: \"Gold-plated, diamond-studded King\", price: 1200 }\n      ],\n      orders: []\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/admin/admin.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n          <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n  </div>\n  <div class=\"row mt-2\">\n      <div class=\"col-3\">\n          <button class=\"btn btn-outline-info btn-block\"\n                  routerLink=\"/admin/main/products\"\n                  routerLinkActive=\"active\">\n              Products\n          </button>\n          <button class=\"btn btn-outline-info btn-block\"\n                  routerLink=\"/admin/main/orders\"\n                  routerLinkActive=\"active\">\n              Orders\n          </button>\n          <button class=\"btn btn-outline-danger btn-block\" (click)=\"logout()\">\n              Logout\n          </button>\n      </div>\n      <div class=\"col-9\">\n          <router-outlet></router-outlet>\n      </div>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/admin/admin.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Component({\n    templateUrl: \"admin.component.html\"\n})\nexport class AdminComponent {\n\n    constructor(private auth: AuthService,\n                private router: Router) { }\n\n    logout() {\n        this.auth.clear();\n        this.router.navigateByUrl(\"/\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/admin/admin.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { RouterModule } from \"@angular/router\";\nimport { AuthComponent } from \"./auth.component\";\nimport { AdminComponent } from \"./admin.component\";\nimport { AuthGuard } from \"./auth.guard\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductEditorComponent } from \"./productEditor.component\";\nimport { OrderTableComponent } from \"./orderTable.component\";\n\nlet routing = RouterModule.forChild([\n    { path: \"auth\", component: AuthComponent },\n    {\n        path: \"main\", component: AdminComponent, canActivate: [AuthGuard],\n        children: [\n            { path: \"products/:mode/:id\", component: ProductEditorComponent },\n            { path: \"products/:mode\", component: ProductEditorComponent },\n            { path: \"products\", component: ProductTableComponent },\n            { path: \"orders\", component: OrderTableComponent },\n            { path: \"**\", redirectTo: \"products\" }\n        ]\n    },\n    { path: \"**\", redirectTo: \"auth\" }\n]);\n\n@NgModule({\n    imports: [CommonModule, FormsModule, routing],\n    providers: [AuthGuard],\n    declarations: [AuthComponent, AdminComponent,\n        ProductTableComponent, ProductEditorComponent, OrderTableComponent]\n})\nexport class AdminModule {}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/admin/auth.component.html",
    "content": "<div class=\"bg-info p-2 text-center text-white\">\n  <h3>SportsStore Admin</h3>\n</div>\n<div class=\"bg-danger mt-2 p-2 text-center text-white\"\n     *ngIf=\"errorMessage != null\">\n  {{errorMessage}}\n</div>\n<div class=\"p-2\">\n  <form novalidate #form=\"ngForm\" (ngSubmit)=\"authenticate(form)\">\n    <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" name=\"username\"\n             [(ngModel)]=\"username\" required />\n    </div>\n    <div class=\"form-group\">\n      <label>Password</label>\n      <input class=\"form-control\" type=\"password\" name=\"password\"\n             [(ngModel)]=\"password\" required />\n    </div>\n    <div class=\"text-center\">\n      <button class=\"btn btn-secondary m-1\" routerLink=\"/\">Go back</button>\n      <button class=\"btn btn-primary m-1\" type=\"submit\">Log In</button>\n    </div>\n  </form>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/admin/auth.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Component({\n    templateUrl: \"auth.component.html\"\n})\nexport class AuthComponent {\n    public username: string;\n    public password: string;\n    public errorMessage: string;\n\n    constructor(private router: Router,\n                private auth: AuthService) { }\n\n    authenticate(form: NgForm) {\n        if (form.valid) {\n            this.auth.authenticate(this.username, this.password)\n                .subscribe(response => {\n                    if (response) {\n                        this.router.navigateByUrl(\"/admin/main\");\n                    }\n                    this.errorMessage = \"Authentication Failed\";\n                })\n        } else {\n            this.errorMessage = \"Form Data Invalid\";\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/admin/auth.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot,\n            Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Injectable()\nexport class AuthGuard {\n\n    constructor(private router: Router,\n                private auth: AuthService) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n\n        if (!this.auth.authenticated) {\n            this.router.navigateByUrl(\"/admin/auth\");\n            return false;\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/admin/orderTable.component.html",
    "content": "<div class=\"form-check\">\n  <label class=\"form-check-label\">\n  <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"includeShipped\"/>\n      Display Shipped Orders\n  </label>\n</div>\n<table class=\"table table-sm\">\n  <thead>\n      <tr><th>Name</th><th>Zip</th><th colspan=\"2\">Cart</th><th></th></tr>\n  </thead>\n  <tbody>\n      <tr *ngIf=\"getOrders().length == 0\">\n          <td colspan=\"5\">There are no orders</td>\n      </tr>\n      <ng-template ngFor let-o [ngForOf]=\"getOrders()\">\n          <tr>\n              <td>{{o.name}}</td><td>{{o.zip}}</td>\n              <th>Product</th><th>Quantity</th>\n              <td>\n                  <button class=\"btn btn-warning m-1\" (click)=\"markShipped(o)\">\n                      Ship\n                  </button>\n                  <button class=\"btn btn-danger\" (click)=\"delete(o.id)\">\n                      Delete\n                  </button>\n              </td>\n          </tr>\n          <tr *ngFor=\"let line of o.cart.lines\">\n              <td colspan=\"2\"></td>\n              <td>{{line.product.name}}</td>\n              <td>{{line.quantity}}</td>\n          </tr>\n      </ng-template>\n  </tbody>\n</table>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/admin/orderTable.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Order } from \"../model/order.model\";\nimport { OrderRepository } from \"../model/order.repository\";\n\n@Component({\n    templateUrl: \"orderTable.component.html\"\n})\nexport class OrderTableComponent {\n    includeShipped = false;\n\n    constructor(private repository: OrderRepository) {}\n\n    getOrders(): Order[] {\n        return this.repository.getOrders()\n            .filter(o => this.includeShipped || !o.shipped);\n    }\n\n    markShipped(order: Order) {\n        order.shipped = true;\n        this.repository.updateOrder(order);\n    }\n\n    delete(id: number) {\n        this.repository.deleteOrder(id);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/admin/productEditor.component.html",
    "content": "<div class=\"bg-primary p-2 text-white\" [class.bg-warning]=\"editing\"\n     [class.text-dark]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"save(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" [(ngModel)]=\"product.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" [(ngModel)]=\"product.category\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Description</label>\n        <textarea class=\"form-control\" name=\"description\"\n                  [(ngModel)]=\"product.description\">\n        </textarea>\n    </div>\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" [(ngModel)]=\"product.price\" />\n    </div>\n    <button type=\"submit\" class=\"btn btn-primary m-1\" [class.btn-warning]=\"editing\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary\" routerLink=\"/admin/main/products\">\n        Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/admin/productEditor.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    templateUrl: \"productEditor.component.html\"\n})\nexport class ProductEditorComponent {\n    editing: boolean = false;\n    product: Product = new Product();\n\n    constructor(private repository: ProductRepository,\n                private router: Router,\n                activeRoute: ActivatedRoute) {\n\n        this.editing = activeRoute.snapshot.params[\"mode\"] == \"edit\";\n        if (this.editing) {\n            Object.assign(this.product,\n                repository.getProduct(activeRoute.snapshot.params[\"id\"]));\n        }\n    }\n\n    save(form: NgForm) {\n        this.repository.saveProduct(this.product);\n        this.router.navigateByUrl(\"/admin/main/products\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/admin/productTable.component.html",
    "content": "<table class=\"table table-sm table-striped\">\n  <thead>\n      <tr>\n          <th>ID</th><th>Name</th><th>Category</th><th>Price</th>\n          <th></th>\n      </tr>\n  </thead>\n  <tbody>\n      <tr *ngFor=\"let p of getProducts()\">\n          <td>{{p.id}}</td>\n          <td>{{p.name}}</td>\n          <td>{{p.category}}</td>\n          <td>{{p.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}</td>\n          <td>\n              <button class=\"btn btn-sm btn-warning m-1\"\n                      [routerLink]=\"['/admin/main/products/edit', p.id]\">\n                  Edit\n              </button>\n              <button class=\"btn btn-sm btn-danger\" (click)=\"deleteProduct(p.id)\">\n                  Delete\n              </button>\n          </td>\n      </tr>\n  </tbody>\n</table>\n<button class=\"btn btn-primary\" routerLink=\"/admin/main/products/create\">\n  Create New Product\n</button>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/admin/productTable.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n\n    constructor(private repository: ProductRepository) { }\n\n    getProducts(): Product[] {\n        return this.repository.getProducts();\n    }\n\n    deleteProduct(id: number) {\n        this.repository.deleteProduct(id);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<router-outlet></router-outlet>\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\nimport { StoreComponent } from \"./store/store.component\";\nimport { CheckoutComponent } from \"./store/checkout.component\";\nimport { CartDetailComponent } from \"./store/cartDetail.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { StoreFirstGuard } from \"./storeFirst.guard\";\n\n@NgModule({\n    imports: [BrowserModule, StoreModule,\n        RouterModule.forRoot([\n            {\n                path: \"store\", component: StoreComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"cart\", component: CartDetailComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"checkout\", component: CheckoutComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"admin\",\n                loadChildren: () => import(\"./admin/admin.module\")\n                    .then(m => m.AdminModule),\n                canActivate: [StoreFirstGuard]\n            },\n            { path: \"**\", redirectTo: \"/store\" }\n        ])],\n    providers: [StoreFirstGuard],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/model/auth.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class AuthService {\n\n    constructor(private datasource: RestDataSource) {}\n\n    authenticate(username: string, password: string): Observable<boolean> {\n        return this.datasource.authenticate(username, password);\n    }\n\n    get authenticated(): boolean {\n        return this.datasource.auth_token != null;\n    }\n\n    clear() {\n        this.datasource.auth_token = null;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/model/cart.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class Cart {\n    public lines: CartLine[] = [];\n    public itemCount: number = 0;\n    public cartPrice: number = 0;\n\n    addLine(product: Product, quantity: number = 1) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity += quantity;\n        } else {\n            this.lines.push(new CartLine(product, quantity));\n        }\n        this.recalculate();\n    }\n\n    updateQuantity(product: Product, quantity: number) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity = Number(quantity);\n        }\n        this.recalculate();\n    }\n\n    removeLine(id: number) {\n        let index = this.lines.findIndex(line => line.product.id == id);\n        this.lines.splice(index, 1);\n        this.recalculate();\n    }\n\n    clear() {\n        this.lines = [];\n        this.itemCount = 0;\n        this.cartPrice = 0;\n    }\n\n    private recalculate() {\n        this.itemCount = 0;\n        this.cartPrice = 0;\n        this.lines.forEach(l => {\n            this.itemCount += l.quantity;\n            this.cartPrice += (l.quantity * l.product.price);\n        })\n    }\n}\n\nexport class CartLine {\n\n    constructor(public product: Product,\n        public quantity: number) {}\n\n    get lineTotal() {\n        return this.quantity * this.product.price;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { OrderRepository } from \"./order.repository\";\nimport { RestDataSource } from \"./rest.datasource\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { AuthService } from \"./auth.service\";\n\n@NgModule({\n  imports: [HttpClientModule],\n  providers: [ProductRepository, Cart, Order, OrderRepository,\n    { provide: StaticDataSource, useClass: RestDataSource },\n    RestDataSource, AuthService]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/model/order.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Cart } from \"./cart.model\";\n\n@Injectable()\nexport class Order {\n    public id: number;\n    public name: string;\n    public address: string;\n    public city: string;\n    public state: string;\n    public zip: string;\n    public country: string;\n    public shipped: boolean = false;\n\n    constructor(public cart: Cart) { }\n\n    clear() {\n        this.id = null;\n        this.name = this.address = this.city = null;\n        this.state = this.zip = this.country = null;\n        this.shipped = false;\n        this.cart.clear();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/model/order.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { Order } from \"./order.model\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class OrderRepository {\n    private orders: Order[] = [];\n    private loaded: boolean = false;\n\n    constructor(private dataSource: RestDataSource) { }\n\n    loadOrders() {\n        this.loaded = true;\n        this.dataSource.getOrders()\n            .subscribe(orders => this.orders = orders);\n    }\n\n    getOrders(): Order[] {\n        if (!this.loaded) {\n            this.loadOrders();\n        }\n        return this.orders;\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.dataSource.saveOrder(order);\n    }\n\n    updateOrder(order: Order) {\n        this.dataSource.updateOrder(order).subscribe(order => {\n            this.orders.splice(this.orders.\n                findIndex(o => o.id == order.id), 1, order);\n        });\n    }\n\n    deleteOrder(id: number) {\n        this.dataSource.deleteOrder(id).subscribe(order => {\n            this.orders.splice(this.orders.findIndex(o => id == o.id), 1);\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n  constructor(\n      public id?: number,\n      public name?: string,\n      public category?: string,\n      public description?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: RestDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == null || product.id == 0) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product)\n                .subscribe(p => {\n                    this.products.splice(this.products.\n                        findIndex(p => p.id == product.id), 1, product);\n                });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(p => {\n            this.products.splice(this.products.\n                findIndex(p => p.id == id), 1);\n        })\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/model/rest.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { map } from \"rxjs/operators\";\nimport { HttpHeaders } from '@angular/common/http';\n\nconst PROTOCOL = \"http\";\nconst PORT = 3500;\n\n@Injectable()\nexport class RestDataSource {\n    baseUrl: string;\n    auth_token: string;\n\n    constructor(private http: HttpClient) {\n        this.baseUrl = `${PROTOCOL}://${location.hostname}:${PORT}/`;\n    }\n\n    getProducts(): Observable<Product[]> {\n        return this.http.get<Product[]>(this.baseUrl + \"products\");\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.http.post<Order>(this.baseUrl + \"orders\", order);\n    }\n\n    authenticate(user: string, pass: string): Observable<boolean> {\n        return this.http.post<any>(this.baseUrl + \"login\", {\n            name: user, password: pass\n        }).pipe(map(response => {\n            this.auth_token = response.success ? response.token : null;\n            return response.success;\n        }));\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.http.post<Product>(this.baseUrl + \"products\",\n            product, this.getOptions());\n    }\n\n    updateProduct(product): Observable<Product> {\n        return this.http.put<Product>(`${this.baseUrl}products/${product.id}`,\n            product, this.getOptions());\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.http.delete<Product>(`${this.baseUrl}products/${id}`,\n            this.getOptions());\n    }\n\n    getOrders(): Observable<Order[]> {\n        return this.http.get<Order[]>(this.baseUrl + \"orders\", this.getOptions());\n    }\n\n    deleteOrder(id: number): Observable<Order> {\n        return this.http.delete<Order>(`${this.baseUrl}orders/${id}`,\n            this.getOptions());\n    }\n\n    updateOrder(order: Order): Observable<Order> {\n        return this.http.put<Order>(`${this.baseUrl}orders/${order.id}`,\n            order, this.getOptions());\n    }\n\n    private getOptions() {\n        return {\n            headers: new HttpHeaders({\n                \"Authorization\": `Bearer<${this.auth_token}>`\n            })\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\nimport { Order } from \"./order.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        console.log(JSON.stringify(order));\n        return from([order]);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/store/cartDetail.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col bg-dark text-white\">\n      <a class=\"navbar-brand\">SPORTS STORE</a>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"col mt-2\">\n      <h2 class=\"text-center\">Your Cart</h2>\n      <table class=\"table table-bordered table-striped p-2\">\n        <thead>\n          <tr>\n            <th>Quantity</th>\n            <th>Product</th>\n            <th class=\"text-right\">Price</th>\n            <th class=\"text-right\">Subtotal</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr *ngIf=\"cart.lines.length == 0\">\n            <td colspan=\"4\" class=\"text-center\">\n              Your cart is empty\n            </td>\n          </tr>\n          <tr *ngFor=\"let line of cart.lines\">\n            <td>\n              <input type=\"number\" class=\"form-control-sm\"\n                     style=\"width:5em\"\n                     [value]=\"line.quantity\"\n                     (change)=\"cart.updateQuantity(line.product,\n                                $event.target.value)\" />\n            </td>\n            <td>{{line.product.name}}</td>\n            <td class=\"text-right\">\n                {{line.product.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n            </td>\n            <td class=\"text-right\">\n                {{(line.lineTotal) | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n            </td>\n            <td class=\"text-center\">\n              <button class=\"btn btn-sm btn-danger\"\n                      (click)=\"cart.removeLine(line.product.id)\">\n                Remove\n              </button>\n            </td>\n          </tr>\n        </tbody>\n        <tfoot>\n          <tr>\n            <td colspan=\"3\" class=\"text-right\">Total:</td>\n            <td class=\"text-right\">\n              {{cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n            </td>\n          </tr>\n        </tfoot>\n      </table>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"col\">\n    <div class=\"text-center\">\n      <button class=\"btn btn-primary m-1\" routerLink=\"/store\">\n          Continue Shopping\n      </button>\n      <button class=\"btn btn-secondary m-1\" routerLink=\"/checkout\"\n              [disabled]=\"cart.lines.length == 0\">\n        Checkout\n      </button>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/store/cartDetail.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    templateUrl: \"cartDetail.component.html\"\n})\nexport class CartDetailComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/store/cartSummary.component.html",
    "content": "<div class=\"float-right\">\n  <small>\n    Your cart:\n    <span *ngIf=\"cart.itemCount > 0\">\n      {{ cart.itemCount }} item(s)\n      {{ cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n    </span>\n    <span *ngIf=\"cart.itemCount == 0\">\n      (empty)\n    </span>\n  </small>\n  <button class=\"btn btn-sm bg-dark text-white\"\n      [disabled]=\"cart.itemCount == 0\" routerLink=\"/cart\">\n    <i class=\"fa fa-shopping-cart\"></i>\n  </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/store/cartSummary.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    selector: \"cart-summary\",\n    templateUrl: \"cartSummary.component.html\"\n})\nexport class CartSummaryComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/store/checkout.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/store/checkout.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col bg-dark text-white\">\n      <a class=\"navbar-brand\">SPORTS STORE</a>\n    </div>\n  </div>\n</div>\n\n<div *ngIf=\"orderSent\" class=\"m-2 text-center\">\n  <h2>Thanks!</h2>\n  <p>Thanks for placing your order.</p>\n  <p>We'll ship your goods as soon as possible.</p>\n  <button class=\"btn btn-primary\" routerLink=\"/store\">Return to Store</button>\n</div>\n<form *ngIf=\"!orderSent\" #form=\"ngForm\" novalidate\n      (ngSubmit)=\"submitOrder(form)\" class=\"m-2\">\n  <div class=\"form-group\">\n    <label>Name</label>\n    <input class=\"form-control\" #name=\"ngModel\" name=\"name\"\n            [(ngModel)]=\"order.name\" required />\n    <span *ngIf=\"submitted && name.invalid\" class=\"text-danger\">\n      Please enter your name\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>Address</label>\n    <input class=\"form-control\" #address=\"ngModel\" name=\"address\"\n            [(ngModel)]=\"order.address\" required />\n    <span *ngIf=\"submitted && address.invalid\" class=\"text-danger\">\n      Please enter your address\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>City</label>\n    <input class=\"form-control\" #city=\"ngModel\" name=\"city\"\n            [(ngModel)]=\"order.city\" required />\n    <span *ngIf=\"submitted && city.invalid\" class=\"text-danger\">\n      Please enter your city\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>State</label>\n    <input class=\"form-control\" #state=\"ngModel\" name=\"state\"\n            [(ngModel)]=\"order.state\" required />\n    <span *ngIf=\"submitted && state.invalid\" class=\"text-danger\">\n      Please enter your state\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>Zip/Postal Code</label>\n    <input class=\"form-control\" #zip=\"ngModel\" name=\"zip\"\n            [(ngModel)]=\"order.zip\" required />\n    <span *ngIf=\"submitted && zip.invalid\" class=\"text-danger\">\n      Please enter your zip/postal code\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>Country</label>\n    <input class=\"form-control\" #country=\"ngModel\" name=\"country\"\n            [(ngModel)]=\"order.country\" required />\n    <span *ngIf=\"submitted && country.invalid\" class=\"text-danger\">\n      Please enter your country\n    </span>\n  </div>\n  <div class=\"text-center\">\n    <button class=\"btn btn-secondary m-1\" routerLink=\"/cart\">Back</button>\n    <button class=\"btn btn-primary m-1\" type=\"submit\">Complete Order</button>\n  </div>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/store/checkout.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { OrderRepository } from \"../model/order.repository\";\nimport { Order } from \"../model/order.model\";\n\n@Component({\n    templateUrl: \"checkout.component.html\",\n    styleUrls: [\"checkout.component.css\"]\n})\nexport class CheckoutComponent {\n    orderSent: boolean = false;\n    submitted: boolean = false;\n\n    constructor(public repository: OrderRepository,\n                public order: Order) {}\n\n    submitOrder(form: NgForm) {\n        this.submitted = true;\n        if (form.valid) {\n            this.repository.saveOrder(this.order).subscribe(order => {\n                this.order.clear();\n                this.orderSent = true;\n                this.submitted = false;\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n  Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n  selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n  constructor(private container: ViewContainerRef,\n      private template: TemplateRef<Object>) {\n  }\n\n  @Input(\"counterOf\")\n  counter: number;\n\n  ngOnChanges(changes: SimpleChanges) {\n      this.container.clear();\n      for (let i = 0; i < this.counter; i++) {\n          this.container.createEmbeddedView(this.template,\n              new CounterDirectiveContext(i + 1));\n      }\n  }\n}\n\nclass CounterDirectiveContext {\n  constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col bg-dark text-white\">\n      <a class=\"navbar-brand\">SPORTS STORE</a>\n      <cart-summary></cart-summary>\n    </div>\n  </div>\n  <div class=\"row\">\n\n    <div class=\"col-3 p-2\">\n      <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n        Home\n      </button>\n      <button *ngFor=\"let cat of categories\"\n          class=\"btn btn-outline-primary btn-block\"\n          [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n        {{cat}}\n      </button>\n      <button class=\"btn btn-block btn-danger mt-5\" routerLink=\"/admin\">\n        Admin\n      </button>\n    </div>\n\n    <div class=\"col-9 p-2\">\n      <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n        <h4>\n          {{product.name}}\n          <span class=\"badge badge-pill badge-primary float-right\">\n            {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n          </span>\n        </h4>\n        <div class=\"card-text bg-white p-1\">\n          {{product.description}}\n          <button class=\"btn btn-success btn-sm float-right\"\n                  (click)=\"addProductToCart(product)\">\n            Add To Cart\n          </button>\n        </div>\n      </div>\n\n      <div class=\"form-inline float-left mr-1\">\n        <select class=\"form-control\" [value]=\"productsPerPage\"\n                (change)=\"changePageSize($event.target.value)\">\n          <option value=\"3\">3 per Page</option>\n          <option value=\"4\">4 per Page</option>\n          <option value=\"6\">6 per Page</option>\n          <option value=\"8\">8 per Page</option>\n        </select>\n      </div>\n\n      <div class=\"btn-group float-right\">\n        <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n            class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n          {{page}}\n        </button>\n      </div>\n\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\nimport { Cart } from \"../model/cart.model\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository,\n        private cart: Cart,\n        private router: Router) { }\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    addProductToCart(product: Product) {\n        this.cart.addLine(product);\n        this.router.navigateByUrl(\"/cart\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\nimport { CartSummaryComponent } from \"./cartSummary.component\";\nimport { CartDetailComponent } from \"./cartDetail.component\";\nimport { CheckoutComponent } from \"./checkout.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule, RouterModule],\n    declarations: [StoreComponent, CounterDirective, CartSummaryComponent,\n        CartDetailComponent, CheckoutComponent],\n    exports: [StoreComponent, CartDetailComponent, CheckoutComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/app/storeFirst.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { StoreComponent } from \"./store/store.component\";\n\n@Injectable()\nexport class StoreFirstGuard {\n    private firstNavigation = true;\n\n    constructor(private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n        if (this.firstNavigation) {\n            this.firstNavigation = false;\n            if (route.component != StoreComponent) {\n                this.router.navigateByUrl(\"/\");\n                return false;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.log(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 09/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/.dockerignore",
    "content": "node_modules\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/Dockerfile",
    "content": "FROM node:12.15.0\n\nRUN mkdir -p /usr/src/sportsstore\n\nCOPY dist/SportsStore /usr/src/sportsstore/dist/SportsStore\nCOPY ssl /usr/src/sportsstore/ssl\n\nCOPY authMiddleware.js /usr/src/sportsstore/\nCOPY serverdata.json /usr/src/sportsstore/\nCOPY server.js /usr/src/sportsstore/server.js\nCOPY deploy-package.json /usr/src/sportsstore/package.json\n\nWORKDIR /usr/src/sportsstore\n\nRUN npm install\n\nEXPOSE 80\n\nCMD [\"node\", \"server.js\"]\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"SportsStore\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/SportsStore\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\",\n              \"src/manifest.webmanifest\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"node_modules/@fortawesome/fontawesome-free/css/all.min.css\"\n\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ],\n              \"serviceWorker\": true,\n              \"ngswConfigPath\": \"ngsw-config.json\"\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"SportsStore:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"SportsStore:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\",\n              \"src/manifest.webmanifest\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"SportsStore:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"SportsStore:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"SportsStore\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/authMiddleware.js",
    "content": "const jwt = require(\"jsonwebtoken\");\n\nconst APP_SECRET = \"myappsecret\";\nconst USERNAME = \"admin\";\nconst PASSWORD = \"secret\";\n\nconst mappings = {\n    get: [\"/api/orders\", \"/orders\"],\n    post: [\"/api/products\", \"/products\", \"/api/categories\", \"/categories\"]\n}\n\nfunction requiresAuth(method, url) {\n    return (mappings[method.toLowerCase()] || [])\n        .find(p => url.startsWith(p)) !== undefined;\n}\n\nmodule.exports = function (req, res, next) {\n    if (req.url.endsWith(\"/login\") && req.method == \"POST\") {\n        if (req.body && req.body.name == USERNAME && req.body.password == PASSWORD) {\n            let token = jwt.sign({ data: USERNAME, expiresIn: \"1h\" }, APP_SECRET);\n            res.json({ success: true, token: token });\n        } else {\n            res.json({ success: false });\n        }\n        res.end();\n        return;\n    } else if (requiresAuth(req.method, req.url)) {\n        let token = req.headers[\"authorization\"] || \"\";\n        if (token.startsWith(\"Bearer<\")) {\n            token = token.substring(7, token.length - 1);\n            try {\n                jwt.verify(token, APP_SECRET);\n                next();\n                return;\n            } catch (err) { }\n        }\n        res.statusCode = 401;\n        res.end();\n        return;\n    }\n    next();\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/data.js",
    "content": "module.exports = function () {\n  return {\n      products: [\n          { id: 1, name: \"Kayak\", category: \"Watersports\",\n              description: \"A boat for one person\", price: 275 },\n          { id: 2, name: \"Lifejacket\", category: \"Watersports\",\n              description: \"Protective and fashionable\", price: 48.95 },\n          { id: 3, name: \"Soccer Ball\", category: \"Soccer\",\n              description: \"FIFA-approved size and weight\", price: 19.50 },\n          { id: 4, name: \"Corner Flags\", category: \"Soccer\",\n              description: \"Give your playing field a professional touch\",\n              price: 34.95 },\n          { id: 5, name: \"Stadium\", category: \"Soccer\",\n              description: \"Flat-packed 35,000-seat stadium\", price: 79500 },\n          { id: 6, name: \"Thinking Cap\", category: \"Chess\",\n              description: \"Improve brain efficiency by 75%\", price: 16 },\n          { id: 7, name: \"Unsteady Chair\", category: \"Chess\",\n              description: \"Secretly give your opponent a disadvantage\",\n              price: 29.95 },\n          { id: 8, name: \"Human Chess Board\", category: \"Chess\",\n              description: \"A fun game for the family\", price: 75 },\n          { id: 9, name: \"Bling King\", category: \"Chess\",\n              description: \"Gold-plated, diamond-studded King\", price: 1200 }\n      ],\n      orders: []\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/deploy-package.json",
    "content": "{\n  \"dependencies\": {\n      \"@fortawesome/fontawesome-free\": \"5.12.1\",\n      \"bootstrap\": \"4.4.1\"\n  },\n\n  \"devDependencies\": {\n    \"json-server\": \"0.16.0\",\n    \"jsonwebtoken\": \"8.5.1\",\n    \"express\": \"4.17.1\",\n    \"https\": \"1.0.0\",\n    \"connect-history-api-fallback\": \"1.6.0\"\n  },\n\n  \"scripts\": {\n    \"start\":  \"node server.js\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/dist/SportsStore/3rdpartylicenses.txt",
    "content": "@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/forms\nMIT\n\n@angular/platform-browser\nMIT\n\n@angular/router\nMIT\n\n@angular/service-worker\nMIT\n\n@fortawesome/fontawesome-free\n(CC-BY-4.0 AND OFL-1.1 AND MIT)\nFont Awesome Free License\n-------------------------\n\nFont Awesome Free is free, open source, and GPL friendly. You can use it for\ncommercial projects, open source projects, or really almost whatever you want.\nFull Font Awesome Free license: https://fontawesome.com/license/free.\n\n# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)\nIn the Font Awesome Free download, the CC BY 4.0 license applies to all icons\npackaged as SVG and JS file types.\n\n# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)\nIn the Font Awesome Free download, the SIL OFL license applies to all icons\npackaged as web and desktop font files.\n\n# Code: MIT License (https://opensource.org/licenses/MIT)\nIn the Font Awesome Free download, the MIT license applies to all non-font and\nnon-icon files.\n\n# Attribution\nAttribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font\nAwesome Free files already contain embedded comments with sufficient\nattribution, so you shouldn't need to do anything additional when using these\nfiles normally.\n\nWe've kept attribution comments terse, so we ask that you do not actively work\nto remove them from files, especially code. They're a great way for folks to\nlearn about Font Awesome.\n\n# Brand Icons\nAll brand icons are trademarks of their respective owners. The use of these\ntrademarks does not indicate endorsement of the trademark holder by Font\nAwesome, nor vice versa. **Please do not use brand logos for any purpose except\nto represent the company, product, or service to which they refer.**\n\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncss-loader\nMIT\nCopyright JS Foundation and other contributors\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2020 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/dist/SportsStore/4.31e080808fcb56f7ac65.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{jkDv:function(t,e,n){\"use strict\";n.r(e),n.d(e,\"AdminModule\",function(){return k});var r=n(\"ofXK\"),b=n(\"3Pt+\"),o=n(\"tyNb\"),c=n(\"fXoL\"),i=n(\"hO0c\");function a(t,e){if(1&t&&(c.Kb(0,\"div\",11),c.ec(1),c.Jb()),2&t){const t=c.Tb();c.xb(1),c.gc(\" \",t.errorMessage,\"\\n\")}}let d=(()=>{class t{constructor(t,e){this.router=t,this.auth=e}authenticate(t){t.valid?this.auth.authenticate(this.username,this.password).subscribe(t=>{t&&this.router.navigateByUrl(\"/admin/main\"),this.errorMessage=\"Authentication Failed\"}):this.errorMessage=\"Form Data Invalid\"}}return t.\\u0275fac=function(e){return new(e||t)(c.Hb(o.b),c.Hb(i.a))},t.\\u0275cmp=c.Bb({type:t,selectors:[[\"ng-component\"]],decls:20,vars:3,consts:[[1,\"bg-info\",\"p-2\",\"text-center\",\"text-white\"],[\"class\",\"bg-danger mt-2 p-2 text-center text-white\",4,\"ngIf\"],[1,\"p-2\"],[\"novalidate\",\"\",3,\"ngSubmit\"],[\"form\",\"ngForm\"],[1,\"form-group\"],[\"name\",\"username\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"type\",\"password\",\"name\",\"password\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[1,\"text-center\"],[\"routerLink\",\"/\",1,\"btn\",\"btn-secondary\",\"m-1\"],[\"type\",\"submit\",1,\"btn\",\"btn-primary\",\"m-1\"],[1,\"bg-danger\",\"mt-2\",\"p-2\",\"text-center\",\"text-white\"]],template:function(t,e){if(1&t){const t=c.Lb();c.Kb(0,\"div\",0),c.Kb(1,\"h3\"),c.ec(2,\"SportsStore Admin\"),c.Jb(),c.Jb(),c.dc(3,a,2,1,\"div\",1),c.Kb(4,\"div\",2),c.Kb(5,\"form\",3,4),c.Rb(\"ngSubmit\",function(){c.ac(t);const n=c.Zb(6);return e.authenticate(n)}),c.Kb(7,\"div\",5),c.Kb(8,\"label\"),c.ec(9,\"Name\"),c.Jb(),c.Kb(10,\"input\",6),c.Rb(\"ngModelChange\",function(t){return e.username=t}),c.Jb(),c.Jb(),c.Kb(11,\"div\",5),c.Kb(12,\"label\"),c.ec(13,\"Password\"),c.Jb(),c.Kb(14,\"input\",7),c.Rb(\"ngModelChange\",function(t){return e.password=t}),c.Jb(),c.Jb(),c.Kb(15,\"div\",8),c.Kb(16,\"button\",9),c.ec(17,\"Go back\"),c.Jb(),c.Kb(18,\"button\",10),c.ec(19,\"Log In\"),c.Jb(),c.Jb(),c.Jb(),c.Jb()}2&t&&(c.xb(3),c.Wb(\"ngIf\",null!=e.errorMessage),c.xb(7),c.Wb(\"ngModel\",e.username),c.xb(4),c.Wb(\"ngModel\",e.password))},directives:[r.j,b.k,b.e,b.f,b.b,b.i,b.d,b.g,o.c],encapsulation:2}),t})(),s=(()=>{class t{constructor(t,e){this.auth=t,this.router=e}logout(){this.auth.clear(),this.router.navigateByUrl(\"/\")}}return t.\\u0275fac=function(e){return new(e||t)(c.Hb(i.a),c.Hb(o.b))},t.\\u0275cmp=c.Bb({type:t,selectors:[[\"ng-component\"]],decls:15,vars:0,consts:[[1,\"container-fluid\"],[1,\"row\"],[1,\"col\",\"bg-dark\",\"text-white\"],[1,\"navbar-brand\"],[1,\"row\",\"mt-2\"],[1,\"col-3\"],[\"routerLink\",\"/admin/main/products\",\"routerLinkActive\",\"active\",1,\"btn\",\"btn-outline-info\",\"btn-block\"],[\"routerLink\",\"/admin/main/orders\",\"routerLinkActive\",\"active\",1,\"btn\",\"btn-outline-info\",\"btn-block\"],[1,\"btn\",\"btn-outline-danger\",\"btn-block\",3,\"click\"],[1,\"col-9\"]],template:function(t,e){1&t&&(c.Kb(0,\"div\",0),c.Kb(1,\"div\",1),c.Kb(2,\"div\",2),c.Kb(3,\"a\",3),c.ec(4,\"SPORTS STORE\"),c.Jb(),c.Jb(),c.Jb(),c.Kb(5,\"div\",4),c.Kb(6,\"div\",5),c.Kb(7,\"button\",6),c.ec(8,\" Products \"),c.Jb(),c.Kb(9,\"button\",7),c.ec(10,\" Orders \"),c.Jb(),c.Kb(11,\"button\",8),c.Rb(\"click\",function(){return e.logout()}),c.ec(12,\" Logout \"),c.Jb(),c.Jb(),c.Kb(13,\"div\",9),c.Ib(14,\"router-outlet\"),c.Jb(),c.Jb(),c.Jb())},directives:[o.c,o.d,o.f],encapsulation:2}),t})(),u=(()=>{class t{constructor(t,e){this.router=t,this.auth=e}canActivate(t,e){return!!this.auth.authenticated||(this.router.navigateByUrl(\"/admin/auth\"),!1)}}return t.\\u0275fac=function(e){return new(e||t)(c.Ob(o.b),c.Ob(i.a))},t.\\u0275prov=c.Db({token:t,factory:t.\\u0275fac}),t})();var p=n(\"jU2X\");const l=function(t){return[\"/admin/main/products/edit\",t]};function g(t,e){if(1&t){const t=c.Lb();c.Kb(0,\"tr\"),c.Kb(1,\"td\"),c.ec(2),c.Jb(),c.Kb(3,\"td\"),c.ec(4),c.Jb(),c.Kb(5,\"td\"),c.ec(6),c.Jb(),c.Kb(7,\"td\"),c.ec(8),c.Ub(9,\"currency\"),c.Jb(),c.Kb(10,\"td\"),c.Kb(11,\"button\",3),c.ec(12,\" Edit \"),c.Jb(),c.Kb(13,\"button\",4),c.Rb(\"click\",function(){c.ac(t);const n=e.$implicit;return c.Tb().deleteProduct(n.id)}),c.ec(14,\" Delete \"),c.Jb(),c.Jb(),c.Jb()}if(2&t){const t=e.$implicit;c.xb(2),c.fc(t.id),c.xb(2),c.fc(t.name),c.xb(2),c.fc(t.category),c.xb(2),c.fc(c.Vb(9,5,t.price,\"USD\",\"symbol\",\"2.2-2\")),c.xb(3),c.Wb(\"routerLink\",c.Xb(10,l,t.id))}}let m=(()=>{class t{constructor(t){this.repository=t}getProducts(){return this.repository.getProducts()}deleteProduct(t){this.repository.deleteProduct(t)}}return t.\\u0275fac=function(e){return new(e||t)(c.Hb(p.a))},t.\\u0275cmp=c.Bb({type:t,selectors:[[\"ng-component\"]],decls:16,vars:1,consts:[[1,\"table\",\"table-sm\",\"table-striped\"],[4,\"ngFor\",\"ngForOf\"],[\"routerLink\",\"/admin/main/products/create\",1,\"btn\",\"btn-primary\"],[1,\"btn\",\"btn-sm\",\"btn-warning\",\"m-1\",3,\"routerLink\"],[1,\"btn\",\"btn-sm\",\"btn-danger\",3,\"click\"]],template:function(t,e){1&t&&(c.Kb(0,\"table\",0),c.Kb(1,\"thead\"),c.Kb(2,\"tr\"),c.Kb(3,\"th\"),c.ec(4,\"ID\"),c.Jb(),c.Kb(5,\"th\"),c.ec(6,\"Name\"),c.Jb(),c.Kb(7,\"th\"),c.ec(8,\"Category\"),c.Jb(),c.Kb(9,\"th\"),c.ec(10,\"Price\"),c.Jb(),c.Ib(11,\"th\"),c.Jb(),c.Jb(),c.Kb(12,\"tbody\"),c.dc(13,g,15,12,\"tr\",1),c.Jb(),c.Jb(),c.Kb(14,\"button\",2),c.ec(15,\" Create New Product\\n\"),c.Jb()),2&t&&(c.xb(13),c.Wb(\"ngForOf\",e.getProducts()))},directives:[r.i,o.c],pipes:[r.c],encapsulation:2}),t})();var h=n(\"4Sfc\");let f=(()=>{class t{constructor(t,e,n){this.repository=t,this.router=e,this.editing=!1,this.product=new h.a,this.editing=\"edit\"==n.snapshot.params.mode,this.editing&&Object.assign(this.product,t.getProduct(n.snapshot.params.id))}save(t){this.repository.saveProduct(this.product),this.router.navigateByUrl(\"/admin/main/products\")}}return t.\\u0275fac=function(e){return new(e||t)(c.Hb(p.a),c.Hb(o.b),c.Hb(o.a))},t.\\u0275cmp=c.Bb({type:t,selectors:[[\"ng-component\"]],decls:26,vars:12,consts:[[1,\"bg-primary\",\"p-2\",\"text-white\"],[\"novalidate\",\"\",3,\"ngSubmit\"],[\"form\",\"ngForm\"],[1,\"form-group\"],[\"name\",\"name\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"name\",\"category\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"name\",\"description\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"name\",\"price\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"type\",\"submit\",1,\"btn\",\"btn-primary\",\"m-1\"],[\"type\",\"reset\",\"routerLink\",\"/admin/main/products\",1,\"btn\",\"btn-secondary\"]],template:function(t,e){if(1&t){const t=c.Lb();c.Kb(0,\"div\",0),c.Kb(1,\"h5\"),c.ec(2),c.Jb(),c.Jb(),c.Kb(3,\"form\",1,2),c.Rb(\"ngSubmit\",function(){c.ac(t);const n=c.Zb(4);return e.save(n)}),c.Kb(5,\"div\",3),c.Kb(6,\"label\"),c.ec(7,\"Name\"),c.Jb(),c.Kb(8,\"input\",4),c.Rb(\"ngModelChange\",function(t){return e.product.name=t}),c.Jb(),c.Jb(),c.Kb(9,\"div\",3),c.Kb(10,\"label\"),c.ec(11,\"Category\"),c.Jb(),c.Kb(12,\"input\",5),c.Rb(\"ngModelChange\",function(t){return e.product.category=t}),c.Jb(),c.Jb(),c.Kb(13,\"div\",3),c.Kb(14,\"label\"),c.ec(15,\"Description\"),c.Jb(),c.Kb(16,\"textarea\",6),c.Rb(\"ngModelChange\",function(t){return e.product.description=t}),c.ec(17,\"        \"),c.Jb(),c.Jb(),c.Kb(18,\"div\",3),c.Kb(19,\"label\"),c.ec(20,\"Price\"),c.Jb(),c.Kb(21,\"input\",7),c.Rb(\"ngModelChange\",function(t){return e.product.price=t}),c.Jb(),c.Jb(),c.Kb(22,\"button\",8),c.ec(23),c.Jb(),c.Kb(24,\"button\",9),c.ec(25,\" Cancel \"),c.Jb(),c.Jb()}2&t&&(c.zb(\"bg-warning\",e.editing)(\"text-dark\",e.editing),c.xb(2),c.gc(\"\",e.editing?\"Edit\":\"Create\",\" Product\"),c.xb(6),c.Wb(\"ngModel\",e.product.name),c.xb(4),c.Wb(\"ngModel\",e.product.category),c.xb(4),c.Wb(\"ngModel\",e.product.description),c.xb(5),c.Wb(\"ngModel\",e.product.price),c.xb(1),c.zb(\"btn-warning\",e.editing),c.xb(1),c.gc(\" \",e.editing?\"Save\":\"Create\",\" \"))},directives:[b.k,b.e,b.f,b.b,b.d,b.g,o.c],encapsulation:2}),t})();var J=n(\"hf/X\");function K(t,e){1&t&&(c.Kb(0,\"tr\"),c.Kb(1,\"td\",7),c.ec(2,\"There are no orders\"),c.Jb(),c.Jb())}function v(t,e){if(1&t&&(c.Kb(0,\"tr\"),c.Ib(1,\"td\",4),c.Kb(2,\"td\"),c.ec(3),c.Jb(),c.Kb(4,\"td\"),c.ec(5),c.Jb(),c.Jb()),2&t){const t=e.$implicit;c.xb(3),c.fc(t.product.name),c.xb(2),c.fc(t.quantity)}}function y(t,e){if(1&t){const t=c.Lb();c.Kb(0,\"tr\"),c.Kb(1,\"td\"),c.ec(2),c.Jb(),c.Kb(3,\"td\"),c.ec(4),c.Jb(),c.Kb(5,\"th\"),c.ec(6,\"Product\"),c.Jb(),c.Kb(7,\"th\"),c.ec(8,\"Quantity\"),c.Jb(),c.Kb(9,\"td\"),c.Kb(10,\"button\",8),c.Rb(\"click\",function(){c.ac(t);const n=e.$implicit;return c.Tb().markShipped(n)}),c.ec(11,\" Ship \"),c.Jb(),c.Kb(12,\"button\",9),c.Rb(\"click\",function(){c.ac(t);const n=e.$implicit;return c.Tb().delete(n.id)}),c.ec(13,\" Delete \"),c.Jb(),c.Jb(),c.Jb(),c.dc(14,v,6,2,\"tr\",10)}if(2&t){const t=e.$implicit;c.xb(2),c.fc(t.name),c.xb(2),c.fc(t.zip),c.xb(10),c.Wb(\"ngForOf\",t.cart.lines)}}let x=o.e.forChild([{path:\"auth\",component:d},{path:\"main\",component:s,canActivate:[u],children:[{path:\"products/:mode/:id\",component:f},{path:\"products/:mode\",component:f},{path:\"products\",component:m},{path:\"orders\",component:(()=>{class t{constructor(t){this.repository=t,this.includeShipped=!1}getOrders(){return this.repository.getOrders().filter(t=>this.includeShipped||!t.shipped)}markShipped(t){t.shipped=!0,this.repository.updateOrder(t)}delete(t){this.repository.deleteOrder(t)}}return t.\\u0275fac=function(e){return new(e||t)(c.Hb(J.a))},t.\\u0275cmp=c.Bb({type:t,selectors:[[\"ng-component\"]],decls:17,vars:3,consts:[[1,\"form-check\"],[1,\"form-check-label\"],[\"type\",\"checkbox\",1,\"form-check-input\",3,\"ngModel\",\"ngModelChange\"],[1,\"table\",\"table-sm\"],[\"colspan\",\"2\"],[4,\"ngIf\"],[\"ngFor\",\"\",3,\"ngForOf\"],[\"colspan\",\"5\"],[1,\"btn\",\"btn-warning\",\"m-1\",3,\"click\"],[1,\"btn\",\"btn-danger\",3,\"click\"],[4,\"ngFor\",\"ngForOf\"]],template:function(t,e){1&t&&(c.Kb(0,\"div\",0),c.Kb(1,\"label\",1),c.Kb(2,\"input\",2),c.Rb(\"ngModelChange\",function(t){return e.includeShipped=t}),c.Jb(),c.ec(3,\" Display Shipped Orders \"),c.Jb(),c.Jb(),c.Kb(4,\"table\",3),c.Kb(5,\"thead\"),c.Kb(6,\"tr\"),c.Kb(7,\"th\"),c.ec(8,\"Name\"),c.Jb(),c.Kb(9,\"th\"),c.ec(10,\"Zip\"),c.Jb(),c.Kb(11,\"th\",4),c.ec(12,\"Cart\"),c.Jb(),c.Ib(13,\"th\"),c.Jb(),c.Jb(),c.Kb(14,\"tbody\"),c.dc(15,K,3,0,\"tr\",5),c.dc(16,y,15,3,\"ng-template\",6),c.Jb(),c.Jb()),2&t&&(c.xb(2),c.Wb(\"ngModel\",e.includeShipped),c.xb(13),c.Wb(\"ngIf\",0==e.getOrders().length),c.xb(1),c.Wb(\"ngForOf\",e.getOrders()))},directives:[b.a,b.d,b.g,r.j,r.i],encapsulation:2}),t})()},{path:\"**\",redirectTo:\"products\"}]},{path:\"**\",redirectTo:\"auth\"}]),k=(()=>{class t{}return t.\\u0275mod=c.Fb({type:t}),t.\\u0275inj=c.Eb({factory:function(e){return new(e||t)},providers:[u],imports:[[r.b,b.c,x]]}),t})()}}]);"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/dist/SportsStore/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n  <link rel=\"manifest\" href=\"manifest.webmanifest\">\n  <meta name=\"theme-color\" content=\"#1976d2\">\n<link rel=\"stylesheet\" href=\"styles.e64f6c6459bd207237f5.css\"></head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n  <noscript>Please enable JavaScript to continue using this application.</noscript>\n<script src=\"runtime.f31414a4bbd349807336.js\" defer></script><script src=\"polyfills.bf99d438b005d57b2b31.js\" defer></script><script src=\"main.51b6248b65201a3b0124.js\" defer></script></body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/dist/SportsStore/main.51b6248b65201a3b0124.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(t,e,n){t.exports=n(\"zUnb\")},\"0EUg\":function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return s});var r=n(\"bHdf\");function s(){return Object(r.a)(1)}},\"2QA8\":function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return r});const r=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())()},\"2fFW\":function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return s});let r=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else r&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");r=t},get useDeprecatedSynchronousErrorHandling(){return r}}},\"3Pt+\":function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return p}),n.d(e,\"b\",function(){return m}),n.d(e,\"c\",function(){return kt}),n.d(e,\"d\",function(){return V}),n.d(e,\"e\",function(){return L}),n.d(e,\"f\",function(){return _t}),n.d(e,\"g\",function(){return Ot}),n.d(e,\"h\",function(){return J}),n.d(e,\"i\",function(){return Et}),n.d(e,\"j\",function(){return X}),n.d(e,\"k\",function(){return St});var r=n(\"fXoL\"),s=n(\"ofXK\"),i=n(\"HDdC\"),o=n(\"DH7j\"),a=n(\"lJxs\"),c=n(\"XoHu\"),u=n(\"Cfvw\");function l(t,e){return new i.a(n=>{const r=t.length;if(0===r)return void n.complete();const s=new Array(r);let i=0,o=0;for(let a=0;a<r;a++){const c=Object(u.a)(t[a]);let l=!1;n.add(c.subscribe({next:t=>{l||(l=!0,o++),s[a]=t},error:t=>n.error(t),complete:()=>{i++,i!==r&&l||(o===r&&n.next(e?e.reduce((t,e,n)=>(t[e]=s[n],t),{}):s),n.complete())}}))}})}const h=new r.q(\"NgValueAccessor\"),d={provide:h,useExisting:Object(r.S)(()=>p),multi:!0};let p=(()=>{class t{constructor(t,e){this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,\"checked\",t)}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(r.D),r.Hb(r.l))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"input\",\"type\",\"checkbox\",\"formControlName\",\"\"],[\"input\",\"type\",\"checkbox\",\"formControl\",\"\"],[\"input\",\"type\",\"checkbox\",\"ngModel\",\"\"]],hostBindings:function(t,e){1&t&&r.Rb(\"change\",function(t){return e.onChange(t.target.checked)})(\"blur\",function(){return e.onTouched()})},features:[r.wb([d])]}),t})();const f={provide:h,useExisting:Object(r.S)(()=>m),multi:!0},g=new r.q(\"CompositionEventMode\");let m=(()=>{class t{constructor(t,e,n){this._renderer=t,this._elementRef=e,this._compositionMode=n,this.onChange=t=>{},this.onTouched=()=>{},this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function(){const t=Object(s.q)()?Object(s.q)().getUserAgent():\"\";return/android (\\d+)/.test(t.toLowerCase())}())}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,\"value\",null==t?\"\":t)}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",t)}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(r.D),r.Hb(r.l),r.Hb(g,8))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"input\",\"formControlName\",\"\",3,\"type\",\"checkbox\"],[\"textarea\",\"formControlName\",\"\"],[\"input\",\"formControl\",\"\",3,\"type\",\"checkbox\"],[\"textarea\",\"formControl\",\"\"],[\"input\",\"ngModel\",\"\",3,\"type\",\"checkbox\"],[\"textarea\",\"ngModel\",\"\"],[\"\",\"ngDefaultControl\",\"\"]],hostBindings:function(t,e){1&t&&r.Rb(\"input\",function(t){return e._handleInput(t.target.value)})(\"blur\",function(){return e.onTouched()})(\"compositionstart\",function(){return e._compositionStart()})(\"compositionend\",function(t){return e._compositionEnd(t.target.value)})},features:[r.wb([f])]}),t})();function b(t){return null==t||0===t.length}function y(t){return null!=t&&\"number\"==typeof t.length}const v=new r.q(\"NgValidators\"),_=new r.q(\"NgAsyncValidators\"),w=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class C{static min(t){return e=>{if(b(e.value)||b(t))return null;const n=parseFloat(e.value);return!isNaN(n)&&n<t?{min:{min:t,actual:e.value}}:null}}static max(t){return e=>{if(b(e.value)||b(t))return null;const n=parseFloat(e.value);return!isNaN(n)&&n>t?{max:{max:t,actual:e.value}}:null}}static required(t){return b(t.value)?{required:!0}:null}static requiredTrue(t){return!0===t.value?null:{required:!0}}static email(t){return b(t.value)||w.test(t.value)?null:{email:!0}}static minLength(t){return e=>b(e.value)||!y(e.value)?null:e.value.length<t?{minlength:{requiredLength:t,actualLength:e.value.length}}:null}static maxLength(t){return e=>y(e.value)&&e.value.length>t?{maxlength:{requiredLength:t,actualLength:e.value.length}}:null}static pattern(t){if(!t)return C.nullValidator;let e,n;return\"string\"==typeof t?(n=\"\",\"^\"!==t.charAt(0)&&(n+=\"^\"),n+=t,\"$\"!==t.charAt(t.length-1)&&(n+=\"$\"),e=new RegExp(n)):(n=t.toString(),e=t),t=>{if(b(t.value))return null;const r=t.value;return e.test(r)?null:{pattern:{requiredPattern:n,actualValue:r}}}}static nullValidator(t){return null}static compose(t){if(!t)return null;const e=t.filter(O);return 0==e.length?null:function(t){return x(E(t,e))}}static composeAsync(t){if(!t)return null;const e=t.filter(O);return 0==e.length?null:function(t){return function(...t){if(1===t.length){const e=t[0];if(Object(o.a)(e))return l(e,null);if(Object(c.a)(e)&&Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);return l(t.map(t=>e[t]),t)}}if(\"function\"==typeof t[t.length-1]){const e=t.pop();return l(t=1===t.length&&Object(o.a)(t[0])?t[0]:t,null).pipe(Object(a.a)(t=>e(...t)))}return l(t,null)}(E(t,e).map(S)).pipe(Object(a.a)(x))}}}function O(t){return null!=t}function S(t){const e=Object(r.pb)(t)?Object(u.a)(t):t;return Object(r.ob)(e),e}function x(t){let e={};return t.forEach(t=>{e=null!=t?Object.assign(Object.assign({},e),t):e}),0===Object.keys(e).length?null:e}function E(t,e){return e.map(e=>e(t))}function T(t){return t.map(t=>function(t){return!t.validate}(t)?t:e=>t.validate(e))}function k(t){return null!=t?C.compose(T(t)):null}function A(t){return null!=t?C.composeAsync(T(t)):null}function j(t,e){return null===t?[e]:Array.isArray(t)?[...t,e]:[t,e]}let P=(()=>{class t{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=k(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=A(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t){this.control&&this.control.reset(t)}hasError(t,e){return!!this.control&&this.control.hasError(t,e)}getError(t,e){return this.control?this.control.getError(t,e):null}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275dir=r.Cb({type:t}),t})(),R=(()=>{class t extends P{get formDirective(){return null}get path(){return null}}return t.\\u0275fac=function(e){return I(e||t)},t.\\u0275dir=r.Cb({type:t,features:[r.ub]}),t})();const I=r.Mb(R);class D extends P{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class N{constructor(t){this._cd=t}get ngClassUntouched(){return!!this._cd.control&&this._cd.control.untouched}get ngClassTouched(){return!!this._cd.control&&this._cd.control.touched}get ngClassPristine(){return!!this._cd.control&&this._cd.control.pristine}get ngClassDirty(){return!!this._cd.control&&this._cd.control.dirty}get ngClassValid(){return!!this._cd.control&&this._cd.control.valid}get ngClassInvalid(){return!!this._cd.control&&this._cd.control.invalid}get ngClassPending(){return!!this._cd.control&&this._cd.control.pending}}let V=(()=>{class t extends N{constructor(t){super(t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(D,2))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"\",\"formControlName\",\"\"],[\"\",\"ngModel\",\"\"],[\"\",\"formControl\",\"\"]],hostVars:14,hostBindings:function(t,e){2&t&&r.zb(\"ng-untouched\",e.ngClassUntouched)(\"ng-touched\",e.ngClassTouched)(\"ng-pristine\",e.ngClassPristine)(\"ng-dirty\",e.ngClassDirty)(\"ng-valid\",e.ngClassValid)(\"ng-invalid\",e.ngClassInvalid)(\"ng-pending\",e.ngClassPending)},features:[r.ub]}),t})(),L=(()=>{class t extends N{constructor(t){super(t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(R,2))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"\",\"formGroupName\",\"\"],[\"\",\"formArrayName\",\"\"],[\"\",\"ngModelGroup\",\"\"],[\"\",\"formGroup\",\"\"],[\"form\",3,\"ngNoForm\",\"\"],[\"\",\"ngForm\",\"\"]],hostVars:14,hostBindings:function(t,e){2&t&&r.zb(\"ng-untouched\",e.ngClassUntouched)(\"ng-touched\",e.ngClassTouched)(\"ng-pristine\",e.ngClassPristine)(\"ng-dirty\",e.ngClassDirty)(\"ng-valid\",e.ngClassValid)(\"ng-invalid\",e.ngClassInvalid)(\"ng-pending\",e.ngClassPending)},features:[r.ub]}),t})();const M={provide:h,useExisting:Object(r.S)(()=>U),multi:!0};let U=(()=>{class t{constructor(t,e){this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,\"value\",null==t?\"\":t)}registerOnChange(t){this.onChange=e=>{t(\"\"==e?null:parseFloat(e))}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(r.D),r.Hb(r.l))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"input\",\"type\",\"number\",\"formControlName\",\"\"],[\"input\",\"type\",\"number\",\"formControl\",\"\"],[\"input\",\"type\",\"number\",\"ngModel\",\"\"]],hostBindings:function(t,e){1&t&&r.Rb(\"input\",function(t){return e.onChange(t.target.value)})(\"blur\",function(){return e.onTouched()})},features:[r.wb([M])]}),t})();const H={provide:h,useExisting:Object(r.S)(()=>$),multi:!0};let F=(()=>{class t{constructor(){this._accessors=[]}add(t,e){this._accessors.push([t,e])}remove(t){for(let e=this._accessors.length-1;e>=0;--e)if(this._accessors[e][1]===t)return void this._accessors.splice(e,1)}select(t){this._accessors.forEach(e=>{this._isSameGroup(e,t)&&e[1]!==t&&e[1].fireUncheck(t.value)})}_isSameGroup(t,e){return!!t[0].control&&t[0]._parent===e._control._parent&&t[1].name===e.name}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})(),$=(()=>{class t{constructor(t,e,n,r){this._renderer=t,this._elementRef=e,this._registry=n,this._injector=r,this.onChange=()=>{},this.onTouched=()=>{}}ngOnInit(){this._control=this._injector.get(D),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(t){this._state=t===this.value,this._renderer.setProperty(this._elementRef.nativeElement,\"checked\",this._state)}registerOnChange(t){this._fn=t,this.onChange=()=>{t(this.value),this._registry.select(this)}}fireUncheck(t){this.writeValue(t)}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",t)}_checkName(){!this.name&&this.formControlName&&(this.name=this.formControlName)}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(r.D),r.Hb(r.l),r.Hb(F),r.Hb(r.r))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"input\",\"type\",\"radio\",\"formControlName\",\"\"],[\"input\",\"type\",\"radio\",\"formControl\",\"\"],[\"input\",\"type\",\"radio\",\"ngModel\",\"\"]],hostBindings:function(t,e){1&t&&r.Rb(\"change\",function(){return e.onChange()})(\"blur\",function(){return e.onTouched()})},inputs:{name:\"name\",formControlName:\"formControlName\",value:\"value\"},features:[r.wb([H])]}),t})();const q={provide:h,useExisting:Object(r.S)(()=>z),multi:!0};let z=(()=>{class t{constructor(t,e){this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,\"value\",parseFloat(t))}registerOnChange(t){this.onChange=e=>{t(\"\"==e?null:parseFloat(e))}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(r.D),r.Hb(r.l))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"input\",\"type\",\"range\",\"formControlName\",\"\"],[\"input\",\"type\",\"range\",\"formControl\",\"\"],[\"input\",\"type\",\"range\",\"ngModel\",\"\"]],hostBindings:function(t,e){1&t&&r.Rb(\"change\",function(t){return e.onChange(t.target.value)})(\"input\",function(t){return e.onChange(t.target.value)})(\"blur\",function(){return e.onTouched()})},features:[r.wb([q])]}),t})();const B={provide:h,useExisting:Object(r.S)(()=>W),multi:!0};function K(t,e){return null==t?\"\"+e:(e&&\"object\"==typeof e&&(e=\"Object\"),`${t}: ${e}`.slice(0,50))}let W=(()=>{class t{constructor(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=t=>{},this.onTouched=()=>{},this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){this.value=t;const e=this._getOptionId(t);null==e&&this._renderer.setProperty(this._elementRef.nativeElement,\"selectedIndex\",-1);const n=K(e,t);this._renderer.setProperty(this._elementRef.nativeElement,\"value\",n)}registerOnChange(t){this.onChange=e=>{this.value=this._getOptionValue(e),t(this.value)}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",t)}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const e of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(e),t))return e;return null}_getOptionValue(t){const e=function(t){return t.split(\":\")[0]}(t);return this._optionMap.has(e)?this._optionMap.get(e):t}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(r.D),r.Hb(r.l))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"select\",\"formControlName\",\"\",3,\"multiple\",\"\"],[\"select\",\"formControl\",\"\",3,\"multiple\",\"\"],[\"select\",\"ngModel\",\"\",3,\"multiple\",\"\"]],hostBindings:function(t,e){1&t&&r.Rb(\"change\",function(t){return e.onChange(t.target.value)})(\"blur\",function(){return e.onTouched()})},inputs:{compareWith:\"compareWith\"},features:[r.wb([B])]}),t})(),J=(()=>{class t{constructor(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(K(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,\"value\",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(r.l),r.Hb(r.D),r.Hb(W,9))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"option\"]],inputs:{ngValue:\"ngValue\",value:\"value\"}}),t})();const G={provide:h,useExisting:Object(r.S)(()=>Q),multi:!0};function Z(t,e){return null==t?\"\"+e:(\"string\"==typeof e&&(e=`'${e}'`),e&&\"object\"==typeof e&&(e=\"Object\"),`${t}: ${e}`.slice(0,50))}let Q=(()=>{class t{constructor(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=t=>{},this.onTouched=()=>{},this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){let e;if(this.value=t,Array.isArray(t)){const n=t.map(t=>this._getOptionId(t));e=(t,e)=>{t._setSelected(n.indexOf(e.toString())>-1)}}else e=(t,e)=>{t._setSelected(!1)};this._optionMap.forEach(e)}registerOnChange(t){this.onChange=e=>{const n=[];if(void 0!==e.selectedOptions){const t=e.selectedOptions;for(let e=0;e<t.length;e++){const r=t.item(e),s=this._getOptionValue(r.value);n.push(s)}}else{const t=e.options;for(let e=0;e<t.length;e++){const r=t.item(e);if(r.selected){const t=this._getOptionValue(r.value);n.push(t)}}}this.value=n,t(n)}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,\"disabled\",t)}_registerOption(t){const e=(this._idCounter++).toString();return this._optionMap.set(e,t),e}_getOptionId(t){for(const e of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(e)._value,t))return e;return null}_getOptionValue(t){const e=function(t){return t.split(\":\")[0]}(t);return this._optionMap.has(e)?this._optionMap.get(e)._value:t}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(r.D),r.Hb(r.l))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"select\",\"multiple\",\"\",\"formControlName\",\"\"],[\"select\",\"multiple\",\"\",\"formControl\",\"\"],[\"select\",\"multiple\",\"\",\"ngModel\",\"\"]],hostBindings:function(t,e){1&t&&r.Rb(\"change\",function(t){return e.onChange(t.target)})(\"blur\",function(){return e.onTouched()})},inputs:{compareWith:\"compareWith\"},features:[r.wb([G])]}),t})(),X=(()=>{class t{constructor(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(Z(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(Z(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,\"value\",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,\"selected\",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(r.l),r.Hb(r.D),r.Hb(Q,9))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"option\"]],inputs:{ngValue:\"ngValue\",value:\"value\"}}),t})();function Y(t,e){et(t,e,!0),e.valueAccessor.writeValue(t.value),function(t,e){e.valueAccessor.registerOnChange(n=>{t._pendingValue=n,t._pendingChange=!0,t._pendingDirty=!0,\"change\"===t.updateOn&&nt(t,e)})}(t,e),function(t,e){const n=(t,n)=>{e.valueAccessor.writeValue(t),n&&e.viewToModelUpdate(t)};t.registerOnChange(n),e._registerOnDestroy(()=>{t._unregisterOnChange(n)})}(t,e),function(t,e){e.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,\"blur\"===t.updateOn&&t._pendingChange&&nt(t,e),\"submit\"!==t.updateOn&&t.markAsTouched()})}(t,e),function(t,e){if(e.valueAccessor.setDisabledState){const n=t=>{e.valueAccessor.setDisabledState(t)};t.registerOnDisabledChange(n),e._registerOnDestroy(()=>{t._unregisterOnDisabledChange(n)})}}(t,e)}function tt(t,e){t.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(e)})}function et(t,e,n){const r=function(t){return t._rawValidators}(t);null!==e.validator?t.setValidators(j(r,e.validator)):\"function\"==typeof r&&t.setValidators([r]);const s=function(t){return t._rawAsyncValidators}(t);if(null!==e.asyncValidator?t.setAsyncValidators(j(s,e.asyncValidator)):\"function\"==typeof s&&t.setAsyncValidators([s]),n){const n=()=>t.updateValueAndValidity();tt(e._rawValidators,n),tt(e._rawAsyncValidators,n)}}function nt(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}const rt=[p,z,U,W,Q,$];function st(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const it=\"VALID\",ot=\"INVALID\",at=\"PENDING\",ct=\"DISABLED\";function ut(t){return(pt(t)?t.validators:t)||null}function lt(t){return Array.isArray(t)?k(t):t||null}function ht(t,e){return(pt(e)?e.asyncValidators:t)||null}function dt(t){return Array.isArray(t)?A(t):t||null}function pt(t){return null!=t&&!Array.isArray(t)&&\"object\"==typeof t}class ft{constructor(t,e){this._hasOwnPendingAsyncValidator=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._rawValidators=t,this._rawAsyncValidators=e,this._composedValidatorFn=lt(this._rawValidators),this._composedAsyncValidatorFn=dt(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get valid(){return this.status===it}get invalid(){return this.status===ot}get pending(){return this.status==at}get disabled(){return this.status===ct}get enabled(){return this.status!==ct}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:\"change\"}setValidators(t){this._rawValidators=t,this._composedValidatorFn=lt(t)}setAsyncValidators(t){this._rawAsyncValidators=t,this._composedAsyncValidatorFn=dt(t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(t=>t.markAllAsTouched())}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(t=>{t.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=at,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=ct,this.errors=null,this._forEachChild(e=>{e.disable(Object.assign(Object.assign({},t),{onlySelf:!0}))}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object.assign(Object.assign({},t),{skipPristineCheck:e})),this._onDisabledChange.forEach(t=>t(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=it,this._forEachChild(e=>{e.enable(Object.assign(Object.assign({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(Object.assign(Object.assign({},t),{skipPristineCheck:e})),this._onDisabledChange.forEach(t=>t(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),this.status!==it&&this.status!==at||this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?ct:it}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=at,this._hasOwnPendingAsyncValidator=!0;const e=S(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(e=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(e,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)}get(t){return function(t,e,n){if(null==e)return null;if(Array.isArray(e)||(e=e.split(\".\")),Array.isArray(e)&&0===e.length)return null;let r=t;return e.forEach(t=>{r=r instanceof mt?r.controls.hasOwnProperty(t)?r.controls[t]:null:r instanceof bt&&r.at(t)||null}),r}(this,t)}getError(t,e){const n=e?this.get(e):this;return n&&n.errors?n.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new r.n,this.statusChanges=new r.n}_calculateStatus(){return this._allControlsDisabled()?ct:this.errors?ot:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(at)?at:this._anyControlsHaveStatus(ot)?ot:it}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_isBoxedValue(t){return\"object\"==typeof t&&null!==t&&2===Object.keys(t).length&&\"value\"in t&&\"disabled\"in t}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){pt(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}}class gt extends ft{constructor(t=null,e,n){super(ut(e),ht(n,e)),this._onChange=[],this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!n})}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(t=>t(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=null,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){st(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){st(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return!(\"submit\"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(t){this._isBoxedValue(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}}class mt extends ft{constructor(t,e,n){super(ut(e),ht(n,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!n})}registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e){this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()}removeControl(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity(),this._onCollectionChange()}setControl(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){this._checkAllValuesPresent(t),Object.keys(t).forEach(n=>{this._throwIfControlMissing(n),this.controls[n].setValue(t[n],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){Object.keys(t).forEach(n=>{this.controls[n]&&this.controls[n].patchValue(t[n],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}reset(t={},e={}){this._forEachChild((n,r)=>{n.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,n)=>(t[n]=e instanceof gt?e.value:e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(t,e)=>!!e._syncPendingControls()||t);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_throwIfControlMissing(t){if(!Object.keys(this.controls).length)throw new Error(\"\\n        There are no form controls registered with this group yet. If you're using ngModel,\\n        you may want to check next tick (e.g. use setTimeout).\\n      \");if(!this.controls[t])throw new Error(`Cannot find form control with name: ${t}.`)}_forEachChild(t){Object.keys(this.controls).forEach(e=>t(this.controls[e],e))}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const e of Object.keys(this.controls)){const n=this.controls[e];if(this.contains(e)&&t(n))return!0}return!1}_reduceValue(){return this._reduceChildren({},(t,e,n)=>((e.enabled||this.disabled)&&(t[n]=e.value),t))}_reduceChildren(t,e){let n=t;return this._forEachChild((t,r)=>{n=e(n,t,r)}),n}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_checkAllValuesPresent(t){this._forEachChild((e,n)=>{if(void 0===t[n])throw new Error(`Must supply a value for form control with name: '${n}'.`)})}}class bt extends ft{constructor(t,e,n){super(ut(e),ht(n,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!n})}at(t){return this.controls[t]}push(t){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()}insert(t,e){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity()}removeAt(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),this.controls.splice(t,1),this.updateValueAndValidity()}setControl(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity(),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){this._checkAllValuesPresent(t),t.forEach((t,n)=>{this._throwIfControlMissing(n),this.at(n).setValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t.forEach((t,n)=>{this.at(n)&&this.at(n).patchValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}reset(t=[],e={}){this._forEachChild((n,r)=>{n.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(t=>t instanceof gt?t.value:t.getRawValue())}clear(){this.controls.length<1||(this._forEachChild(t=>t._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity())}_syncPendingControls(){let t=this.controls.reduce((t,e)=>!!e._syncPendingControls()||t,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_throwIfControlMissing(t){if(!this.controls.length)throw new Error(\"\\n        There are no form controls registered with this array yet. If you're using ngModel,\\n        you may want to check next tick (e.g. use setTimeout).\\n      \");if(!this.at(t))throw new Error(\"Cannot find form control at index \"+t)}_forEachChild(t){this.controls.forEach((e,n)=>{t(e,n)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(e=>e.enabled&&t(e))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_checkAllValuesPresent(t){this._forEachChild((e,n)=>{if(void 0===t[n])throw new Error(`Must supply a value for form control at index: ${n}.`)})}_allControlsDisabled(){for(const t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}}const yt={provide:R,useExisting:Object(r.S)(()=>_t)},vt=(()=>Promise.resolve(null))();let _t=(()=>{class t extends R{constructor(t,e){super(),this.submitted=!1,this._directives=[],this.ngSubmit=new r.n,this.form=new mt({},k(t),A(e))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(t){vt.then(()=>{const e=this._findContainer(t.path);t.control=e.registerControl(t.name,t.control),Y(t.control,t),t.control.updateValueAndValidity({emitEvent:!1}),this._directives.push(t)})}getControl(t){return this.form.get(t.path)}removeControl(t){vt.then(()=>{const e=this._findContainer(t.path);e&&e.removeControl(t.name),st(this._directives,t)})}addFormGroup(t){vt.then(()=>{const e=this._findContainer(t.path),n=new mt({});(function(t,e){et(t,e,!1)})(n,t),e.registerControl(t.name,n),n.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(t){vt.then(()=>{const e=this._findContainer(t.path);e&&e.removeControl(t.name)})}getFormGroup(t){return this.form.get(t.path)}updateModel(t,e){vt.then(()=>{this.form.get(t.path).setValue(e)})}setValue(t){this.control.setValue(t)}onSubmit(t){return this.submitted=!0,e=this._directives,this.form._syncPendingControls(),e.forEach(t=>{const e=t.control;\"submit\"===e.updateOn&&e._pendingChange&&(t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1)}),this.ngSubmit.emit(t),!1;var e}onReset(){this.resetForm()}resetForm(t){this.form.reset(t),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(t){return t.pop(),t.length?this.form.get(t):this.form}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(v,10),r.Hb(_,10))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"form\",3,\"ngNoForm\",\"\",3,\"formGroup\",\"\"],[\"ng-form\"],[\"\",\"ngForm\",\"\"]],hostBindings:function(t,e){1&t&&r.Rb(\"submit\",function(t){return e.onSubmit(t)})(\"reset\",function(){return e.onReset()})},inputs:{options:[\"ngFormOptions\",\"options\"]},outputs:{ngSubmit:\"ngSubmit\"},exportAs:[\"ngForm\"],features:[r.wb([yt]),r.ub]}),t})();const wt={provide:D,useExisting:Object(r.S)(()=>Ot)},Ct=(()=>Promise.resolve(null))();let Ot=(()=>{class t extends D{constructor(t,e,n,s){super(),this.control=new gt,this._registered=!1,this.update=new r.n,this._parent=t,this._setValidators(e),this._setAsyncValidators(n),this.valueAccessor=function(t,e){if(!e)return null;Array.isArray(e);let n=void 0,r=void 0,s=void 0;return e.forEach(t=>{var e;t.constructor===m?n=t:(e=t,rt.some(t=>e.constructor===t)?r=t:s=t)}),s||r||n||null}(0,s)}ngOnChanges(t){this._checkForErrors(),this._registered||this._setUpControl(),\"isDisabled\"in t&&this._updateDisabled(t),function(t,e){if(!t.hasOwnProperty(\"model\"))return!1;const n=t.model;return!!n.isFirstChange()||!Object.is(e,n.currentValue)}(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._parent?[...this._parent.path,this.name]:[this.name]}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Y(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(t){Ct.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1})})}_updateDisabled(t){const e=t.isDisabled.currentValue,n=\"\"===e||e&&\"false\"!==e;Ct.then(()=>{n&&!this.control.disabled?this.control.disable():!n&&this.control.disabled&&this.control.enable()})}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(R,9),r.Hb(v,10),r.Hb(_,10),r.Hb(h,10))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"\",\"ngModel\",\"\",3,\"formControlName\",\"\",3,\"formControl\",\"\"]],inputs:{name:\"name\",isDisabled:[\"disabled\",\"isDisabled\"],model:[\"ngModel\",\"model\"],options:[\"ngModelOptions\",\"options\"]},outputs:{update:\"ngModelChange\"},exportAs:[\"ngModel\"],features:[r.wb([wt]),r.ub,r.vb]}),t})(),St=(()=>{class t{}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275dir=r.Cb({type:t,selectors:[[\"form\",3,\"ngNoForm\",\"\",3,\"ngNativeValidate\",\"\"]],hostAttrs:[\"novalidate\",\"\"]}),t})();const xt={provide:v,useExisting:Object(r.S)(()=>Et),multi:!0};let Et=(()=>{class t{constructor(){this._required=!1}get required(){return this._required}set required(t){this._required=null!=t&&!1!==t&&\"\"+t!=\"false\",this._onChange&&this._onChange()}validate(t){return this.required?C.required(t):null}registerOnValidatorChange(t){this._onChange=t}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275dir=r.Cb({type:t,selectors:[[\"\",\"required\",\"\",\"formControlName\",\"\",3,\"type\",\"checkbox\"],[\"\",\"required\",\"\",\"formControl\",\"\",3,\"type\",\"checkbox\"],[\"\",\"required\",\"\",\"ngModel\",\"\",3,\"type\",\"checkbox\"]],hostVars:1,hostBindings:function(t,e){2&t&&r.yb(\"required\",e.required?\"\":null)},inputs:{required:\"required\"},features:[r.wb([xt])]}),t})(),Tt=(()=>{class t{}return t.\\u0275mod=r.Fb({type:t}),t.\\u0275inj=r.Eb({factory:function(e){return new(e||t)}}),t})(),kt=(()=>{class t{}return t.\\u0275mod=r.Fb({type:t}),t.\\u0275inj=r.Eb({factory:function(e){return new(e||t)},providers:[F],imports:[Tt]}),t})()},\"4I5i\":function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return r});const r=(()=>{function t(){return Error.call(this),this.message=\"argument out of range\",this.name=\"ArgumentOutOfRangeError\",this}return t.prototype=Object.create(Error.prototype),t})()},\"4Sfc\":function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return r});class r{constructor(t,e,n,r,s){this.id=t,this.name=e,this.category=n,this.description=r,this.price=s}}},\"5+tZ\":function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return o});var r=n(\"lJxs\"),s=n(\"Cfvw\"),i=n(\"zx2A\");function o(t,e,n=Number.POSITIVE_INFINITY){return\"function\"==typeof e?i=>i.pipe(o((n,i)=>Object(s.a)(t(n,i)).pipe(Object(r.a)((t,r)=>e(n,t,i,r))),n)):(\"number\"==typeof e&&(n=e),e=>e.lift(new a(t,n)))}class a{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new c(t,this.project,this.concurrent))}}class c extends i.b{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e)}_innerSub(t){const e=new i.a(this),n=this.destination;n.add(e);const r=Object(i.c)(t,e);r!==e&&n.add(r)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t){this.destination.next(t)}notifyComplete(){const t=this.buffer;this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}},\"7o/Q\":function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return u});var r=n(\"n6bG\"),s=n(\"gRHU\"),i=n(\"quSY\"),o=n(\"2QA8\"),a=n(\"2fFW\"),c=n(\"NJ4a\");class u extends i.a{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=s.a;break;case 1:if(!t){this.destination=s.a;break}if(\"object\"==typeof t){t instanceof u?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new l(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new l(this,t,e,n)}}[o.a](){return this}static create(t,e,n){const r=new u(t,e,n);return r.syncErrorThrowable=!1,r}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class l extends u{constructor(t,e,n,i){let o;super(),this._parentSubscriber=t;let a=this;Object(r.a)(e)?o=e:e&&(o=e.next,n=e.error,i=e.complete,e!==s.a&&(a=Object.create(e),Object(r.a)(a.unsubscribe)&&this.add(a.unsubscribe.bind(a)),a.unsubscribe=this.unsubscribe.bind(this))),this._context=a,this._next=o,this._error=n,this._complete=i}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;a.a.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:n}=a.a;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):Object(c.a)(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;Object(c.a)(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);a.a.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),a.a.useDeprecatedSynchronousErrorHandling)throw n;Object(c.a)(n)}}__tryOrSetError(t,e,n){if(!a.a.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{e.call(this._context,n)}catch(r){return a.a.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=r,t.syncErrorThrown=!0,!0):(Object(c.a)(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}},\"9ppp\":function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return r});const r=(()=>{function t(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return t.prototype=Object.create(Error.prototype),t})()},Cfvw:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return h});var r=n(\"HDdC\"),s=n(\"SeVD\"),i=n(\"quSY\"),o=n(\"kJWO\"),a=n(\"jZKg\"),c=n(\"Lhse\"),u=n(\"c2HN\"),l=n(\"I55L\");function h(t,e){return e?function(t,e){if(null!=t){if(function(t){return t&&\"function\"==typeof t[o.a]}(t))return function(t,e){return new r.a(n=>{const r=new i.a;return r.add(e.schedule(()=>{const s=t[o.a]();r.add(s.subscribe({next(t){r.add(e.schedule(()=>n.next(t)))},error(t){r.add(e.schedule(()=>n.error(t)))},complete(){r.add(e.schedule(()=>n.complete()))}}))})),r})}(t,e);if(Object(u.a)(t))return function(t,e){return new r.a(n=>{const r=new i.a;return r.add(e.schedule(()=>t.then(t=>{r.add(e.schedule(()=>{n.next(t),r.add(e.schedule(()=>n.complete()))}))},t=>{r.add(e.schedule(()=>n.error(t)))}))),r})}(t,e);if(Object(l.a)(t))return Object(a.a)(t,e);if(function(t){return t&&\"function\"==typeof t[c.a]}(t)||\"string\"==typeof t)return function(t,e){if(!t)throw new Error(\"Iterable cannot be null\");return new r.a(n=>{const r=new i.a;let s;return r.add(()=>{s&&\"function\"==typeof s.return&&s.return()}),r.add(e.schedule(()=>{s=t[c.a](),r.add(e.schedule(function(){if(n.closed)return;let t,e;try{const n=s.next();t=n.value,e=n.done}catch(r){return void n.error(r)}e?n.complete():(n.next(t),this.schedule())}))})),r})}(t,e)}throw new TypeError((null!==t&&typeof t||t)+\" is not observable\")}(t,e):t instanceof r.a?t:new r.a(Object(s.a)(t))}},DH7j:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return r});const r=(()=>Array.isArray||(t=>t&&\"number\"==typeof t.length))()},DZdm:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return o});var r=n(\"lJxs\"),s=n(\"tk/3\"),i=n(\"fXoL\");let o=(()=>{class t{constructor(t){this.http=t,this.baseUrl=\"/api/\"}getProducts(){return this.http.get(this.baseUrl+\"products\")}saveOrder(t){return this.http.post(this.baseUrl+\"orders\",t)}authenticate(t,e){return this.http.post(this.baseUrl+\"login\",{name:t,password:e}).pipe(Object(r.a)(t=>(this.auth_token=t.success?t.token:null,t.success)))}saveProduct(t){return this.http.post(this.baseUrl+\"products\",t,this.getOptions())}updateProduct(t){return this.http.put(`${this.baseUrl}products/${t.id}`,t,this.getOptions())}deleteProduct(t){return this.http.delete(`${this.baseUrl}products/${t}`,this.getOptions())}getOrders(){return this.http.get(this.baseUrl+\"orders\",this.getOptions())}deleteOrder(t){return this.http.delete(`${this.baseUrl}orders/${t}`,this.getOptions())}updateOrder(t){return this.http.put(`${this.baseUrl}orders/${t.id}`,t,this.getOptions())}getOptions(){return{headers:new s.c({Authorization:`Bearer<${this.auth_token}>`})}}}return t.\\u0275fac=function(e){return new(e||t)(i.Ob(s.a))},t.\\u0275prov=i.Db({token:t,factory:t.\\u0275fac}),t})()},EY2u:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return s}),n.d(e,\"b\",function(){return i});var r=n(\"HDdC\");const s=new r.a(t=>t.complete());function i(t){return t?function(t){return new r.a(e=>t.schedule(()=>e.complete()))}(t):s}},GyhO:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return i});var r=n(\"LRne\"),s=n(\"0EUg\");function i(...t){return Object(s.a)()(Object(r.a)(...t))}},HDdC:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return u});var r=n(\"7o/Q\"),s=n(\"2QA8\"),i=n(\"gRHU\"),o=n(\"kJWO\"),a=n(\"SpAZ\"),c=n(\"2fFW\");let u=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:o}=this,a=function(t,e,n){if(t){if(t instanceof r.a)return t;if(t[s.a])return t[s.a]()}return t||e||n?new r.a(t,e,n):new r.a(i.a)}(t,e,n);if(a.add(o?o.call(a,this.source):this.source||c.a.useDeprecatedSynchronousErrorHandling&&!a.syncErrorThrowable?this._subscribe(a):this._trySubscribe(a)),c.a.useDeprecatedSynchronousErrorHandling&&a.syncErrorThrowable&&(a.syncErrorThrowable=!1,a.syncErrorThrown))throw a.syncErrorValue;return a}_trySubscribe(t){try{return this._subscribe(t)}catch(e){c.a.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){const{closed:e,destination:n,isStopped:s}=t;if(e||s)return!1;t=n&&n instanceof r.a?n:null}return!0}(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=l(e))((e,n)=>{let r;r=this.subscribe(e=>{try{t(e)}catch(s){n(s),r&&r.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[o.a](){return this}pipe(...t){return 0===t.length?this:(0===(e=t).length?a.a:1===e.length?e[0]:function(t){return e.reduce((t,e)=>e(t),t)})(this);var e}toPromise(t){return new(t=l(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function l(t){if(t||(t=c.a.Promise||Promise),!t)throw new Error(\"no Promise impl found\");return t}},I55L:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return r});const r=t=>t&&\"number\"==typeof t.length&&\"function\"!=typeof t},IzEk:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return o});var r=n(\"7o/Q\"),s=n(\"4I5i\"),i=n(\"EY2u\");function o(t){return e=>0===t?Object(i.b)():e.lift(new a(t))}class a{constructor(t){if(this.total=t,this.total<0)throw new s.a}call(t,e){return e.subscribe(new c(t,this.total))}}class c extends r.a{constructor(t,e){super(t),this.total=e,this.count=0}_next(t){const e=this.total,n=++this.count;n<=e&&(this.destination.next(t),n===e&&(this.destination.complete(),this.unsubscribe()))}}},KqfI:function(t,e,n){\"use strict\";function r(){}n.d(e,\"a\",function(){return r})},LRne:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return o});var r=n(\"z+Ro\"),s=n(\"yCtX\"),i=n(\"jZKg\");function o(...t){let e=t[t.length-1];return Object(r.a)(e)?(t.pop(),Object(i.a)(t,e)):Object(s.a)(t)}},Lhse:function(t,e,n){\"use strict\";function r(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}n.d(e,\"a\",function(){return s});const s=r()},NJ4a:function(t,e,n){\"use strict\";function r(t){setTimeout(()=>{throw t},0)}n.d(e,\"a\",function(){return r})},NXyV:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return o});var r=n(\"HDdC\"),s=n(\"Cfvw\"),i=n(\"EY2u\");function o(t){return new r.a(e=>{let n;try{n=t()}catch(r){return void e.error(r)}return(n?Object(s.a)(n):Object(i.b)()).subscribe(e)})}},SeVD:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return l});var r=n(\"ngJS\"),s=n(\"NJ4a\"),i=n(\"Lhse\"),o=n(\"kJWO\"),a=n(\"I55L\"),c=n(\"c2HN\"),u=n(\"XoHu\");const l=t=>{if(t&&\"function\"==typeof t[o.a])return l=t,t=>{const e=l[o.a]();if(\"function\"!=typeof e.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return e.subscribe(t)};if(Object(a.a)(t))return Object(r.a)(t);if(Object(c.a)(t))return n=t,t=>(n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,s.a),t);if(t&&\"function\"==typeof t[i.a])return e=t,t=>{const n=e[i.a]();for(;;){let e;try{e=n.next()}catch(r){return t.error(r),t}if(e.done){t.complete();break}if(t.next(e.value),t.closed)break}return\"function\"==typeof n.return&&t.add(()=>{n.return&&n.return()}),t};{const e=Object(u.a)(t)?\"an invalid object\":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`)}var e,n,l}},SpAZ:function(t,e,n){\"use strict\";function r(t){return t}n.d(e,\"a\",function(){return r})},VRyK:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return a});var r=n(\"HDdC\"),s=n(\"z+Ro\"),i=n(\"bHdf\"),o=n(\"yCtX\");function a(...t){let e=Number.POSITIVE_INFINITY,n=null,a=t[t.length-1];return Object(s.a)(a)?(n=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(e=t.pop())):\"number\"==typeof a&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof r.a?t[0]:Object(i.a)(e)(Object(o.a)(t,n))}},XNiG:function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return u}),n.d(e,\"a\",function(){return l});var r=n(\"HDdC\"),s=n(\"7o/Q\"),i=n(\"quSY\"),o=n(\"9ppp\");class a extends i.a{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}var c=n(\"2QA8\");class u extends s.a{constructor(t){super(t),this.destination=t}}let l=(()=>{class t extends r.a{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[c.a](){return new u(this)}lift(t){const e=new h(this,this);return e.operator=t,e}next(t){if(this.closed)throw new o.a;if(!this.isStopped){const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].next(t)}}error(t){if(this.closed)throw new o.a;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].error(t);this.observers.length=0}complete(){if(this.closed)throw new o.a;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let r=0;r<e;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new o.a;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new o.a;return this.hasError?(t.error(this.thrownError),i.a.EMPTY):this.isStopped?(t.complete(),i.a.EMPTY):(this.observers.push(t),new a(this,t))}asObservable(){const t=new r.a;return t.source=this,t}}return t.create=(t,e)=>new h(t,e),t})();class h extends l{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):i.a.EMPTY}}},XoHu:function(t,e,n){\"use strict\";function r(t){return null!==t&&\"object\"==typeof t}n.d(e,\"a\",function(){return r})},bHdf:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return i});var r=n(\"5+tZ\"),s=n(\"SpAZ\");function i(t=Number.POSITIVE_INFINITY){return Object(r.a)(s.a,t)}},bOdf:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return s});var r=n(\"5+tZ\");function s(t,e){return Object(r.a)(t,e,1)}},c2HN:function(t,e,n){\"use strict\";function r(t){return!!t&&\"function\"!=typeof t.subscribe&&\"function\"==typeof t.then}n.d(e,\"a\",function(){return r})},eIep:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return o});var r=n(\"lJxs\"),s=n(\"Cfvw\"),i=n(\"zx2A\");function o(t,e){return\"function\"==typeof e?n=>n.pipe(o((n,i)=>Object(s.a)(t(n,i)).pipe(Object(r.a)((t,r)=>e(n,t,i,r))))):e=>e.lift(new a(t))}class a{constructor(t){this.project=t}call(t,e){return e.subscribe(new c(t,this.project))}}class c extends i.b{constructor(t,e){super(t),this.project=e,this.index=0}_next(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this._innerSub(e)}_innerSub(t){const e=this.innerSubscription;e&&e.unsubscribe();const n=new i.a(this),r=this.destination;r.add(n),this.innerSubscription=Object(i.c)(t,n),this.innerSubscription!==n&&r.add(this.innerSubscription)}_complete(){const{innerSubscription:t}=this;t&&!t.closed||super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=void 0}notifyComplete(){this.innerSubscription=void 0,this.isStopped&&super._complete()}notifyNext(t){this.destination.next(t)}}},fXoL:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return P}),n.d(e,\"b\",function(){return ic}),n.d(e,\"c\",function(){return tc}),n.d(e,\"d\",function(){return Xa}),n.d(e,\"e\",function(){return Ya}),n.d(e,\"f\",function(){return Gc}),n.d(e,\"g\",function(){return Uc}),n.d(e,\"h\",function(){return ra}),n.d(e,\"i\",function(){return mc}),n.d(e,\"j\",function(){return jo}),n.d(e,\"k\",function(){return cc}),n.d(e,\"l\",function(){return Do}),n.d(e,\"m\",function(){return _r}),n.d(e,\"n\",function(){return Na}),n.d(e,\"o\",function(){return ti}),n.d(e,\"p\",function(){return p}),n.d(e,\"q\",function(){return j}),n.d(e,\"r\",function(){return mi}),n.d(e,\"s\",function(){return Qo}),n.d(e,\"t\",function(){return Xo}),n.d(e,\"u\",function(){return ac}),n.d(e,\"v\",function(){return fa}),n.d(e,\"w\",function(){return Fc}),n.d(e,\"x\",function(){return pa}),n.d(e,\"y\",function(){return Dc}),n.d(e,\"z\",function(){return vc}),n.d(e,\"A\",function(){return f}),n.d(e,\"B\",function(){return sc}),n.d(e,\"C\",function(){return rc}),n.d(e,\"D\",function(){return Vo}),n.d(e,\"E\",function(){return No}),n.d(e,\"F\",function(){return Sr}),n.d(e,\"G\",function(){return Mo}),n.d(e,\"H\",function(){return On}),n.d(e,\"I\",function(){return m}),n.d(e,\"J\",function(){return zc}),n.d(e,\"K\",function(){return ua}),n.d(e,\"L\",function(){return Tc}),n.d(e,\"M\",function(){return $}),n.d(e,\"N\",function(){return Uo}),n.d(e,\"O\",function(){return ma}),n.d(e,\"P\",function(){return Z}),n.d(e,\"Q\",function(){return Nc}),n.d(e,\"R\",function(){return Xe}),n.d(e,\"S\",function(){return U}),n.d(e,\"T\",function(){return Qe}),n.d(e,\"U\",function(){return Wc}),n.d(e,\"V\",function(){return jc}),n.d(e,\"W\",function(){return oc}),n.d(e,\"X\",function(){return ni}),n.d(e,\"Y\",function(){return mo}),n.d(e,\"Z\",function(){return wn}),n.d(e,\"ab\",function(){return rn}),n.d(e,\"bb\",function(){return $e}),n.d(e,\"cb\",function(){return ze}),n.d(e,\"db\",function(){return Je}),n.d(e,\"eb\",function(){return Ke}),n.d(e,\"fb\",function(){return Be}),n.d(e,\"gb\",function(){return We}),n.d(e,\"hb\",function(){return ho}),n.d(e,\"ib\",function(){return Kc}),n.d(e,\"jb\",function(){return po}),n.d(e,\"kb\",function(){return fo}),n.d(e,\"lb\",function(){return qe}),n.d(e,\"mb\",function(){return L}),n.d(e,\"nb\",function(){return Ei}),n.d(e,\"ob\",function(){return qi}),n.d(e,\"pb\",function(){return $i}),n.d(e,\"qb\",function(){return lo}),n.d(e,\"rb\",function(){return Dt}),n.d(e,\"sb\",function(){return b}),n.d(e,\"tb\",function(){return Fe}),n.d(e,\"ub\",function(){return yi}),n.d(e,\"vb\",function(){return An}),n.d(e,\"wb\",function(){return To}),n.d(e,\"xb\",function(){return os}),n.d(e,\"yb\",function(){return Pi}),n.d(e,\"zb\",function(){return Qi}),n.d(e,\"Ab\",function(){return Ja}),n.d(e,\"Bb\",function(){return at}),n.d(e,\"Cb\",function(){return ft}),n.d(e,\"Db\",function(){return w}),n.d(e,\"Eb\",function(){return C}),n.d(e,\"Fb\",function(){return ht}),n.d(e,\"Gb\",function(){return gt}),n.d(e,\"Hb\",function(){return Di}),n.d(e,\"Ib\",function(){return Hi}),n.d(e,\"Jb\",function(){return Ui}),n.d(e,\"Kb\",function(){return Mi}),n.d(e,\"Lb\",function(){return Fi}),n.d(e,\"Mb\",function(){return mr}),n.d(e,\"Nb\",function(){return oo}),n.d(e,\"Ob\",function(){return Pt}),n.d(e,\"Pb\",function(){return Ni}),n.d(e,\"Qb\",function(){return Qa}),n.d(e,\"Rb\",function(){return zi}),n.d(e,\"Sb\",function(){return Ga}),n.d(e,\"Tb\",function(){return Wi}),n.d(e,\"Ub\",function(){return Ia}),n.d(e,\"Vb\",function(){return Da}),n.d(e,\"Wb\",function(){return Vi}),n.d(e,\"Xb\",function(){return Pa}),n.d(e,\"Yb\",function(){return Wa}),n.d(e,\"Zb\",function(){return Ii}),n.d(e,\"ac\",function(){return ae}),n.d(e,\"bc\",function(){return Sn}),n.d(e,\"cc\",function(){return dt}),n.d(e,\"dc\",function(){return Ri}),n.d(e,\"ec\",function(){return no}),n.d(e,\"fc\",function(){return ro}),n.d(e,\"gc\",function(){return so}),n.d(e,\"hc\",function(){return io});var r=n(\"XNiG\"),s=n(\"quSY\"),i=n(\"HDdC\"),o=n(\"VRyK\"),a=n(\"oB13\"),c=n(\"x+ZX\");function u(){return new r.a}function l(t){return{toString:t}.toString()}const h=\"__parameters__\";function d(t,e,n){return l(()=>{const r=function(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}(e);function s(...t){if(this instanceof s)return r.apply(this,t),this;const e=new s(...t);return n.annotation=e,n;function n(t,n,r){const s=t.hasOwnProperty(h)?t[h]:Object.defineProperty(t,h,{value:[]})[h];for(;s.length<=r;)s.push(null);return(s[r]=s[r]||[]).push(e),t}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s})}const p=d(\"Inject\",t=>({token:t})),f=d(\"Optional\"),g=d(\"Self\"),m=d(\"SkipSelf\");function b(t){if(\"string\"==typeof t)return t;if(Array.isArray(t))return\"[\"+t.map(b).join(\", \")+\"]\";if(null==t)return\"\"+t;if(t.overriddenName)return\"\"+t.overriddenName;if(t.name)return\"\"+t.name;const e=t.toString();if(null==e)return\"\"+e;const n=e.indexOf(\"\\n\");return-1===n?e:e.substring(0,n)}function y(t,e){return null==t||\"\"===t?null===e?\"\":e:null==e||\"\"===e?t:t+\" \"+e}function v(t){for(let e in t)if(t[e]===v)return e;throw Error(\"Could not find renamed property on target object.\")}function _(t,e){for(const n in e)e.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(t[n]=e[n])}function w(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function C(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function O(t){return S(t,E)||S(t,k)}function S(t,e){return t.hasOwnProperty(e)?t[e]:null}function x(t){return t&&(t.hasOwnProperty(T)||t.hasOwnProperty(A))?t[T]:null}const E=v({\"\\u0275prov\":v}),T=v({\"\\u0275inj\":v}),k=v({ngInjectableDef:v}),A=v({ngInjectorDef:v});class j{constructor(t,e){this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\\u0275prov=w({token:this,providedIn:e.providedIn||\"root\",factory:e.factory}))}toString(){return\"InjectionToken \"+this._desc}}const P=new j(\"AnalyzeForEntryComponents\");var R=function(t){return t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\",t}({});const I=\"undefined\"!=typeof globalThis&&globalThis,D=\"undefined\"!=typeof window&&window,N=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,V=\"undefined\"!=typeof global&&global,L=I||V||D||N,M=v({__forward_ref__:v});function U(t){return t.__forward_ref__=U,t.toString=function(){return b(this())},t}function H(t){return F(t)?t():t}function F(t){return\"function\"==typeof t&&t.hasOwnProperty(M)&&t.__forward_ref__===U}const $=Function;function q(t,e){void 0===e&&(e=t);for(let n=0;n<t.length;n++){let r=t[n];Array.isArray(r)?(e===t&&(e=t.slice(0,n)),q(r,e)):e!==t&&e.push(r)}return e}function z(t,e){t.forEach(t=>Array.isArray(t)?z(t,e):e(t))}function B(t,e,n){e>=t.length?t.push(n):t.splice(e,0,n)}function K(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function W(t,e,n){let r=G(t,e);return r>=0?t[1|r]=n:(r=~r,function(t,e,n,r){let s=t.length;if(s==e)t.push(n,r);else if(1===s)t.push(r,t[0]),t[0]=n;else{for(s--,t.push(t[s-1],t[s]);s>e;)t[s]=t[s-2],s--;t[e]=n,t[e+1]=r}}(t,r,e,n)),r}function J(t,e){const n=G(t,e);if(n>=0)return t[1|n]}function G(t,e){return function(t,e,n){let r=0,s=t.length>>1;for(;s!==r;){const n=r+(s-r>>1),i=t[n<<1];if(e===i)return n<<1;i>e?s=n:r=n+1}return~(s<<1)}(t,e)}var Z=function(t){return t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\",t}({});const Q={},X=[],Y=v({\"\\u0275cmp\":v}),tt=v({\"\\u0275dir\":v}),et=v({\"\\u0275pipe\":v}),nt=v({\"\\u0275mod\":v}),rt=v({\"\\u0275loc\":v}),st=v({\"\\u0275fac\":v}),it=v({__NG_ELEMENT_ID__:v});let ot=0;function at(t){return l(()=>{const e={},n={type:t.type,providersResolver:null,decls:t.decls,vars:t.vars,factory:null,template:t.template||null,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:e,inputs:null,outputs:null,exportAs:t.exportAs||null,onPush:t.changeDetection===R.OnPush,directiveDefs:null,pipeDefs:null,selectors:t.selectors||X,viewQuery:t.viewQuery||null,features:t.features||null,data:t.data||{},encapsulation:t.encapsulation||Z.Emulated,id:\"c\",styles:t.styles||X,_:null,setInput:null,schemas:t.schemas||null,tView:null},r=t.directives,s=t.features,i=t.pipes;return n.id+=ot++,n.inputs=pt(t.inputs,e),n.outputs=pt(t.outputs),s&&s.forEach(t=>t(n)),n.directiveDefs=r?()=>(\"function\"==typeof r?r():r).map(ct):null,n.pipeDefs=i?()=>(\"function\"==typeof i?i():i).map(ut):null,n})}function ct(t){return mt(t)||function(t){return t[tt]||null}(t)}function ut(t){return function(t){return t[et]||null}(t)}const lt={};function ht(t){const e={type:t.type,bootstrap:t.bootstrap||X,declarations:t.declarations||X,imports:t.imports||X,exports:t.exports||X,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&l(()=>{lt[t.id]=t.type}),e}function dt(t,e){return l(()=>{const n=bt(t,!0);n.declarations=e.declarations||X,n.imports=e.imports||X,n.exports=e.exports||X})}function pt(t,e){if(null==t)return Q;const n={};for(const r in t)if(t.hasOwnProperty(r)){let s=t[r],i=s;Array.isArray(s)&&(i=s[1],s=s[0]),n[s]=r,e&&(e[s]=i)}return n}const ft=at;function gt(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,onDestroy:t.type.prototype.ngOnDestroy||null}}function mt(t){return t[Y]||null}function bt(t,e){const n=t[nt]||null;if(!n&&!0===e)throw new Error(`Type ${b(t)} does not have '\\u0275mod' property.`);return n}function yt(t){return\"string\"==typeof t?t:null==t?\"\":\"\"+t}function vt(t){return\"function\"==typeof t?t.name||t.toString():\"object\"==typeof t&&null!=t&&\"function\"==typeof t.type?t.type.name||t.type.toString():yt(t)}var _t=function(t){return t[t.Default=0]=\"Default\",t[t.Host=1]=\"Host\",t[t.Self=2]=\"Self\",t[t.SkipSelf=4]=\"SkipSelf\",t[t.Optional=8]=\"Optional\",t}({});let wt;function Ct(t){const e=wt;return wt=t,e}function Ot(t,e,n){const r=O(t);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&_t.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${b(t)}]`)}const St={},xt=/\\n/gm,Et=\"__source\",Tt=v({provide:String,useValue:v});let kt=void 0;function At(t){const e=kt;return kt=t,e}function jt(t,e=_t.Default){if(void 0===kt)throw new Error(\"inject() must be called from an injection context\");return null===kt?Ot(t,void 0,e):kt.get(t,e&_t.Optional?null:void 0,e)}function Pt(t,e=_t.Default){return(wt||jt)(H(t),e)}function Rt(t){const e=[];for(let n=0;n<t.length;n++){const r=H(t[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let t=void 0,n=_t.Default;for(let e=0;e<r.length;e++){const s=r[e];s instanceof f||\"Optional\"===s.ngMetadataName||s===f?n|=_t.Optional:s instanceof m||\"SkipSelf\"===s.ngMetadataName||s===m?n|=_t.SkipSelf:s instanceof g||\"Self\"===s.ngMetadataName||s===g?n|=_t.Self:t=s instanceof p||s===p?s.token:s}e.push(Pt(t,n))}else e.push(Pt(r))}return e}let It=void 0;function Dt(t){It=t}const Nt=20,Vt=10;function Lt(t){return Array.isArray(t)&&\"object\"==typeof t[1]}function Mt(t){return Array.isArray(t)&&!0===t[1]}function Ut(t){return 0!=(8&t.flags)}function Ht(t){return 2==(2&t.flags)}function Ft(t){return 1==(1&t.flags)}function $t(t){return null!==t.template}function qt(t){return!!t.listen}const zt={createRenderer:(t,e)=>void 0!==It?It:\"undefined\"!=typeof document?document:void 0};function Bt(t){for(;Array.isArray(t);)t=t[0];return t}function Kt(t,e){return Bt(e[t])}function Wt(t,e){return Bt(e[t.index])}function Jt(t,e){return t.data[e]}function Gt(t,e){return t[e]}function Zt(t,e){const n=e[t];return Lt(n)?n:n[0]}function Qt(t){const e=function(t){return t.__ngContext__||null}(t);return e?Array.isArray(e)?e:e.lView:null}function Xt(t){return 4==(4&t[2])}function Yt(t){return 128==(128&t[2])}function te(t,e){return null==e?null:t[e]}function ee(t){t[18]=0}function ne(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const re={lFrame:Ee(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function se(){return re.bindingsEnabled}function ie(){return re.lFrame.lView}function oe(){return re.lFrame.tView}function ae(t){re.lFrame.contextLView=t}function ce(){let t=ue();for(;null!==t&&64===t.type;)t=t.parent;return t}function ue(){return re.lFrame.currentTNode}function le(t,e){const n=re.lFrame;n.currentTNode=t,n.isParent=e}function he(){return re.lFrame.isParent}function de(){return re.isInCheckNoChangesMode}function pe(t){re.isInCheckNoChangesMode=t}function fe(){const t=re.lFrame;let e=t.bindingRootIndex;return-1===e&&(e=t.bindingRootIndex=t.tView.bindingStartIndex),e}function ge(){return re.lFrame.bindingIndex}function me(){return re.lFrame.bindingIndex++}function be(t){const e=re.lFrame,n=e.bindingIndex;return e.bindingIndex=e.bindingIndex+t,n}function ye(t,e){const n=re.lFrame;n.bindingIndex=n.bindingRootIndex=t,ve(e)}function ve(t){re.lFrame.currentDirectiveIndex=t}function _e(){return re.lFrame.currentQueryIndex}function we(t){re.lFrame.currentQueryIndex=t}function Ce(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function Oe(t,e,n){if(n&_t.SkipSelf){let r=e,s=t;for(;r=r.parent,!(null!==r||n&_t.Host||(r=Ce(s),null===r)||(s=s[15],10&r.type)););if(null===r)return!1;e=r,t=s}const r=re.lFrame=xe();return r.currentTNode=e,r.lView=t,!0}function Se(t){const e=xe(),n=t[1];re.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function xe(){const t=re.lFrame,e=null===t?null:t.child;return null===e?Ee(t):e}function Ee(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function Te(){const t=re.lFrame;return re.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const ke=Te;function Ae(){const t=Te();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function je(){return re.lFrame.selectedIndex}function Pe(t){re.lFrame.selectedIndex=t}function Re(){const t=re.lFrame;return Jt(t.tView,t.selectedIndex)}let Ie;function De(t){var e;return(null===(e=function(){if(void 0===Ie&&(Ie=null,L.trustedTypes))try{Ie=L.trustedTypes.createPolicy(\"angular\",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch(e){}return Ie}())||void 0===e?void 0:e.createHTML(t))||t}class Ne{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return\"SafeValue must use [property]=binding: \"+this.changingThisBreaksApplicationSecurity+\" (see http://g.co/ng/security#xss)\"}}class Ve extends Ne{getTypeName(){return\"HTML\"}}class Le extends Ne{getTypeName(){return\"Style\"}}class Me extends Ne{getTypeName(){return\"Script\"}}class Ue extends Ne{getTypeName(){return\"URL\"}}class He extends Ne{getTypeName(){return\"ResourceURL\"}}function Fe(t){return t instanceof Ne?t.changingThisBreaksApplicationSecurity:t}function $e(t,e){const n=qe(t);if(null!=n&&n!==e){if(\"ResourceURL\"===n&&\"URL\"===e)return!0;throw new Error(`Required a safe ${e}, got a ${n} (see http://g.co/ng/security#xss)`)}return n===e}function qe(t){return t instanceof Ne&&t.getTypeName()||null}function ze(t){return new Ve(t)}function Be(t){return new Le(t)}function Ke(t){return new Me(t)}function We(t){return new Ue(t)}function Je(t){return new He(t)}let Ge=!0,Ze=!1;function Qe(){return Ze=!0,Ge}function Xe(){if(Ze)throw new Error(\"Cannot enable prod mode after platform setup.\");Ge=!1}class Ye{getInertBodyElement(t){t=\"<body><remove></remove>\"+t;try{const e=(new window.DOMParser).parseFromString(De(t),\"text/html\").body;return e.removeChild(e.firstChild),e}catch(e){return null}}}class tn{constructor(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument(\"sanitization-inert\"),null==this.inertDocument.body){const t=this.inertDocument.createElement(\"html\");this.inertDocument.appendChild(t);const e=this.inertDocument.createElement(\"body\");t.appendChild(e)}}getInertBodyElement(t){const e=this.inertDocument.createElement(\"template\");if(\"content\"in e)return e.innerHTML=De(t),e;const n=this.inertDocument.createElement(\"body\");return n.innerHTML=De(t),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(n),n}stripCustomNsAttrs(t){const e=t.attributes;for(let r=e.length-1;0<r;r--){const n=e.item(r).name;\"xmlns:ns1\"!==n&&0!==n.indexOf(\"ns1:\")||t.removeAttribute(n)}let n=t.firstChild;for(;n;)n.nodeType===Node.ELEMENT_NODE&&this.stripCustomNsAttrs(n),n=n.nextSibling}}const en=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi,nn=/^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\\/]+=*$/i;function rn(t){return(t=String(t)).match(en)||t.match(nn)?t:(Qe()&&console.warn(`WARNING: sanitizing unsafe URL value ${t} (see http://g.co/ng/security#xss)`),\"unsafe:\"+t)}function sn(t){const e={};for(const n of t.split(\",\"))e[n]=!0;return e}function on(...t){const e={};for(const n of t)for(const t in n)n.hasOwnProperty(t)&&(e[t]=!0);return e}const an=sn(\"area,br,col,hr,img,wbr\"),cn=sn(\"colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr\"),un=sn(\"rp,rt\"),ln=on(un,cn),hn=on(an,on(cn,sn(\"address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul\")),on(un,sn(\"a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video\")),ln),dn=sn(\"background,cite,href,itemtype,longdesc,poster,src,xlink:href\"),pn=sn(\"srcset\"),fn=on(dn,pn,sn(\"abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width\"),sn(\"aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext\")),gn=sn(\"script,style,template\");class mn{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(t){let e=t.firstChild,n=!0;for(;e;)if(e.nodeType===Node.ELEMENT_NODE?n=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,n&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let t=this.checkClobberedElement(e,e.nextSibling);if(t){e=t;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join(\"\")}startElement(t){const e=t.nodeName.toLowerCase();if(!hn.hasOwnProperty(e))return this.sanitizedSomething=!0,!gn.hasOwnProperty(e);this.buf.push(\"<\"),this.buf.push(e);const n=t.attributes;for(let s=0;s<n.length;s++){const t=n.item(s),e=t.name,i=e.toLowerCase();if(!fn.hasOwnProperty(i)){this.sanitizedSomething=!0;continue}let o=t.value;dn[i]&&(o=rn(o)),pn[i]&&(r=o,o=(r=String(r)).split(\",\").map(t=>rn(t.trim())).join(\", \")),this.buf.push(\" \",e,'=\"',vn(o),'\"')}var r;return this.buf.push(\">\"),!0}endElement(t){const e=t.nodeName.toLowerCase();hn.hasOwnProperty(e)&&!an.hasOwnProperty(e)&&(this.buf.push(\"</\"),this.buf.push(e),this.buf.push(\">\"))}chars(t){this.buf.push(vn(t))}checkClobberedElement(t,e){if(e&&(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(\"Failed to sanitize html because the element is clobbered: \"+t.outerHTML);return e}}const bn=/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g,yn=/([^\\#-~ |!])/g;function vn(t){return t.replace(/&/g,\"&amp;\").replace(bn,function(t){return\"&#\"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+\";\"}).replace(yn,function(t){return\"&#\"+t.charCodeAt(0)+\";\"}).replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")}let _n;function wn(t,e){let n=null;try{_n=_n||function(t){return function(){try{return!!(new window.DOMParser).parseFromString(De(\"\"),\"text/html\")}catch(t){return!1}}()?new Ye:new tn(t)}(t);let r=e?String(e):\"\";n=_n.getInertBodyElement(r);let s=5,i=r;do{if(0===s)throw new Error(\"Failed to sanitize html because the input is unstable\");s--,r=i,i=n.innerHTML,n=_n.getInertBodyElement(r)}while(r!==i);const o=new mn,a=o.sanitizeChildren(Cn(n)||n);return Qe()&&o.sanitizedSomething&&console.warn(\"WARNING: sanitizing HTML stripped some content, see http://g.co/ng/security#xss\"),a}finally{if(n){const t=Cn(n)||n;for(;t.firstChild;)t.removeChild(t.firstChild)}}}function Cn(t){return\"content\"in t&&function(t){return t.nodeType===Node.ELEMENT_NODE&&\"TEMPLATE\"===t.nodeName}(t)?t.content:null}var On=function(t){return t[t.NONE=0]=\"NONE\",t[t.HTML=1]=\"HTML\",t[t.STYLE=2]=\"STYLE\",t[t.SCRIPT=3]=\"SCRIPT\",t[t.URL=4]=\"URL\",t[t.RESOURCE_URL=5]=\"RESOURCE_URL\",t}({});function Sn(t){const e=function(){const t=ie();return t&&t[12]}();return e?e.sanitize(On.URL,t)||\"\":$e(t,\"URL\")?Fe(t):rn(yt(t))}function xn(t,e){return t.hasOwnProperty(st)?t[st]:null}class En extends Error{constructor(t,e){super(function(t,e){return`${t?`NG0${t}: `:\"\"}${e}`}(t,e)),this.code=t}}function Tn(t,e){const n=e?\" in \"+e:\"\";throw new En(\"201\",`No provider for ${vt(t)} found${n}`)}class kn{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function An(){return jn}function jn(t){return t.type.prototype.ngOnChanges&&(t.setInput=Rn),Pn}function Pn(){const t=In(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===Q)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}}function Rn(t,e,n,r){const s=In(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:Q,current:null}),i=s.current||(s.current={}),o=s.previous,a=this.declaredInputs[n],c=o[a];i[a]=new kn(c&&c.currentValue,e,o===Q),t[r]=e}function In(t){return t.__ngSimpleChanges__||null}function Dn(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n<r;n++){const e=t.data[n].type.prototype,{ngAfterContentInit:r,ngAfterContentChecked:s,ngAfterViewInit:i,ngAfterViewChecked:o,ngOnDestroy:a}=e;r&&(t.contentHooks||(t.contentHooks=[])).push(-n,r),s&&((t.contentHooks||(t.contentHooks=[])).push(n,s),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,s)),i&&(t.viewHooks||(t.viewHooks=[])).push(-n,i),o&&((t.viewHooks||(t.viewHooks=[])).push(n,o),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,o)),null!=a&&(t.destroyHooks||(t.destroyHooks=[])).push(n,a)}}function Nn(t,e,n){Mn(t,e,3,n)}function Vn(t,e,n,r){(3&t[2])===n&&Mn(t,e,n,r)}function Ln(t,e){let n=t[2];(3&n)===e&&(n&=2047,n+=1,t[2]=n)}function Mn(t,e,n,r){const s=null!=r?r:-1;let i=0;for(let o=void 0!==r?65535&t[18]:0;o<e.length;o++)if(\"number\"==typeof e[o+1]){if(i=e[o],null!=r&&i>=r)break}else e[o]<0&&(t[18]+=65536),(i<s||-1==s)&&(Un(t,n,e,o),t[18]=(4294901760&t[18])+o+2),o++}function Un(t,e,n,r){const s=n[r]<0,i=n[r+1],o=t[s?-n[r]:n[r]];s?t[2]>>11<t[18]>>16&&(3&t[2])===e&&(t[2]+=2048,i.call(o)):i.call(o)}An.ngInherit=!0;const Hn=-1;class Fn{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}function $n(t,e,n){const r=qt(t);let s=0;for(;s<n.length;){const i=n[s];if(\"number\"==typeof i){if(0!==i)break;s++;const o=n[s++],a=n[s++],c=n[s++];r?t.setAttribute(e,a,c,o):e.setAttributeNS(o,a,c)}else{const o=i,a=n[++s];zn(o)?r&&t.setProperty(e,o,a):r?t.setAttribute(e,o,a):e.setAttribute(o,a),s++}}return s}function qn(t){return 3===t||4===t||6===t}function zn(t){return 64===t.charCodeAt(0)}function Bn(t,e){if(null===e||0===e.length);else if(null===t||0===t.length)t=e.slice();else{let n=-1;for(let r=0;r<e.length;r++){const s=e[r];\"number\"==typeof s?n=s:0===n||Kn(t,n,s,null,-1===n||2===n?e[++r]:null)}}return t}function Kn(t,e,n,r,s){let i=0,o=t.length;if(-1===e)o=-1;else for(;i<t.length;){const n=t[i++];if(\"number\"==typeof n){if(n===e){o=-1;break}if(n>e){o=i-1;break}}}for(;i<t.length;){const e=t[i];if(\"number\"==typeof e)break;if(e===n){if(null===r)return void(null!==s&&(t[i+1]=s));if(r===t[i+1])return void(t[i+2]=s)}i++,null!==r&&i++,null!==s&&i++}-1!==o&&(t.splice(o,0,e),i=o+1),t.splice(i++,0,n),null!==r&&t.splice(i++,0,r),null!==s&&t.splice(i++,0,s)}function Wn(t){return t!==Hn}function Jn(t){return 32767&t}function Gn(t,e){let n=t>>16,r=e;for(;n>0;)r=r[15],n--;return r}let Zn=!0;function Qn(t){const e=Zn;return Zn=t,e}let Xn=0;function Yn(t,e){const n=er(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,tr(r.data,t),tr(e,null),tr(r.blueprint,null));const s=nr(t,e),i=t.injectorIndex;if(Wn(s)){const t=Jn(s),n=Gn(s,e),r=n[1].data;for(let s=0;s<8;s++)e[i+s]=n[t+s]|r[t+s]}return e[i+8]=s,i}function tr(t,e){t.push(0,0,0,0,0,0,0,0,e)}function er(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function nr(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,s=e;for(;null!==s;){const t=s[1],e=t.type;if(r=2===e?t.declTNode:1===e?s[6]:null,null===r)return Hn;if(n++,s=s[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return Hn}function rr(t,e,n){!function(t,e,n){let r;\"string\"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(it)&&(r=n[it]),null==r&&(r=n[it]=Xn++);const s=255&r,i=1<<s,o=64&s,a=32&s,c=e.data;128&s?o?a?c[t+7]|=i:c[t+6]|=i:a?c[t+5]|=i:c[t+4]|=i:o?a?c[t+3]|=i:c[t+2]|=i:a?c[t+1]|=i:c[t]|=i}(t,e,n)}function sr(t,e,n){if(n&_t.Optional)return t;Tn(e,\"NodeInjector\")}function ir(t,e,n,r){if(n&_t.Optional&&void 0===r&&(r=null),0==(n&(_t.Self|_t.Host))){const s=t[9],i=Ct(void 0);try{return s?s.get(e,r,n&_t.Optional):Ot(e,r,n&_t.Optional)}finally{Ct(i)}}return sr(r,e,n)}function or(t,e,n,r=_t.Default,s){if(null!==t){const i=function(t){if(\"string\"==typeof t)return t.charCodeAt(0)||0;const e=t.hasOwnProperty(it)?t[it]:void 0;return\"number\"==typeof e?e>=0?255&e:cr:e}(n);if(\"function\"==typeof i){if(!Oe(e,t,r))return r&_t.Host?sr(s,n,r):ir(e,n,r,s);try{const t=i();if(null!=t||r&_t.Optional)return t;Tn(n)}finally{ke()}}else if(\"number\"==typeof i){let s=null,o=er(t,e),a=Hn,c=r&_t.Host?e[16][6]:null;for((-1===o||r&_t.SkipSelf)&&(a=-1===o?nr(t,e):e[o+8],a!==Hn&&pr(r,!1)?(s=e[1],o=Jn(a),e=Gn(a,e)):o=-1);-1!==o;){const t=e[1];if(dr(i,o,t.data)){const t=ur(o,e,n,s,r,c);if(t!==ar)return t}a=e[o+8],a!==Hn&&pr(r,e[1].data[o+8]===c)&&dr(i,o,e)?(s=t,o=Jn(a),e=Gn(a,e)):o=-1}}}return ir(e,n,r,s)}const ar={};function cr(){return new fr(ce(),ie())}function ur(t,e,n,r,s,i){const o=e[1],a=o.data[t+8],c=lr(a,o,n,null==r?Ht(a)&&Zn:r!=o&&0!=(3&a.type),s&_t.Host&&i===a);return null!==c?hr(e,o,c,a):ar}function lr(t,e,n,r,s){const i=t.providerIndexes,o=e.data,a=1048575&i,c=t.directiveStart,u=i>>20,l=s?a+u:t.directiveEnd;for(let h=r?a:a+u;h<l;h++){const t=o[h];if(h<c&&n===t||h>=c&&t.type===n)return h}if(s){const t=o[c];if(t&&$t(t)&&t.type===n)return c}return null}function hr(t,e,n,r){let s=t[n];const i=e.data;if(s instanceof Fn){const o=s;o.resolving&&function(t,e){throw new En(\"200\",\"Circular dependency in DI detected for \"+t)}(vt(i[n]));const a=Qn(o.canSeeViewProviders);o.resolving=!0;const c=o.injectImpl?Ct(o.injectImpl):null;Oe(t,r,_t.Default);try{s=t[n]=o.factory(void 0,i,t,r),e.firstCreatePass&&n>=r.directiveStart&&function(t,e,n){const{ngOnChanges:r,ngOnInit:s,ngDoCheck:i}=e.type.prototype;if(r){const r=jn(e);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,r)}s&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,s),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,i))}(n,i[n],e)}finally{null!==c&&Ct(c),Qn(a),o.resolving=!1,ke()}}return s}function dr(t,e,n){const r=64&t,s=32&t;let i;return i=128&t?r?s?n[e+7]:n[e+6]:s?n[e+5]:n[e+4]:r?s?n[e+3]:n[e+2]:s?n[e+1]:n[e],!!(i&1<<t)}function pr(t,e){return!(t&_t.Self||t&_t.Host&&e)}class fr{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return or(this._tNode,this._lView,t,void 0,e)}}function gr(t){const e=t;if(F(t))return()=>{const t=gr(H(e));return t?t():null};let n=xn(e);if(null===n){const t=x(e);n=t&&t.factory}return n||null}function mr(t){return l(()=>{const e=t.prototype.constructor,n=e[st]||gr(e),r=Object.prototype;let s=Object.getPrototypeOf(t.prototype).constructor;for(;s&&s!==r;){const t=s[st]||gr(s);if(t&&t!==n)return t;s=Object.getPrototypeOf(s)}return t=>new t})}function br(t){return t.ngDebugContext}function yr(t){return t.ngOriginalError}function vr(t,...e){t.error(...e)}class _r{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),r=function(t){return t.ngErrorLogger||vr}(t);r(this._console,\"ERROR\",t),e&&r(this._console,\"ORIGINAL ERROR\",e),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(t){return t?br(t)?br(t):this._findContext(yr(t)):null}_findOriginalError(t){let e=yr(t);for(;e&&yr(e);)e=yr(e);return e}}function wr(t,e){t.__ngContext__=e}const Cr=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(L))();function Or(t){return t instanceof Function?t():t}var Sr=function(t){return t[t.Important=1]=\"Important\",t[t.DashCase=2]=\"DashCase\",t}({});function xr(t,e){return(void 0)(t,e)}function Er(t){const e=t[3];return Mt(e)?e[3]:e}function Tr(t){return Ar(t[13])}function kr(t){return Ar(t[4])}function Ar(t){for(;null!==t&&!Mt(t);)t=t[4];return t}function jr(t,e,n,r,s){if(null!=r){let i,o=!1;Mt(r)?i=r:Lt(r)&&(o=!0,r=r[0]);const a=Bt(r);0===t&&null!==n?null==s?Lr(e,n,a):Vr(e,n,a,s||null,!0):1===t&&null!==n?Vr(e,n,a,s||null,!0):2===t?function(t,e,n){const r=Ur(t,e);r&&function(t,e,n,r){qt(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,a,o):3===t&&e.destroyNode(a),null!=i&&function(t,e,n,r,s){const i=n[7];i!==Bt(n)&&jr(e,t,r,i,s);for(let o=Vt;o<n.length;o++){const s=n[o];zr(s[1],s,t,e,r,i)}}(e,t,i,n,s)}}function Pr(t,e,n){return qt(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Rr(t,e){const n=t[9],r=n.indexOf(e),s=e[3];1024&e[2]&&(e[2]&=-1025,ne(s,-1)),n.splice(r,1)}function Ir(t,e){if(t.length<=Vt)return;const n=Vt+e,r=t[n];if(r){const i=r[17];null!==i&&i!==t&&Rr(i,r),e>0&&(t[n-1][4]=r[4]);const o=K(t,Vt+e);zr(r[1],s=r,s[11],2,null,null),s[0]=null,s[6]=null;const a=o[19];null!==a&&a.detachView(o[1]),r[3]=null,r[4]=null,r[2]&=-129}var s;return r}function Dr(t,e){if(!(256&e[2])){const n=e[11];qt(n)&&n.destroyNode&&zr(t,e,n,3,null,null),function(t){let e=t[13];if(!e)return Nr(t[1],t);for(;e;){let n=null;if(Lt(e))n=e[13];else{const t=e[10];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)Lt(e)&&Nr(e[1],e),e=e[3];null===e&&(e=t),Lt(e)&&Nr(e[1],e),n=e&&e[4]}e=n}}(e)}}function Nr(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r<n.length;r+=2){const t=e[n[r]];if(!(t instanceof Fn)){const e=n[r+1];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)e[n+1].call(t[e[n]]);else e.call(t)}}}(t,e),function(t,e){const n=t.cleanup;if(null!==n){const t=e[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const s=n[r+1],i=\"function\"==typeof s?s(e):Bt(e[s]),o=t[n[r+2]],a=n[r+3];\"boolean\"==typeof a?i.removeEventListener(n[r],o,a):a>=0?t[a]():t[-a].unsubscribe(),r+=2}else n[r].call(t[n[r+1]]);e[7]=null}}(t,e),1===e[1].type&&qt(e[11])&&e[11].destroy();const n=e[17];if(null!==n&&Mt(e[3])){n!==e[3]&&Rr(n,e);const r=e[19];null!==r&&r.detachView(t)}}}function Vr(t,e,n,r,s){qt(t)?t.insertBefore(e,n,r,s):e.insertBefore(n,r,s)}function Lr(t,e,n){qt(t)?t.appendChild(e,n):e.appendChild(n)}function Mr(t,e,n,r,s){null!==r?Vr(t,e,n,r,s):Lr(t,e,n)}function Ur(t,e){return qt(t)?t.parentNode(e):e.parentNode}function Hr(t,e,n,r){const s=function(t,e,n){return function(t,e,n){let r=e;for(;null!==r&&40&r.type;)r=(e=r).parent;if(null===r)return n[0];if(2&r.flags){const e=t.data[r.directiveStart].encapsulation;if(e===Z.None||e===Z.Emulated)return null}return Wt(r,n)}(t,e.parent,n)}(t,r,e),i=e[11],o=function(t,e,n){return function(t,e,n){return 40&t.type?Wt(t,n):null}(t,0,n)}(r.parent||e[6],0,e);if(null!=s)if(Array.isArray(n))for(let a=0;a<n.length;a++)Mr(i,s,n[a],o,!1);else Mr(i,s,n,o,!1)}function Fr(t,e){if(null!==e){const n=e.type;if(3&n)return Wt(e,t);if(4&n)return $r(-1,t[e.index]);if(8&n){const n=e.child;if(null!==n)return Fr(t,n);{const n=t[e.index];return Mt(n)?$r(-1,n):Bt(n)}}if(32&n)return xr(e,t)()||Bt(t[e.index]);{const n=t[16],r=n[6],s=Er(n),i=r.projection[e.projection];return null!=i?Fr(s,i):Fr(t,e.next)}}return null}function $r(t,e){const n=Vt+t+1;if(n<e.length){const t=e[n],r=t[1].firstChild;if(null!==r)return Fr(t,r)}return e[7]}function qr(t,e,n,r,s,i,o){for(;null!=n;){const a=r[n.index],c=n.type;if(o&&0===e&&(a&&wr(Bt(a),r),n.flags|=4),64!=(64&n.flags))if(8&c)qr(t,e,n.child,r,s,i,!1),jr(e,t,s,a,i);else if(32&c){const o=xr(n,r);let c;for(;c=o();)jr(e,t,s,c,i);jr(e,t,s,a,i)}else 16&c?Br(t,e,r,n,s,i):jr(e,t,s,a,i);n=o?n.projectionNext:n.next}}function zr(t,e,n,r,s,i){qr(n,r,t.firstChild,e,s,i,!1)}function Br(t,e,n,r,s,i){const o=n[16],a=o[6].projection[r.projection];if(Array.isArray(a))for(let c=0;c<a.length;c++)jr(e,t,s,a[c],i);else qr(t,e,a,o[3],s,i,!0)}function Kr(t,e,n){qt(t)?t.setAttribute(e,\"style\",n):e.style.cssText=n}function Wr(t,e,n){qt(t)?\"\"===n?t.removeAttribute(e,\"class\"):t.setAttribute(e,\"class\",n):e.className=n}function Jr(t,e,n){let r=t.length;for(;;){const s=t.indexOf(e,n);if(-1===s)return s;if(0===s||t.charCodeAt(s-1)<=32){const n=e.length;if(s+n===r||t.charCodeAt(s+n)<=32)return s}n=s+1}}const Gr=\"ng-template\";function Zr(t,e,n){let r=0;for(;r<t.length;){let s=t[r++];if(n&&\"class\"===s){if(s=t[r],-1!==Jr(s.toLowerCase(),e,0))return!0}else if(1===s){for(;r<t.length&&\"string\"==typeof(s=t[r++]);)if(s.toLowerCase()===e)return!0;return!1}}return!1}function Qr(t){return 4===t.type&&t.value!==Gr}function Xr(t,e,n){return e===(4!==t.type||n?t.value:Gr)}function Yr(t,e,n){let r=4;const s=t.attrs||[],i=function(t){for(let e=0;e<t.length;e++)if(qn(t[e]))return e;return t.length}(s);let o=!1;for(let a=0;a<e.length;a++){const c=e[a];if(\"number\"!=typeof c){if(!o)if(4&r){if(r=2|1&r,\"\"!==c&&!Xr(t,c,n)||\"\"===c&&1===e.length){if(ts(r))return!1;o=!0}}else{const u=8&r?c:e[++a];if(8&r&&null!==t.attrs){if(!Zr(t.attrs,u,n)){if(ts(r))return!1;o=!0}continue}const l=es(8&r?\"class\":c,s,Qr(t),n);if(-1===l){if(ts(r))return!1;o=!0;continue}if(\"\"!==u){let t;t=l>i?\"\":s[l+1].toLowerCase();const e=8&r?t:null;if(e&&-1!==Jr(e,u,0)||2&r&&u!==t){if(ts(r))return!1;o=!0}}}}else{if(!o&&!ts(r)&&!ts(c))return!1;if(o&&ts(c))continue;o=!1,r=c|1&r}}return ts(r)||o}function ts(t){return 0==(1&t)}function es(t,e,n,r){if(null===e)return-1;let s=0;if(r||!n){let n=!1;for(;s<e.length;){const r=e[s];if(r===t)return s;if(3===r||6===r)n=!0;else{if(1===r||2===r){let t=e[++s];for(;\"string\"==typeof t;)t=e[++s];continue}if(4===r)break;if(0===r){s+=4;continue}}s+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){const r=t[n];if(\"number\"==typeof r)return-1;if(r===e)return n;n++}return-1}(e,t)}function ns(t,e,n=!1){for(let r=0;r<e.length;r++)if(Yr(t,e[r],n))return!0;return!1}function rs(t,e){return t?\":not(\"+e.trim()+\")\":e}function ss(t){let e=t[0],n=1,r=2,s=\"\",i=!1;for(;n<t.length;){let o=t[n];if(\"string\"==typeof o)if(2&r){const e=t[++n];s+=\"[\"+o+(e.length>0?'=\"'+e+'\"':\"\")+\"]\"}else 8&r?s+=\".\"+o:4&r&&(s+=\" \"+o);else\"\"===s||ts(o)||(e+=rs(i,s),s=\"\"),r=o,i=i||!ts(r);n++}return\"\"!==s&&(e+=rs(i,s)),e}const is={};function os(t){as(oe(),ie(),je()+t,de())}function as(t,e,n,r){if(!r)if(3==(3&e[2])){const r=t.preOrderCheckHooks;null!==r&&Nn(e,r,n)}else{const r=t.preOrderHooks;null!==r&&Vn(e,r,0,n)}Pe(n)}function cs(t,e){return t<<17|e<<2}function us(t){return t>>17&32767}function ls(t){return 2|t}function hs(t){return(131068&t)>>2}function ds(t,e){return-131069&t|e<<2}function ps(t){return 1|t}function fs(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const s=n[r],i=n[r+1];if(-1!==i){const n=t.data[i];we(s),n.contentQueries(2,e[i],i)}}}function gs(t,e,n,r,s,i,o,a,c,u){const l=e.blueprint.slice();return l[0]=s,l[2]=140|r,ee(l),l[3]=l[15]=t,l[8]=n,l[10]=o||t&&t[10],l[11]=a||t&&t[11],l[12]=c||t&&t[12]||null,l[9]=u||t&&t[9]||null,l[6]=i,l[16]=2==e.type?t[16]:l,l}function ms(t,e,n,r,s){let i=t.data[e];if(null===i)i=function(t,e,n,r,s){const i=ue(),o=he(),a=t.data[e]=function(t,e,n,r,s,i){return{type:n,index:r,insertBeforeIndex:null,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:s,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,o?i:i&&i.parent,n,e,r,s);return null===t.firstChild&&(t.firstChild=a),null!==i&&(o?null==i.child&&null!==a.parent&&(i.child=a):null===i.next&&(i.next=a)),a}(t,e,n,r,s),re.lFrame.inI18n&&(i.flags|=64);else if(64&i.type){i.type=n,i.value=r,i.attrs=s;const t=function(){const t=re.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}();i.injectorIndex=null===t?-1:t.injectorIndex}return le(i,!0),i}function bs(t,e,n,r){if(0===n)return-1;const s=e.length;for(let i=0;i<n;i++)e.push(r),t.blueprint.push(r),t.data.push(null);return s}function ys(t,e,n){Se(e);try{const r=t.viewQuery;null!==r&&Ws(1,r,n);const s=t.template;null!==s&&ws(t,e,s,1,n),t.firstCreatePass&&(t.firstCreatePass=!1),t.staticContentQueries&&fs(t,e),t.staticViewQueries&&Ws(2,t.viewQuery,n);const i=t.components;null!==i&&function(t,e){for(let n=0;n<e.length;n++)$s(t,e[n])}(e,i)}catch(r){throw t.firstCreatePass&&(t.incompleteFirstPass=!0),r}finally{e[2]&=-5,Ae()}}function vs(t,e,n,r){const s=e[2];if(256==(256&s))return;Se(e);const i=de();try{ee(e),re.lFrame.bindingIndex=t.bindingStartIndex,null!==n&&ws(t,e,n,2,r);const o=3==(3&s);if(!i)if(o){const n=t.preOrderCheckHooks;null!==n&&Nn(e,n,null)}else{const n=t.preOrderHooks;null!==n&&Vn(e,n,0,null),Ln(e,0)}if(function(t){for(let e=Tr(t);null!==e;e=kr(e)){if(!e[2])continue;const t=e[9];for(let e=0;e<t.length;e++){const n=t[e],r=n[3];0==(1024&n[2])&&ne(r,1),n[2]|=1024}}}(e),function(t){for(let e=Tr(t);null!==e;e=kr(e))for(let t=Vt;t<e.length;t++){const n=e[t],r=n[1];Yt(n)&&vs(r,n,r.template,n[8])}}(e),null!==t.contentQueries&&fs(t,e),!i)if(o){const n=t.contentCheckHooks;null!==n&&Nn(e,n)}else{const n=t.contentHooks;null!==n&&Vn(e,n,1),Ln(e,1)}!function(t,e){const n=t.hostBindingOpCodes;if(null!==n)try{for(let t=0;t<n.length;t++){const r=n[t];if(r<0)Pe(~r);else{const s=r,i=n[++t],o=n[++t];ye(i,s),o(2,e[s])}}}finally{Pe(-1)}}(t,e);const a=t.components;null!==a&&function(t,e){for(let n=0;n<e.length;n++)Hs(t,e[n])}(e,a);const c=t.viewQuery;if(null!==c&&Ws(2,c,r),!i)if(o){const n=t.viewCheckHooks;null!==n&&Nn(e,n)}else{const n=t.viewHooks;null!==n&&Vn(e,n,2),Ln(e,2)}!0===t.firstUpdatePass&&(t.firstUpdatePass=!1),i||(e[2]&=-73),1024&e[2]&&(e[2]&=-1025,ne(e[3],-1))}finally{Ae()}}function _s(t,e,n,r){const s=e[10],i=!de(),o=Xt(e);try{i&&!o&&s.begin&&s.begin(),o&&ys(t,e,r),vs(t,e,n,r)}finally{i&&!o&&s.end&&s.end()}}function ws(t,e,n,r,s){const i=je();try{Pe(-1),2&r&&e.length>Nt&&as(t,e,Nt,de()),n(r,s)}finally{Pe(i)}}function Cs(t,e,n){se()&&(function(t,e,n,r){const s=n.directiveStart,i=n.directiveEnd;t.firstCreatePass||Yn(n,e),wr(r,e);const o=n.initialInputs;for(let a=s;a<i;a++){const r=t.data[a],i=$t(r);i&&Vs(e,n,r);const c=hr(e,t,a,n);wr(c,e),null!==o&&Ls(0,a-s,c,r,0,o),i&&(Zt(n.index,e)[8]=c)}}(t,e,n,Wt(n,e)),128==(128&n.flags)&&function(t,e,n){const r=n.directiveStart,s=n.directiveEnd,i=n.index,o=re.lFrame.currentDirectiveIndex;try{Pe(i);for(let n=r;n<s;n++){const r=t.data[n],s=e[n];ve(n),null===r.hostBindings&&0===r.hostVars&&null===r.hostAttrs||Ps(r,s)}}finally{Pe(-1),ve(o)}}(t,e,n))}function Os(t,e,n=Wt){const r=e.localNames;if(null!==r){let s=e.index+1;for(let i=0;i<r.length;i+=2){const o=r[i+1],a=-1===o?n(e,t):t[o];t[s++]=a}}}function Ss(t){const e=t.tView;return null===e||e.incompleteFirstPass?t.tView=xs(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts):e}function xs(t,e,n,r,s,i,o,a,c,u){const l=Nt+r,h=l+s,d=function(t,e){const n=[];for(let r=0;r<e;r++)n.push(r<t?null:is);return n}(l,h),p=\"function\"==typeof u?u():u;return d[1]={type:t,blueprint:d,template:n,queries:null,viewQuery:a,declTNode:e,data:d.slice().fill(null,l),bindingStartIndex:l,expandoStartIndex:h,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof i?i():i,pipeRegistry:\"function\"==typeof o?o():o,firstChild:null,schemas:c,consts:p,incompleteFirstPass:!1}}function Es(t,e,n,r){const s=Gs(e);s.push(n),t.firstCreatePass&&function(t){return t.cleanup||(t.cleanup=[])}(t).push(r,s.length-1)}function Ts(t,e,n){for(let r in t)if(t.hasOwnProperty(r)){const s=t[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(e,s):n[r]=[e,s]}return n}function ks(t,e,n,r,s,i,o,a){const c=Wt(e,n);let u,l=e.inputs;var h;!a&&null!=l&&(u=l[r])?(Qs(t,n,u,r,s),Ht(e)&&function(t,e){const n=Zt(e,t);16&n[2]||(n[2]|=64)}(n,e.index)):3&e.type&&(r=\"class\"===(h=r)?\"className\":\"for\"===h?\"htmlFor\":\"formaction\"===h?\"formAction\":\"innerHtml\"===h?\"innerHTML\":\"readonly\"===h?\"readOnly\":\"tabindex\"===h?\"tabIndex\":h,s=null!=o?o(s,e.value||\"\",r):s,qt(i)?i.setProperty(c,r,s):zn(r)||(c.setProperty?c.setProperty(r,s):c[r]=s))}function As(t,e,n,r){let s=!1;if(se()){const i=function(t,e,n){const r=t.directiveRegistry;let s=null;if(r)for(let i=0;i<r.length;i++){const o=r[i];ns(n,o.selectors,!1)&&(s||(s=[]),rr(Yn(n,e),t,o.type),$t(o)?(Rs(t,n),s.unshift(o)):s.push(o))}return s}(t,e,n),o=null===r?null:{\"\":-1};if(null!==i){s=!0,Ds(n,t.data.length,i.length);for(let t=0;t<i.length;t++){const e=i[t];e.providersResolver&&e.providersResolver(e)}let r=!1,a=!1,c=bs(t,e,i.length,null);for(let s=0;s<i.length;s++){const u=i[s];n.mergedAttrs=Bn(n.mergedAttrs,u.hostAttrs),Ns(t,n,e,c,u),Is(c,u,o),null!==u.contentQueries&&(n.flags|=8),null===u.hostBindings&&null===u.hostAttrs&&0===u.hostVars||(n.flags|=128);const l=u.type.prototype;!r&&(l.ngOnChanges||l.ngOnInit||l.ngDoCheck)&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n.index),r=!0),a||!l.ngOnChanges&&!l.ngDoCheck||((t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n.index),a=!0),c++}!function(t,e){const n=e.directiveEnd,r=t.data,s=e.attrs,i=[];let o=null,a=null;for(let c=e.directiveStart;c<n;c++){const t=r[c],n=t.inputs,u=null===s||Qr(e)?null:Ms(n,s);i.push(u),o=Ts(n,c,o),a=Ts(t.outputs,c,a)}null!==o&&(o.hasOwnProperty(\"class\")&&(e.flags|=16),o.hasOwnProperty(\"style\")&&(e.flags|=32)),e.initialInputs=i,e.inputs=o,e.outputs=a}(t,n)}o&&function(t,e,n){if(e){const r=t.localNames=[];for(let t=0;t<e.length;t+=2){const s=n[e[t+1]];if(null==s)throw new En(\"301\",`Export of name '${e[t+1]}' not found!`);r.push(e[t],s)}}}(n,r,o)}return n.mergedAttrs=Bn(n.mergedAttrs,n.attrs),s}function js(t,e,n,r,s,i){const o=i.hostBindings;if(o){let n=t.hostBindingOpCodes;null===n&&(n=t.hostBindingOpCodes=[]);const i=~e.index;(function(t){let e=t.length;for(;e>0;){const n=t[--e];if(\"number\"==typeof n&&n<0)return n}return 0})(n)!=i&&n.push(i),n.push(r,s,o)}}function Ps(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function Rs(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function Is(t,e,n){if(n){if(e.exportAs)for(let r=0;r<e.exportAs.length;r++)n[e.exportAs[r]]=t;$t(e)&&(n[\"\"]=t)}}function Ds(t,e,n){t.flags|=1,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function Ns(t,e,n,r,s){t.data[r]=s;const i=s.factory||(s.factory=xn(s.type)),o=new Fn(i,$t(s),null);t.blueprint[r]=o,n[r]=o,js(t,e,0,r,bs(t,n,s.hostVars,is),s)}function Vs(t,e,n){const r=Wt(e,t),s=Ss(n),i=t[10],o=qs(t,gs(t,s,null,n.onPush?64:16,r,e,i,i.createRenderer(r,n),null,null));t[e.index]=o}function Ls(t,e,n,r,s,i){const o=i[e];if(null!==o){const t=r.setInput;for(let e=0;e<o.length;){const s=o[e++],i=o[e++],a=o[e++];null!==t?r.setInput(n,a,s,i):n[i]=a}}}function Ms(t,e){let n=null,r=0;for(;r<e.length;){const s=e[r];if(0!==s)if(5!==s){if(\"number\"==typeof s)break;t.hasOwnProperty(s)&&(null===n&&(n=[]),n.push(s,t[s],e[r+1])),r+=2}else r+=2;else r+=4}return n}function Us(t,e,n,r){return new Array(t,!0,!1,e,null,0,r,n,null,null)}function Hs(t,e){const n=Zt(e,t);if(Yt(n)){const t=n[1];80&n[2]?vs(t,n,t.template,n[8]):n[5]>0&&Fs(n)}}function Fs(t){for(let n=Tr(t);null!==n;n=kr(n))for(let t=Vt;t<n.length;t++){const e=n[t];if(1024&e[2]){const t=e[1];vs(t,e,t.template,e[8])}else e[5]>0&&Fs(e)}const e=t[1].components;if(null!==e)for(let n=0;n<e.length;n++){const r=Zt(e[n],t);Yt(r)&&r[5]>0&&Fs(r)}}function $s(t,e){const n=Zt(e,t),r=n[1];!function(t,e){for(let n=e.length;n<t.blueprint.length;n++)e.push(t.blueprint[n])}(r,n),ys(r,n,n[8])}function qs(t,e){return t[13]?t[14][4]=e:t[13]=e,t[14]=e,e}function zs(t){for(;t;){t[2]|=64;const e=Er(t);if(0!=(512&t[2])&&!e)return t;t=e}return null}function Bs(t,e,n){const r=e[10];r.begin&&r.begin();try{vs(t,e,t.template,n)}catch(s){throw Zs(e,s),s}finally{r.end&&r.end()}}function Ks(t){!function(t){for(let e=0;e<t.components.length;e++){const n=t.components[e],r=Qt(n),s=r[1];_s(s,r,s.template,n)}}(t[8])}function Ws(t,e,n){we(0),e(t,n)}const Js=(()=>Promise.resolve(null))();function Gs(t){return t[7]||(t[7]=[])}function Zs(t,e){const n=t[9],r=n?n.get(_r,null):null;r&&r.handleError(e)}function Qs(t,e,n,r,s){for(let i=0;i<n.length;){const o=n[i++],a=n[i++],c=e[o],u=t.data[o];null!==u.setInput?u.setInput(c,s,r,a):c[a]=s}}function Xs(t,e,n){const r=Kt(e,t);!function(t,e,n){qt(t)?t.setValue(e,n):e.textContent=n}(t[11],r,n)}function Ys(t,e,n){let r=n?t.styles:null,s=n?t.classes:null,i=0;if(null!==e)for(let o=0;o<e.length;o++){const t=e[o];\"number\"==typeof t?i=t:1==i?s=y(s,t):2==i&&(r=y(r,t+\": \"+e[++o]+\";\"))}n?t.styles=r:t.stylesWithoutHost=r,n?t.classes=s:t.classesWithoutHost=s}const ti=new j(\"INJECTOR\",-1);class ei{get(t,e=St){if(e===St){const e=new Error(`NullInjectorError: No provider for ${b(t)}!`);throw e.name=\"NullInjectorError\",e}return e}}const ni=new j(\"Set Injector scope.\"),ri={},si={},ii=[];let oi=void 0;function ai(){return void 0===oi&&(oi=new ei),oi}function ci(t,e=null,n=null,r){return new ui(t,n,e||ai(),r)}class ui{constructor(t,e,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];e&&z(e,n=>this.processProvider(n,t,e)),z([t],t=>this.processInjectorType(t,[],s)),this.records.set(ti,di(void 0,this));const i=this.records.get(ni);this.scope=null!=i?i.value:null,this.source=r||(\"object\"==typeof t?null:b(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=St,n=_t.Default){this.assertNotDestroyed();const r=At(this);try{if(!(n&_t.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=(\"function\"==typeof(s=t)||\"object\"==typeof s&&s instanceof j)&&O(t);e=n&&this.injectableDefInScope(n)?di(li(t),ri):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(n&_t.Self?ai():this.parent).get(t,e=n&_t.Optional&&e===St?null:e)}catch(i){if(\"NullInjectorError\"===i.name){if((i.ngTempTokenPath=i.ngTempTokenPath||[]).unshift(b(t)),r)throw i;return function(t,e,n,r){const s=t.ngTempTokenPath;throw e[Et]&&s.unshift(e[Et]),t.message=function(t,e,n,r=null){t=t&&\"\\n\"===t.charAt(0)&&\"\\u0275\"==t.charAt(1)?t.substr(2):t;let s=b(e);if(Array.isArray(e))s=e.map(b).join(\" -> \");else if(\"object\"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];t.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):b(r)))}s=`{${t.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${s}]: ${t.replace(xt,\"\\n  \")}`}(\"\\n\"+t.message,s,n,r),t.ngTokenPath=s,t.ngTempTokenPath=null,t}(i,t,\"R3InjectorError\",this.source)}throw i}finally{At(r)}var s}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((e,n)=>t.push(b(n))),`R3Injector[${t.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(t,e,n){if(!(t=H(t)))return!1;let r=x(t);const s=null==r&&t.ngModule||void 0,i=void 0===s?t:s,o=-1!==n.indexOf(i);if(void 0!==s&&(r=x(s)),null==r)return!1;if(null!=r.imports&&!o){let t;n.push(i);try{z(r.imports,r=>{this.processInjectorType(r,e,n)&&(void 0===t&&(t=[]),t.push(r))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:r}=t[e];z(r,t=>this.processProvider(t,n,r||ii))}}this.injectorDefTypes.add(i),this.records.set(i,di(r.factory,ri));const a=r.providers;if(null!=a&&!o){const e=t;z(a,t=>this.processProvider(t,e,a))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,n){let r=fi(t=H(t))?t:H(t&&t.provide);const s=function(t,e,n){return pi(t)?di(void 0,t.useValue):di(hi(t),ri)}(t);if(fi(t)||!0!==t.multi)this.records.get(r);else{let e=this.records.get(r);e||(e=di(void 0,ri,!0),e.factory=()=>Rt(e.multi),this.records.set(r,e)),r=t,e.multi.push(t)}this.records.set(r,s)}hydrate(t,e){var n;return e.value===ri&&(e.value=si,e.value=e.factory()),\"object\"==typeof e.value&&e.value&&null!==(n=e.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&(\"string\"==typeof t.providedIn?\"any\"===t.providedIn||t.providedIn===this.scope:this.injectorDefTypes.has(t.providedIn))}}function li(t){const e=O(t),n=null!==e?e.factory:xn(t);if(null!==n)return n;const r=x(t);if(null!==r)return r.factory;if(t instanceof j)throw new Error(`Token ${b(t)} is missing a \\u0275prov definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=function(t,e){const n=[];for(let r=0;r<t;r++)n.push(\"?\");return n}(e);throw new Error(`Can't resolve all parameters for ${b(t)}: (${n.join(\", \")}).`)}const n=function(t){const e=t&&(t[E]||t[k]);if(e){const n=function(t){if(t.hasOwnProperty(\"name\"))return t.name;const e=(\"\"+t).match(/^function\\s*([^\\s(]+)/);return null===e?\"\":e[1]}(t);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\nThis will become an error in a future version of Angular. Please add @Injectable() to the \"${n}\" class.`),e}return null}(t);return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error(\"unreachable\")}function hi(t,e,n){let r=void 0;if(fi(t)){const e=H(t);return xn(e)||li(e)}if(pi(t))r=()=>H(t.useValue);else if((s=t)&&s.useFactory)r=()=>t.useFactory(...Rt(t.deps||[]));else if(function(t){return!(!t||!t.useExisting)}(t))r=()=>Pt(H(t.useExisting));else{const e=H(t&&(t.useClass||t.provide));if(!function(t){return!!t.deps}(t))return xn(e)||li(e);r=()=>new e(...Rt(t.deps))}var s;return r}function di(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function pi(t){return null!==t&&\"object\"==typeof t&&Tt in t}function fi(t){return\"function\"==typeof t}const gi=function(t,e,n){return function(t,e=null,n=null,r){const s=ci(t,e,n,r);return s._resolveInjectorDefTypes(),s}({name:n},e,t,n)};let mi=(()=>{class t{static create(t,e){return Array.isArray(t)?gi(t,e,\"\"):gi(t.providers,t.parent,t.name||\"\")}}return t.THROW_IF_NOT_FOUND=St,t.NULL=new ei,t.\\u0275prov=w({token:t,providedIn:\"any\",factory:()=>Pt(ti)}),t.__NG_ELEMENT_ID__=-1,t})();function bi(t,e){Dn(Qt(t)[1],ce())}function yi(t){let e=Object.getPrototypeOf(t.type.prototype).constructor,n=!0;const r=[t];for(;e;){let s=void 0;if($t(t))s=e.\\u0275cmp||e.\\u0275dir;else{if(e.\\u0275cmp)throw new Error(\"Directives cannot inherit Components\");s=e.\\u0275dir}if(s){if(n){r.push(s);const e=t;e.inputs=vi(t.inputs),e.declaredInputs=vi(t.declaredInputs),e.outputs=vi(t.outputs);const n=s.hostBindings;n&&Ci(t,n);const i=s.viewQuery,o=s.contentQueries;if(i&&_i(t,i),o&&wi(t,o),_(t.inputs,s.inputs),_(t.declaredInputs,s.declaredInputs),_(t.outputs,s.outputs),$t(s)&&s.data.animation){const e=t.data;e.animation=(e.animation||[]).concat(s.data.animation)}}const e=s.features;if(e)for(let r=0;r<e.length;r++){const s=e[r];s&&s.ngInherit&&s(t),s===yi&&(n=!1)}}e=Object.getPrototypeOf(e)}!function(t){let e=0,n=null;for(let r=t.length-1;r>=0;r--){const s=t[r];s.hostVars=e+=s.hostVars,s.hostAttrs=Bn(s.hostAttrs,n=Bn(n,s.hostAttrs))}}(r)}function vi(t){return t===Q?{}:t===X?[]:t}function _i(t,e){const n=t.viewQuery;t.viewQuery=n?(t,r)=>{e(t,r),n(t,r)}:e}function wi(t,e){const n=t.contentQueries;t.contentQueries=n?(t,r,s)=>{e(t,r,s),n(t,r,s)}:e}function Ci(t,e){const n=t.hostBindings;t.hostBindings=n?(t,r)=>{e(t,r),n(t,r)}:e}let Oi=null;function Si(){if(!Oi){const t=L.Symbol;if(t&&t.iterator)Oi=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Oi=n)}}}return Oi}class xi{constructor(t){this.wrapped=t}static wrap(t){return new xi(t)}static unwrap(t){return xi.isWrapped(t)?t.wrapped:t}static isWrapped(t){return t instanceof xi}}function Ei(t){return!!Ti(t)&&(Array.isArray(t)||!(t instanceof Map)&&Si()in t)}function Ti(t){return null!==t&&(\"function\"==typeof t||\"object\"==typeof t)}function ki(t,e,n){return t[e]=n}function Ai(t,e,n){return!Object.is(t[e],n)&&(t[e]=n,!0)}function ji(t,e,n,r){const s=Ai(t,e,n);return Ai(t,e+1,r)||s}function Pi(t,e,n,r){const s=ie();return Ai(s,me(),e)&&(oe(),function(t,e,n,r,s,i){const o=Wt(t,e);!function(t,e,n,r,s,i,o){if(null==i)qt(t)?t.removeAttribute(e,s,n):e.removeAttribute(s);else{const a=null==o?yt(i):o(i,r||\"\",s);qt(t)?t.setAttribute(e,s,a,n):n?e.setAttributeNS(n,s,a):e.setAttribute(s,a)}}(e[11],o,i,t.value,n,r,s)}(Re(),s,t,e,n,r)),Pi}function Ri(t,e,n,r,s,i,o,a){const c=ie(),u=oe(),l=t+Nt,h=u.firstCreatePass?function(t,e,n,r,s,i,o,a,c){const u=e.consts,l=ms(e,t,4,o||null,te(u,a));As(e,n,l,te(u,c)),Dn(e,l);const h=l.tViews=xs(2,l,r,s,i,e.directiveRegistry,e.pipeRegistry,null,e.schemas,u);return null!==e.queries&&(e.queries.template(e,l),h.queries=e.queries.embeddedTView(l)),l}(l,u,c,e,n,r,s,i,o):u.data[l];le(h,!1);const d=c[11].createComment(\"\");Hr(u,c,d,h),wr(d,c),qs(c,c[l]=Us(d,c,d,h)),Ft(h)&&Cs(u,c,h),null!=o&&Os(c,h,a)}function Ii(t){return Gt(re.lFrame.contextLView,Nt+t)}function Di(t,e=_t.Default){const n=ie();return null===n?Pt(t,e):or(ce(),n,H(t),e)}function Ni(t){return function(t,e){if(\"class\"===e)return t.classes;if(\"style\"===e)return t.styles;const n=t.attrs;if(n){const t=n.length;let r=0;for(;r<t;){const s=n[r];if(qn(s))break;if(0===s)r+=2;else if(\"number\"==typeof s)for(r++;r<t&&\"string\"==typeof n[r];)r++;else{if(s===e)return n[r+1];r+=2}}}return null}(ce(),t)}function Vi(t,e,n){const r=ie();return Ai(r,me(),e)&&ks(oe(),Re(),r,t,e,r[11],n,!1),Vi}function Li(t,e,n,r,s){const i=s?\"class\":\"style\";Qs(t,n,e.inputs[i],i,r)}function Mi(t,e,n,r){const s=ie(),i=oe(),o=Nt+t,a=s[11],c=s[o]=Pr(a,e,re.lFrame.currentNamespace),u=i.firstCreatePass?function(t,e,n,r,s,i,o){const a=e.consts,c=ms(e,t,2,s,te(a,i));return As(e,n,c,te(a,o)),null!==c.attrs&&Ys(c,c.attrs,!1),null!==c.mergedAttrs&&Ys(c,c.mergedAttrs,!0),null!==e.queries&&e.queries.elementStart(e,c),c}(o,i,s,0,e,n,r):i.data[o];le(u,!0);const l=u.mergedAttrs;null!==l&&$n(a,c,l);const h=u.classes;null!==h&&Wr(a,c,h);const d=u.styles;null!==d&&Kr(a,c,d),64!=(64&u.flags)&&Hr(i,s,c,u),0===re.lFrame.elementDepthCount&&wr(c,s),re.lFrame.elementDepthCount++,Ft(u)&&(Cs(i,s,u),function(t,e,n){if(Ut(e)){const r=e.directiveEnd;for(let s=e.directiveStart;s<r;s++){const e=t.data[s];e.contentQueries&&e.contentQueries(1,n[s],s)}}}(i,u,s)),null!==r&&Os(s,u)}function Ui(){let t=ce();he()?re.lFrame.isParent=!1:(t=t.parent,le(t,!1));const e=t;re.lFrame.elementDepthCount--;const n=oe();n.firstCreatePass&&(Dn(n,t),Ut(t)&&n.queries.elementEnd(t)),null!=e.classesWithoutHost&&function(t){return 0!=(16&t.flags)}(e)&&Li(n,e,ie(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function(t){return 0!=(32&t.flags)}(e)&&Li(n,e,ie(),e.stylesWithoutHost,!1)}function Hi(t,e,n,r){Mi(t,e,n,r),Ui()}function Fi(){return ie()}function $i(t){return!!t&&\"function\"==typeof t.then}function qi(t){return!!t&&\"function\"==typeof t.subscribe}function zi(t,e,n=!1,r){const s=ie(),i=oe(),o=ce();return function(t,e,n,r,s,i,o=!1,a){const c=Ft(r),u=t.firstCreatePass&&(t.cleanup||(t.cleanup=[])),l=Gs(e);let h=!0;if(3&r.type){const d=Wt(r,e),p=a?a(d):Q,f=p.target||d,g=l.length,m=a?t=>a(Bt(t[r.index])).target:r.index;if(qt(n)){let o=null;if(!a&&c&&(o=function(t,e,n,r){const s=t.cleanup;if(null!=s)for(let i=0;i<s.length-1;i+=2){const t=s[i];if(t===n&&s[i+1]===r){const t=e[7],n=s[i+2];return t.length>n?t[n]:null}\"string\"==typeof t&&(i+=2)}return null}(t,e,s,r.index)),null!==o)(o.__ngLastListenerFn__||o).__ngNextListenerFn__=i,o.__ngLastListenerFn__=i,h=!1;else{i=Ki(r,e,i,!1);const t=n.listen(p.name||f,s,i);l.push(i,t),u&&u.push(s,m,g,g+1)}}else i=Ki(r,e,i,!0),f.addEventListener(s,i,o),l.push(i),u&&u.push(s,m,g,o)}const d=r.outputs;let p;if(h&&null!==d&&(p=d[s])){const t=p.length;if(t)for(let n=0;n<t;n+=2){const t=e[p[n]][p[n+1]].subscribe(i),o=l.length;l.push(i,t),u&&u.push(s,r.index,o,-(o+1))}}}(i,s,s[11],o,t,e,n,r),zi}function Bi(t,e,n){try{return!1!==e(n)}catch(r){return Zs(t,r),!1}}function Ki(t,e,n,r){return function s(i){if(i===Function)return n;const o=2&t.flags?Zt(t.index,e):e;0==(32&e[2])&&zs(o);let a=Bi(e,n,i),c=s.__ngNextListenerFn__;for(;c;)a=Bi(e,c,i)&&a,c=c.__ngNextListenerFn__;return r&&!1===a&&(i.preventDefault(),i.returnValue=!1),a}}function Wi(t=1){return function(t){return(re.lFrame.contextLView=function(t,e){for(;t>0;)e=e[15],t--;return e}(t,re.lFrame.contextLView))[8]}(t)}const Ji=[];function Gi(t,e,n,r,s){const i=t[n+1],o=null===e;let a=r?us(i):hs(i),c=!1;for(;0!==a&&(!1===c||o);){const n=t[a+1];Zi(t[a],e)&&(c=!0,t[a+1]=r?ps(n):ls(n)),a=r?us(n):hs(n)}c&&(t[n+1]=r?ls(i):ps(i))}function Zi(t,e){return null===t||null==e||(Array.isArray(t)?t[1]:t)===e||!(!Array.isArray(t)||\"string\"!=typeof e)&&G(t,e)>=0}function Qi(t,e){return function(t,e,n,r){const s=ie(),i=oe(),o=be(2);i.firstUpdatePass&&function(t,e,n,r){const s=t.data;if(null===s[n+1]){const i=s[je()],o=function(t,e){return e>=t.expandoStartIndex}(t,n);(function(t,e){return 0!=(16&t.flags)})(i)&&null===e&&!o&&(e=!1),e=function(t,e,n,r){const s=function(t){const e=re.lFrame.currentDirectiveIndex;return-1===e?null:t[e]}(t);let i=e.residualClasses;if(null===s)0===e.classBindings&&(n=Yi(n=Xi(null,t,e,n,r),e.attrs,r),i=null);else{const o=e.directiveStylingLast;if(-1===o||t[o]!==s)if(n=Xi(s,t,e,n,r),null===i){let n=function(t,e,n){const r=e.classBindings;if(0!==hs(r))return t[us(r)]}(t,e);void 0!==n&&Array.isArray(n)&&(n=Xi(null,t,e,n[1],r),n=Yi(n,e.attrs,r),function(t,e,n,r){t[us(e.classBindings)]=r}(t,e,0,n))}else i=function(t,e,n){let r=void 0;const s=e.directiveEnd;for(let i=1+e.directiveStylingLast;i<s;i++)r=Yi(r,t[i].hostAttrs,true);return Yi(r,e.attrs,true)}(t,e)}return void 0!==i&&(e.residualClasses=i),n}(s,i,e,r),function(t,e,n,r,s,i){let o=e.classBindings,a=us(o),c=hs(o);t[r]=n;let u,l=!1;if(Array.isArray(n)){const t=n;u=t[1],(null===u||G(t,u)>0)&&(l=!0)}else u=n;if(s)if(0!==c){const e=us(t[a+1]);t[r+1]=cs(e,a),0!==e&&(t[e+1]=ds(t[e+1],r)),t[a+1]=131071&t[a+1]|r<<17}else t[r+1]=cs(a,0),0!==a&&(t[a+1]=ds(t[a+1],r)),a=r;else t[r+1]=cs(c,0),0===a?a=r:t[c+1]=ds(t[c+1],r),c=r;l&&(t[r+1]=ls(t[r+1])),Gi(t,u,r,!0),Gi(t,u,r,!1),function(t,e,n,r,s){const i=t.residualClasses;null!=i&&\"string\"==typeof e&&G(i,e)>=0&&(n[r+1]=ps(n[r+1]))}(e,u,t,r),o=cs(a,c),e.classBindings=o}(s,i,e,n,o)}}(i,t,o,true),e!==is&&Ai(s,o,e)&&function(t,e,n,r,s,i,o,a){if(!(3&e.type))return;const c=t.data,u=c[a+1];eo(1==(1&u)?to(c,e,n,s,hs(u),o):void 0)||(eo(i)||function(t){return 2==(2&t)}(u)&&(i=to(c,null,n,s,a,o)),function(t,e,n,r,s){const i=qt(t);s?i?t.addClass(n,r):n.classList.add(r):i?t.removeClass(n,r):n.classList.remove(r)}(r,0,Kt(je(),n),s,i))}(i,i.data[je()],s,s[11],t,s[o+1]=function(t,e){return null==t||\"object\"==typeof t&&(t=b(Fe(t))),t}(e),true,o)}(t,e),Qi}function Xi(t,e,n,r,s){let i=null;const o=n.directiveEnd;let a=n.directiveStylingLast;for(-1===a?a=n.directiveStart:a++;a<o&&(i=e[a],r=Yi(r,i.hostAttrs,s),i!==t);)a++;return null!==t&&(n.directiveStylingLast=a),r}function Yi(t,e,n){const r=n?1:2;let s=-1;if(null!==e)for(let i=0;i<e.length;i++){const o=e[i];\"number\"==typeof o?s=o:s===r&&(Array.isArray(t)||(t=void 0===t?[]:[\"\",t]),W(t,o,!!n||e[++i]))}return void 0===t?null:t}function to(t,e,n,r,s,i){const o=null===e;let a=void 0;for(;s>0;){const e=t[s],i=Array.isArray(e),c=i?e[1]:e,u=null===c;let l=n[s+1];l===is&&(l=u?Ji:void 0);let h=u?J(l,r):c===r?l:void 0;if(i&&!eo(h)&&(h=J(e,r)),eo(h)&&(a=h,o))return a;const d=t[s+1];s=o?us(d):hs(d)}if(null!==e){let t=i?e.residualClasses:e.residualStyles;null!=t&&(a=J(t,r))}return a}function eo(t){return void 0!==t}function no(t,e=\"\"){const n=ie(),r=oe(),s=t+Nt,i=r.firstCreatePass?ms(r,s,1,e,null):r.data[s],o=n[s]=function(t,e){return qt(t)?t.createText(e):t.createTextNode(e)}(n[11],e);Hr(r,n,o,i),le(i,!1)}function ro(t){return so(\"\",t,\"\"),ro}function so(t,e,n){const r=ie(),s=function(t,e,n,r){return Ai(t,me(),n)?e+yt(n)+r:is}(r,t,e,n);return s!==is&&Xs(r,je(),s),so}function io(t,e,n,r,s){const i=ie(),o=function(t,e,n,r,s,i){const o=ji(t,ge(),n,s);return be(2),o?e+yt(n)+r+yt(s)+i:is}(i,t,e,n,r,s);return o!==is&&Xs(i,je(),o),io}function oo(t,e,n){const r=ie();return Ai(r,me(),e)&&ks(oe(),Re(),r,t,e,r[11],n,!0),oo}const ao=void 0;var co=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],ao],[[\"AM\",\"PM\"],ao,ao],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],ao,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],ao,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",ao,\"{1} 'at' {0}\",ao],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},\"ltr\",function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===e&&0===n?1:5}];let uo={};function lo(t,e,n){\"string\"!=typeof e&&(n=e,e=t[mo.LocaleId]),e=e.toLowerCase().replace(/_/g,\"-\"),uo[e]=t,n&&(uo[e][mo.ExtraData]=n)}function ho(t){const e=function(t){return t.toLowerCase().replace(/_/g,\"-\")}(t);let n=go(e);if(n)return n;const r=e.split(\"-\")[0];if(n=go(r),n)return n;if(\"en\"===r)return co;throw new Error(`Missing locale data for the locale \"${t}\".`)}function po(t){return ho(t)[mo.CurrencyCode]||null}function fo(t){return ho(t)[mo.PluralCase]}function go(t){return t in uo||(uo[t]=L.ng&&L.ng.common&&L.ng.common.locales&&L.ng.common.locales[t]),uo[t]}var mo=function(t){return t[t.LocaleId=0]=\"LocaleId\",t[t.DayPeriodsFormat=1]=\"DayPeriodsFormat\",t[t.DayPeriodsStandalone=2]=\"DayPeriodsStandalone\",t[t.DaysFormat=3]=\"DaysFormat\",t[t.DaysStandalone=4]=\"DaysStandalone\",t[t.MonthsFormat=5]=\"MonthsFormat\",t[t.MonthsStandalone=6]=\"MonthsStandalone\",t[t.Eras=7]=\"Eras\",t[t.FirstDayOfWeek=8]=\"FirstDayOfWeek\",t[t.WeekendRange=9]=\"WeekendRange\",t[t.DateFormat=10]=\"DateFormat\",t[t.TimeFormat=11]=\"TimeFormat\",t[t.DateTimeFormat=12]=\"DateTimeFormat\",t[t.NumberSymbols=13]=\"NumberSymbols\",t[t.NumberFormats=14]=\"NumberFormats\",t[t.CurrencyCode=15]=\"CurrencyCode\",t[t.CurrencySymbol=16]=\"CurrencySymbol\",t[t.CurrencyName=17]=\"CurrencyName\",t[t.Currencies=18]=\"Currencies\",t[t.Directionality=19]=\"Directionality\",t[t.PluralCase=20]=\"PluralCase\",t[t.ExtraData=21]=\"ExtraData\",t}({});const bo=\"en-US\";let yo=bo;function vo(t){var e,n;n=\"Expected localeId to be defined\",null==(e=t)&&function(t,e,n,r){throw new Error(\"ASSERTION ERROR: \"+t+` [Expected=> null != ${e} <=Actual]`)}(n,e),\"string\"==typeof t&&(yo=t.toLowerCase().replace(/_/g,\"-\"))}function _o(t,e,n,r,s){if(t=H(t),Array.isArray(t))for(let i=0;i<t.length;i++)_o(t[i],e,n,r,s);else{const i=oe(),o=ie();let a=fi(t)?t:H(t.provide),c=hi(t);const u=ce(),l=1048575&u.providerIndexes,h=u.directiveStart,d=u.providerIndexes>>20;if(fi(t)||!t.multi){const r=new Fn(c,s,Di),p=Oo(a,e,s?l:l+d,h);-1===p?(rr(Yn(u,o),i,a),wo(i,t,e.length),e.push(a),u.directiveStart++,u.directiveEnd++,s&&(u.providerIndexes+=1048576),n.push(r),o.push(r)):(n[p]=r,o[p]=r)}else{const p=Oo(a,e,l+d,h),f=Oo(a,e,l,l+d),g=p>=0&&n[p],m=f>=0&&n[f];if(s&&!m||!s&&!g){rr(Yn(u,o),i,a);const l=function(t,e,n,r,s){const i=new Fn(t,n,Di);return i.multi=[],i.index=e,i.componentProviders=0,Co(i,s,r&&!n),i}(s?xo:So,n.length,s,r,c);!s&&m&&(n[f].providerFactory=l),wo(i,t,e.length,0),e.push(a),u.directiveStart++,u.directiveEnd++,s&&(u.providerIndexes+=1048576),n.push(l),o.push(l)}else wo(i,t,p>-1?p:f,Co(n[s?f:p],c,!s&&r));!s&&r&&m&&n[f].componentProviders++}}}function wo(t,e,n,r){const s=fi(e);if(s||e.useClass){const i=(e.useClass||e).prototype.ngOnDestroy;if(i){const o=t.destroyHooks||(t.destroyHooks=[]);if(!s&&e.multi){const t=o.indexOf(n);-1===t?o.push(n,[r,i]):o[t+1].push(r,i)}else o.push(n,i)}}}function Co(t,e,n){return n&&t.componentProviders++,t.multi.push(e)-1}function Oo(t,e,n,r){for(let s=n;s<r;s++)if(e[s]===t)return s;return-1}function So(t,e,n,r){return Eo(this.multi,[])}function xo(t,e,n,r){const s=this.multi;let i;if(this.providerFactory){const t=this.providerFactory.componentProviders,e=hr(n,n[1],this.providerFactory.index,r);i=e.slice(0,t),Eo(s,i);for(let n=t;n<e.length;n++)i.push(e[n])}else i=[],Eo(s,i);return i}function Eo(t,e){for(let n=0;n<t.length;n++)e.push((0,t[n])());return e}function To(t,e=[]){return n=>{n.providersResolver=(n,r)=>function(t,e,n){const r=oe();if(r.firstCreatePass){const s=$t(t);_o(n,r.data,r.blueprint,s,!0),_o(e,r.data,r.blueprint,s,!1)}}(n,r?r(t):t,e)}}class ko{}class Ao{resolveComponentFactory(t){throw function(t){const e=Error(`No component factory found for ${b(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(t)}}let jo=(()=>{class t{}return t.NULL=new Ao,t})();function Po(...t){}function Ro(t,e){return new Do(Wt(t,e))}const Io=function(){return Ro(ce(),ie())};let Do=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=Io,t})();class No{}let Vo=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>Lo(),t})();const Lo=function(){const t=ie(),e=Zt(ce().index,t);return function(t){return t[11]}(Lt(e)?e:t)};let Mo=(()=>{class t{}return t.\\u0275prov=w({token:t,providedIn:\"root\",factory:()=>null}),t})();class Uo{constructor(t){this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}}const Ho=new Uo(\"11.0.2\");class Fo{constructor(){}supports(t){return Ei(t)}create(t){return new qo(t)}}const $o=(t,e)=>e;class qo{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||$o}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,r=0,s=null;for(;e||n;){const i=!n||e&&e.currentIndex<Wo(n,r,s)?e:n,o=Wo(i,r,s),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(e=e._next,null==i.previousIndex)r++;else{s||(s=[]);const t=o-r,e=a-r;if(t!=e){for(let n=0;n<t;n++){const r=n<s.length?s[n]:s[n]=0,i=r+n;e<=i&&i<t&&(s[n]=r+1)}s[i.previousIndex]=e-t}}o!==a&&t(i,o,a)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!Ei(t))throw new Error(`Error trying to diff '${b(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,r,s=this._itHead,i=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],r=this._trackByFn(e,n),null!==s&&Object.is(s.trackById,r)?(i&&(s=this._verifyReinsertion(s,n,r,e)),Object.is(s.item,n)||this._addIdentityChange(s,n)):(s=this._mismatch(s,n,r,e),i=!0),s=s._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[Si()]();let r;for(;!(r=n.next()).done;)e(r.value)}}(t,t=>{r=this._trackByFn(e,t),null!==s&&Object.is(s.trackById,r)?(i&&(s=this._verifyReinsertion(s,t,r,e)),Object.is(s.item,t)||this._addIdentityChange(s,t)):(s=this._mismatch(s,t,r,e),i=!0),s=s._next,e++}),this.length=e;return this._truncate(s),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):t=this._addAfter(new zo(e,n),s,r),t}_verifyReinsertion(t,e,n,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Ko),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Ko),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class zo{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Bo{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class Ko{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new Bo,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function Wo(t,e,n){const r=t.previousIndex;if(null===r)return r;let s=0;return n&&r<n.length&&(s=n[r]),r+e+s}class Jo{constructor(){}supports(t){return t instanceof Map||Ti(t)}create(){return new Go}}class Go{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||Ti(t)))throw new Error(`Error trying to diff '${b(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const n=this._records.get(t);this._maybeAddToChanges(n,e);const r=n._prev,s=n._next;return r&&(r._next=s),s&&(s._prev=r),n._next=null,n._prev=null,n}const n=new Zo(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(n=>e(t[n],n))}}class Zo{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let Qo=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new m,new f]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.\\u0275prov=w({token:t,providedIn:\"root\",factory:()=>new t([new Fo])}),t})(),Xo=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new m,new f]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.\\u0275prov=w({token:t,providedIn:\"root\",factory:()=>new t([new Jo])}),t})();function Yo(t,e,n,r,s=!1){for(;null!==n;){const i=e[n.index];if(null!==i&&r.push(Bt(i)),Mt(i))for(let t=Vt;t<i.length;t++){const e=i[t],n=e[1].firstChild;null!==n&&Yo(e[1],e,n,r)}const o=n.type;if(8&o)Yo(t,e,n.child,r);else if(32&o){const t=xr(n,e);let s;for(;s=t();)r.push(s)}else if(16&o){const t=e[16],s=t[6].projection[n.projection];if(Array.isArray(s))r.push(...s);else{const e=Er(t);Yo(e[1],e,s,r,!0)}}n=s?n.projectionNext:n.next}return r}class ta{constructor(t,e){this._lView=t,this._cdRefInjectingView=e,this._appRef=null,this._viewContainerRef=null}get rootNodes(){const t=this._lView,e=t[1];return Yo(e,t,e.firstChild,[])}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}Dr(this._lView[1],this._lView)}onDestroy(t){Es(this._lView[1],this._lView,null,t)}markForCheck(){zs(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){Bs(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(t,e,n){pe(!0);try{Bs(t,e,n)}finally{pe(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=t}detachFromAppRef(){var t;this._appRef=null,zr(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=t}}class ea extends ta{constructor(t){super(t),this._view=t}detectChanges(){Ks(this._view)}checkNoChanges(){!function(t){pe(!0);try{Ks(t)}finally{pe(!1)}}(this._view)}get context(){return null}}const na=sa;let ra=(()=>{class t{}return t.__NG_ELEMENT_ID__=na,t.__ChangeDetectorRef__=!0,t})();function sa(t=!1){return function(t,e,n){if(!n&&Ht(t)){const n=Zt(t.index,e);return new ta(n,n)}return 47&t.type?new ta(e[16],e):null}(ce(),ie(),t)}const ia=[new Jo],oa=new Qo([new Fo]),aa=new Xo(ia),ca=function(){return da(ce(),ie())};let ua=(()=>{class t{}return t.__NG_ELEMENT_ID__=ca,t})();const la=ua,ha=class extends la{constructor(t,e,n){super(),this._declarationLView=t,this._declarationTContainer=e,this.elementRef=n}createEmbeddedView(t){const e=this._declarationTContainer.tViews,n=gs(this._declarationLView,e,t,16,null,e.declTNode,null,null,null,null);n[17]=this._declarationLView[this._declarationTContainer.index];const r=this._declarationLView[19];return null!==r&&(n[19]=r.createEmbeddedView(e)),ys(e,n,t),new ta(n)}};function da(t,e){return 4&t.type?new ha(e,t,Ro(t,e)):null}class pa{}class fa{}const ga=function(){return wa(ce(),ie())};let ma=(()=>{class t{}return t.__NG_ELEMENT_ID__=ga,t})();const ba=ma,ya=class extends ba{constructor(t,e,n){super(),this._lContainer=t,this._hostTNode=e,this._hostLView=n}get element(){return Ro(this._hostTNode,this._hostLView)}get injector(){return new fr(this._hostTNode,this._hostLView)}get parentInjector(){const t=nr(this._hostTNode,this._hostLView);if(Wn(t)){const e=Gn(t,this._hostLView),n=Jn(t);return new fr(e[1].data[n+8],e)}return new fr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const e=va(this._lContainer);return null!==e&&e[t]||null}get length(){return this._lContainer.length-Vt}createEmbeddedView(t,e,n){const r=t.createEmbeddedView(e||{});return this.insert(r,n),r}createComponent(t,e,n,r,s){const i=n||this.parentInjector;if(!s&&null==t.ngModule&&i){const t=i.get(pa,null);t&&(s=t)}const o=t.create(i,r,void 0,s);return this.insert(o.hostView,e),o}insert(t,e){const n=t._lView,r=n[1];if(Mt(n[3])){const e=this.indexOf(t);if(-1!==e)this.detach(e);else{const e=n[3],r=new ya(e,e[6],e[3]);r.detach(r.indexOf(t))}}const s=this._adjustIndex(e),i=this._lContainer;!function(t,e,n,r){const s=Vt+r,i=n.length;r>0&&(n[s-1][4]=e),r<i-Vt?(e[4]=n[s],B(n,Vt+r,e)):(n.push(e),e[4]=null),e[3]=n;const o=e[17];null!==o&&n!==o&&function(t,e){const n=t[9];e[16]!==e[3][3][16]&&(t[2]=!0),null===n?t[9]=[e]:n.push(e)}(o,e);const a=e[19];null!==a&&a.insertView(t),e[2]|=128}(r,n,i,s);const o=$r(s,i),a=n[11],c=Ur(a,i[7]);return null!==c&&function(t,e,n,r,s,i){r[0]=s,r[6]=e,zr(t,r,n,1,s,i)}(r,i[6],a,n,c,o),t.attachToViewContainerRef(this),B(_a(i),s,t),t}move(t,e){return this.insert(t,e)}indexOf(t){const e=va(this._lContainer);return null!==e?e.indexOf(t):-1}remove(t){const e=this._adjustIndex(t,-1),n=Ir(this._lContainer,e);n&&(K(_a(this._lContainer),e),Dr(n[1],n))}detach(t){const e=this._adjustIndex(t,-1),n=Ir(this._lContainer,e);return n&&null!=K(_a(this._lContainer),e)?new ta(n):null}_adjustIndex(t,e=0){return null==t?this.length+e:t}};function va(t){return t[8]}function _a(t){return t[8]||(t[8]=[])}function wa(t,e){let n;const r=e[t.index];if(Mt(r))n=r;else{let s;if(8&t.type)s=Bt(r);else{const n=e[11];s=n.createComment(\"\");const r=Wt(t,e);Vr(n,Ur(n,r),s,function(t,e){return qt(t)?t.nextSibling(e):e.nextSibling}(n,r),!1)}e[t.index]=n=Us(r,e,s,t),qs(e,n)}return new ya(n,t,e)}const Ca={};class Oa extends jo{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=mt(t);return new Ea(e,this.ngModule)}}function Sa(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const xa=new j(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Cr});class Ea extends ko{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors.map(ss).join(\",\"),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return Sa(this.componentDef.inputs)}get outputs(){return Sa(this.componentDef.outputs)}create(t,e,n,r){const s=(r=r||this.ngModule)?function(t,e){return{get:(n,r,s)=>{const i=t.get(n,Ca,s);return i!==Ca||r===Ca?i:e.get(n,r,s)}}}(t,r.injector):t,i=s.get(No,zt),o=s.get(Mo,null),a=i.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||\"div\",u=n?function(t,e,n){if(qt(t))return t.selectRootElement(e,n===Z.ShadowDom);let r=\"string\"==typeof e?t.querySelector(e):e;return r.textContent=\"\",r}(a,n,this.componentDef.encapsulation):Pr(i.createRenderer(null,this.componentDef),c,function(t){const e=t.toLowerCase();return\"svg\"===e?\"http://www.w3.org/2000/svg\":\"math\"===e?\"http://www.w3.org/1998/MathML/\":null}(c)),l=this.componentDef.onPush?576:528,h={components:[],scheduler:Cr,clean:Js,playerHandler:null,flags:0},d=xs(0,null,null,1,0,null,null,null,null,null),p=gs(null,d,h,l,null,null,i,a,o,s);let f,g;Se(p);try{const t=function(t,e,n,r,s,i){const o=n[1];n[20]=t;const a=ms(o,20,2,\"#host\",null),c=a.mergedAttrs=e.hostAttrs;null!==c&&(Ys(a,c,!0),null!==t&&($n(s,t,c),null!==a.classes&&Wr(s,t,a.classes),null!==a.styles&&Kr(s,t,a.styles)));const u=r.createRenderer(t,e),l=gs(n,Ss(e),null,e.onPush?64:16,n[20],a,r,u,null,null);return o.firstCreatePass&&(rr(Yn(a,n),o,e.type),Rs(o,a),Ds(a,n.length,1)),qs(n,l),n[20]=l}(u,this.componentDef,p,i,a);if(u)if(n)$n(a,u,[\"ng-version\",Ho.full]);else{const{attrs:t,classes:e}=function(t){const e=[],n=[];let r=1,s=2;for(;r<t.length;){let i=t[r];if(\"string\"==typeof i)2===s?\"\"!==i&&e.push(i,t[++r]):8===s&&n.push(i);else{if(!ts(s))break;s=i}r++}return{attrs:e,classes:n}}(this.componentDef.selectors[0]);t&&$n(a,u,t),e&&e.length>0&&Wr(a,u,e.join(\" \"))}if(g=Jt(d,Nt),void 0!==e){const t=g.projection=[];for(let n=0;n<this.ngContentSelectors.length;n++){const r=e[n];t.push(null!=r?Array.from(r):null)}}f=function(t,e,n,r,s){const i=n[1],o=function(t,e,n){const r=ce();t.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),Ns(t,r,e,bs(t,e,1,null),n));const s=hr(e,t,r.directiveStart,r);wr(s,e);const i=Wt(r,e);return i&&wr(i,e),s}(i,n,e);if(r.components.push(o),t[8]=o,s&&s.forEach(t=>t(o,e)),e.contentQueries){const t=ce();e.contentQueries(1,o,t.directiveStart)}const a=ce();return!i.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(Pe(a.index),js(n[1],a,0,a.directiveStart,a.directiveEnd,e),Ps(e,o)),o}(t,this.componentDef,p,h,[bi]),ys(d,p,null)}finally{Ae()}return new Ta(this.componentType,f,Ro(g,p),p,g)}}class Ta extends class{}{constructor(t,e,n,r,s){super(),this.location=n,this._rootLView=r,this._tNode=s,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new ea(r),this.componentType=t}get injector(){return new fr(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const ka=new Map;class Aa extends pa{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Oa(this);const n=bt(t),r=t[rt]||null;r&&vo(r),this._bootstrapComponents=Or(n.bootstrap),this._r3Injector=ci(t,e,[{provide:pa,useValue:this},{provide:jo,useValue:this.componentFactoryResolver}],b(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=mi.THROW_IF_NOT_FOUND,n=_t.Default){return t===mi||t===pa||t===ti?this:this._r3Injector.get(t,e,n)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class ja extends fa{constructor(t){super(),this.moduleType=t,null!==bt(t)&&function(t){const e=new Set;!function t(n){const r=bt(n,!0),s=r.id;null!==s&&(function(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${b(e)} vs ${b(e.name)}`)}(s,ka.get(s),n),ka.set(s,n));const i=Or(r.imports);for(const o of i)e.has(o)||(e.add(o),t(o))}(t)}(t)}create(t){return new Aa(this.moduleType,t)}}function Pa(t,e,n,r){return function(t,e,n,r,s,i){const o=e+n;return Ai(t,o,s)?ki(t,o+1,i?r.call(i,s):r(s)):Ra(t,o+1)}(ie(),fe(),t,e,n,r)}function Ra(t,e){const n=t[e];return n===is?void 0:n}function Ia(t,e){const n=oe();let r;const s=t+Nt;n.firstCreatePass?(r=function(t,e){if(e)for(let n=e.length-1;n>=0;n--){const r=e[n];if(t===r.name)return r}throw new En(\"302\",`The pipe '${t}' could not be found!`)}(e,n.pipeRegistry),n.data[s]=r,r.onDestroy&&(n.destroyHooks||(n.destroyHooks=[])).push(s,r.onDestroy)):r=n.data[s];const i=r.factory||(r.factory=xn(r.type)),o=Ct(Di);try{const t=Qn(!1),e=i();return Qn(t),function(t,e,n,r){n>=t.data.length&&(t.data[n]=null,t.blueprint[n]=null),e[n]=r}(n,ie(),s,e),e}finally{Ct(o)}}function Da(t,e,n,r,s,i){const o=t+Nt,a=ie(),c=Gt(a,o);return function(t,e){return xi.isWrapped(e)&&(e=xi.unwrap(e),t[ge()]=is),e}(a,function(t,e){return t[1].data[e].pure}(a,o)?function(t,e,n,r,s,i,o,a,c){const u=e+n;return function(t,e,n,r,s,i){const o=ji(t,e,n,r);return ji(t,e+2,s,i)||o}(t,u,s,i,o,a)?ki(t,u+4,c?r.call(c,s,i,o,a):r(s,i,o,a)):Ra(t,u+4)}(a,fe(),e,c.transform,n,r,s,i,c):c.transform(n,r,s,i))}const Na=class extends r.a{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let r,i=t=>null,o=()=>null;t&&\"object\"==typeof t?(r=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(i=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(o=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(r=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(i=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(o=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const a=super.subscribe(r,i,o);return t instanceof s.a&&t.add(a),a}};function Va(){return this._results[Si()]()}class La{constructor(){this.dirty=!0,this._results=[],this.changes=new Na,this.length=0;const t=Si(),e=La.prototype;e[t]||(e[t]=Va)}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,e){return this._results.reduce(t,e)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t){this._results=q(t),this.dirty=!1,this.length=this._results.length,this.last=this._results[this.length-1],this.first=this._results[0]}notifyOnChanges(){this.changes.emit(this)}setDirty(){this.dirty=!0}destroy(){this.changes.complete(),this.changes.unsubscribe()}}class Ma{constructor(t){this.queryList=t,this.matches=null}clone(){return new Ma(this.queryList)}setDirty(){this.queryList.setDirty()}}class Ua{constructor(t=[]){this.queries=t}createEmbeddedView(t){const e=t.queries;if(null!==e){const n=null!==t.contentQueries?t.contentQueries[0]:e.length,r=[];for(let t=0;t<n;t++){const n=e.getByIndex(t);r.push(this.queries[n.indexInDeclarationView].clone())}return new Ua(r)}return null}insertView(t){this.dirtyQueriesWithMatches(t)}detachView(t){this.dirtyQueriesWithMatches(t)}dirtyQueriesWithMatches(t){for(let e=0;e<this.queries.length;e++)null!==Za(t,e).matches&&this.queries[e].setDirty()}}class Ha{constructor(t,e,n,r=null){this.predicate=t,this.descendants=e,this.isStatic=n,this.read=r}}class Fa{constructor(t=[]){this.queries=t}elementStart(t,e){for(let n=0;n<this.queries.length;n++)this.queries[n].elementStart(t,e)}elementEnd(t){for(let e=0;e<this.queries.length;e++)this.queries[e].elementEnd(t)}embeddedTView(t){let e=null;for(let n=0;n<this.length;n++){const r=null!==e?e.length:0,s=this.getByIndex(n).embeddedTView(t,r);s&&(s.indexInDeclarationView=n,null!==e?e.push(s):e=[s])}return null!==e?new Fa(e):null}template(t,e){for(let n=0;n<this.queries.length;n++)this.queries[n].template(t,e)}getByIndex(t){return this.queries[t]}get length(){return this.queries.length}track(t){this.queries.push(t)}}class $a{constructor(t,e=-1){this.metadata=t,this.matches=null,this.indexInDeclarationView=-1,this.crossesNgTemplate=!1,this._appliesToNextNode=!0,this._declarationNodeIndex=e}elementStart(t,e){this.isApplyingToNode(e)&&this.matchTNode(t,e)}elementEnd(t){this._declarationNodeIndex===t.index&&(this._appliesToNextNode=!1)}template(t,e){this.elementStart(t,e)}embeddedTView(t,e){return this.isApplyingToNode(t)?(this.crossesNgTemplate=!0,this.addMatch(-t.index,e),new $a(this.metadata)):null}isApplyingToNode(t){if(this._appliesToNextNode&&!1===this.metadata.descendants){const e=this._declarationNodeIndex;let n=t.parent;for(;null!==n&&8&n.type&&n.index!==e;)n=n.parent;return e===(null!==n?n.index:-1)}return this._appliesToNextNode}matchTNode(t,e){const n=this.metadata.predicate;if(Array.isArray(n))for(let r=0;r<n.length;r++){const s=n[r];this.matchTNodeWithReadOption(t,e,qa(e,s)),this.matchTNodeWithReadOption(t,e,lr(e,t,s,!1,!1))}else n===ua?4&e.type&&this.matchTNodeWithReadOption(t,e,-1):this.matchTNodeWithReadOption(t,e,lr(e,t,n,!1,!1))}matchTNodeWithReadOption(t,e,n){if(null!==n){const r=this.metadata.read;if(null!==r)if(r===Do||r===ma||r===ua&&4&e.type)this.addMatch(e.index,-2);else{const n=lr(e,t,r,!1,!1);null!==n&&this.addMatch(e.index,n)}else this.addMatch(e.index,n)}}addMatch(t,e){null===this.matches?this.matches=[t,e]:this.matches.push(t,e)}}function qa(t,e){const n=t.localNames;if(null!==n)for(let r=0;r<n.length;r+=2)if(n[r]===e)return n[r+1];return null}function za(t,e,n,r){return-1===n?function(t,e){return 11&t.type?Ro(t,e):4&t.type?da(t,e):null}(e,t):-2===n?function(t,e,n){return n===Do?Ro(e,t):n===ua?da(e,t):n===ma?wa(e,t):void 0}(t,e,r):hr(t,t[1],n,e)}function Ba(t,e,n,r){const s=e[19].queries[r];if(null===s.matches){const r=t.data,i=n.matches,o=[];for(let t=0;t<i.length;t+=2){const s=i[t];o.push(s<0?null:za(e,r[s],i[t+1],n.metadata.read))}s.matches=o}return s.matches}function Ka(t,e,n,r){const s=t.queries.getByIndex(n),i=s.matches;if(null!==i){const o=Ba(t,e,s,n);for(let t=0;t<i.length;t+=2){const n=i[t];if(n>0)r.push(o[t/2]);else{const s=i[t+1],o=e[-n];for(let t=Vt;t<o.length;t++){const e=o[t];e[17]===e[3]&&Ka(e[1],e,s,r)}if(null!==o[9]){const t=o[9];for(let e=0;e<t.length;e++){const n=t[e];Ka(n[1],n,s,r)}}}}}return r}function Wa(t){const e=ie(),n=oe(),r=_e();we(r+1);const s=Za(n,r);if(t.dirty&&Xt(e)===s.metadata.isStatic){if(null===s.matches)t.reset([]);else{const i=s.crossesNgTemplate?Ka(n,e,r,[]):Ba(n,e,s,r);t.reset(i),t.notifyOnChanges()}return!0}return!1}function Ja(t,e,n,r){!function(t,e,n,r,s,i,o,a){t.firstCreatePass&&(function(t,e,n){null===t.queries&&(t.queries=new Fa),t.queries.track(new $a(e,n))}(t,new Ha(n,r,false,s),o.index),function(t,e){const n=t.contentQueries||(t.contentQueries=[]);e!==(n.length?n[n.length-1]:-1)&&n.push(t.queries.length-1,e)}(t,a)),function(t,e){const n=new La;Es(t,e,n,n.destroy),null===e[19]&&(e[19]=new Ua),e[19].queries.push(new Ma(n))}(t,e)}(oe(),ie(),e,n,r,0,ce(),t)}function Ga(){return t=ie(),e=_e(),t[19].queries[e].queryList;var t,e}function Za(t,e){return t.queries.getByIndex(e)}function Qa(t=_t.Default){const e=sa(!0);if(null!=e||t&_t.Optional)return e;Tn(\"ChangeDetectorRef\")}const Xa=new j(\"Application Initializer\");let Ya=(()=>{class t{constructor(t){this.appInits=t,this.resolve=Po,this.reject=Po,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();$i(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}return t.\\u0275fac=function(e){return new(e||t)(Pt(Xa,8))},t.\\u0275prov=w({token:t,factory:t.\\u0275fac}),t})();const tc=new j(\"AppId\"),ec={provide:tc,useFactory:function(){return`${nc()}${nc()}${nc()}`},deps:[]};function nc(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const rc=new j(\"Platform Initializer\"),sc=new j(\"Platform ID\"),ic=new j(\"appBootstrapListener\");let oc=(()=>{class t{log(t){console.log(t)}warn(t){console.warn(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=w({token:t,factory:t.\\u0275fac}),t})();const ac=new j(\"LocaleId\"),cc=new j(\"DefaultCurrencyCode\");class uc{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const lc=function(t){return new ja(t)},hc=lc,dc=function(t){return Promise.resolve(lc(t))},pc=function(t){const e=lc(t),n=Or(bt(t).declarations).reduce((t,e)=>{const n=mt(e);return n&&t.push(new Ea(n)),t},[]);return new uc(e,n)},fc=pc,gc=function(t){return Promise.resolve(pc(t))};let mc=(()=>{class t{constructor(){this.compileModuleSync=hc,this.compileModuleAsync=dc,this.compileModuleAndAllComponentsSync=fc,this.compileModuleAndAllComponentsAsync=gc}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=w({token:t,factory:t.\\u0275fac}),t})();const bc=(()=>Promise.resolve(0))();function yc(t){\"undefined\"==typeof Zone?bc.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",t)}class vc{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Na(!1),this.onMicrotaskEmpty=new Na(!1),this.onStable=new Na(!1),this.onError=new Na(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched();const n=this;n._nesting=0,n._outer=n._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(n._inner=n._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(n._inner=n._inner.fork(Zone.longStackTraceZoneSpec)),n.shouldCoalesceEventChangeDetection=e,n.lastRequestAnimationFrameId=-1,n.nativeRequestAnimationFrame=function(){let t=L.requestAnimationFrame,e=L.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__(\"OriginalDelegate\")];n&&(t=n);const r=e[Zone.__symbol__(\"OriginalDelegate\")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function(t){const e=!!t.shouldCoalesceEventChangeDetection&&t.nativeRequestAnimationFrame&&(()=>{!function(t){-1===t.lastRequestAnimationFrameId&&(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(L,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask(\"fakeTopEventTask\",()=>{t.lastRequestAnimationFrameId=-1,Oc(t),Cc(t)},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Oc(t))}(t)});t._inner=t._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:e},onInvokeTask:(n,r,s,i,o,a)=>{try{return Sc(t),n.invokeTask(s,i,o,a)}finally{e&&\"eventTask\"===i.type&&e(),xc(t)}},onInvoke:(e,n,r,s,i,o,a)=>{try{return Sc(t),e.invoke(r,s,i,o,a)}finally{xc(t)}},onHasTask:(e,n,r,s)=>{e.hasTask(r,s),n===r&&(\"microTask\"==s.change?(t._hasPendingMicrotasks=s.microTask,Oc(t),Cc(t)):\"macroTask\"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,n,r,s)=>(e.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(n)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!vc.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(vc.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,r){const s=this._inner,i=s.scheduleEventTask(\"NgZoneEvent: \"+r,t,wc,_c,_c);try{return s.runTask(i,e,n)}finally{s.cancelTask(i)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function _c(){}const wc={};function Cc(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Oc(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||t.shouldCoalesceEventChangeDetection&&-1!==t.lastRequestAnimationFrameId)}function Sc(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function xc(t){t._nesting--,Cc(t)}class Ec{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Na,this.onMicrotaskEmpty=new Na,this.onStable=new Na,this.onError=new Na}run(t,e,n){return t.apply(e,n)}runGuarded(t,e,n){return t.apply(e,n)}runOutsideAngular(t){return t()}runTask(t,e,n,r){return t.apply(e,n)}}let Tc=(()=>{class t{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{vc.assertNotInAngularZone(),yc(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())yc(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let r=-1;e&&e>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==r),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}return t.\\u0275fac=function(e){return new(e||t)(Pt(vc))},t.\\u0275prov=w({token:t,factory:t.\\u0275fac}),t})(),kc=(()=>{class t{constructor(){this._applications=new Map,Rc.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return Rc.findTestabilityInTree(this,t,e)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=w({token:t,factory:t.\\u0275fac}),t})();class Ac{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}function jc(t){Rc=t}let Pc,Rc=new Ac;const Ic=new j(\"AllowMultipleToken\");class Dc{constructor(t,e){this.name=t,this.token=e}}function Nc(t,e,n=[]){const r=\"Platform: \"+e,s=new j(r);return(e=[])=>{let i=Vc();if(!i||i.injector.get(Ic,!1))if(t)t(n.concat(e).concat({provide:s,useValue:!0}));else{const t=n.concat(e).concat({provide:s,useValue:!0},{provide:ni,useValue:\"platform\"});!function(t){if(Pc&&!Pc.destroyed&&!Pc.injector.get(Ic,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");Pc=t.get(Lc);const e=t.get(rc,null);e&&e.forEach(t=>t())}(mi.create({providers:t,name:r}))}return function(t){const e=Vc();if(!e)throw new Error(\"No platform exists!\");if(!e.injector.get(t,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return e}(s)}}function Vc(){return Pc&&!Pc.destroyed?Pc:null}let Lc=(()=>{class t{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t,e){let n;return n=\"noop\"===t?new Ec:(\"zone.js\"===t?void 0:t)||new vc({enableLongStackTrace:Qe(),shouldCoalesceEventChangeDetection:e}),n}(e?e.ngZone:void 0,e&&e.ngZoneEventCoalescing||!1),r=[{provide:vc,useValue:n}];return n.run(()=>{const e=mi.create({providers:r,parent:this.injector,name:t.moduleType.name}),s=t.create(e),i=s.injector.get(_r,null);if(!i)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return s.onDestroy(()=>Hc(this._modules,s)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{i.handleError(t)}})),function(t,e,n){try{const r=n();return $i(r)?r.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(i,n,()=>{const t=s.injector.get(Ya);return t.runInitializers(),t.donePromise.then(()=>(vo(s.injector.get(ac,bo)||bo),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,e=[]){const n=Mc({},e);return function(t,e,n){const r=new ja(n);return Promise.resolve(r)}(0,0,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(Uc);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${b(t.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. Please define one of these.`);t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\\u0275fac=function(e){return new(e||t)(Pt(mi))},t.\\u0275prov=w({token:t,factory:t.\\u0275fac}),t})();function Mc(t,e){return Array.isArray(e)?e.reduce(Mc,t):Object.assign(Object.assign({},t),e)}let Uc=(()=>{class t{constructor(t,e,n,r,s,l){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=l,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Qe(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const h=new i.a(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),d=new i.a(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{vc.assertNotInAngularZone(),yc(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{vc.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=Object(o.a)(h,d.pipe(t=>Object(c.a)()(Object(a.a)(u)(t))))}bootstrap(t,e){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=t instanceof ko?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(pa),s=n.create(mi.NULL,[],e||n.selector,r);s.onDestroy(()=>{this._unloadComponent(s)});const i=s.injector.get(Tc,null);return i&&s.injector.get(kc).registerApplication(s.location.nativeElement,i),this._loadComponent(s),Qe()&&this._console.log(\"Angular is running in development mode. Call enableProdMode() to enable production mode.\"),s}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Hc(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(ic,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),Hc(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t.\\u0275fac=function(e){return new(e||t)(Pt(vc),Pt(oc),Pt(mi),Pt(_r),Pt(jo),Pt(Ya))},t.\\u0275prov=w({token:t,factory:t.\\u0275fac}),t})();function Hc(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}class Fc{}class $c{}const qc={factoryPathPrefix:\"\",factoryPathSuffix:\".ngfactory\"};let zc=(()=>{class t{constructor(t,e){this._compiler=t,this._config=e||qc}load(t){return this.loadAndCompile(t)}loadAndCompile(t){let[e,r]=t.split(\"#\");return void 0===r&&(r=\"default\"),n(\"zn8P\")(e).then(t=>t[r]).then(t=>Bc(t,e,r)).then(t=>this._compiler.compileModuleAsync(t))}loadFactory(t){let[e,r]=t.split(\"#\"),s=\"NgFactory\";return void 0===r&&(r=\"default\",s=\"\"),n(\"zn8P\")(this._config.factoryPathPrefix+e+this._config.factoryPathSuffix).then(t=>t[r+s]).then(t=>Bc(t,e,r))}}return t.\\u0275fac=function(e){return new(e||t)(Pt(mc),Pt($c,8))},t.\\u0275prov=w({token:t,factory:t.\\u0275fac}),t})();function Bc(t,e,n){if(!t)throw new Error(`Cannot find '${n}' in '${e}'`);return t}const Kc=function(t){return null},Wc=Nc(null,\"core\",[{provide:sc,useValue:\"unknown\"},{provide:Lc,deps:[mi]},{provide:kc,deps:[]},{provide:oc,deps:[]}]),Jc=[{provide:Uc,useClass:Uc,deps:[vc,oc,mi,_r,jo,Ya]},{provide:xa,deps:[vc],useFactory:function(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:Ya,useClass:Ya,deps:[[new f,Xa]]},{provide:mc,useClass:mc,deps:[]},ec,{provide:Qo,useFactory:function(){return oa},deps:[]},{provide:Xo,useFactory:function(){return aa},deps:[]},{provide:ac,useFactory:function(t){return vo(t=t||\"undefined\"!=typeof $localize&&$localize.locale||bo),t},deps:[[new p(ac),new f,new m]]},{provide:cc,useValue:\"USD\"}];let Gc=(()=>{class t{constructor(t){}}return t.\\u0275mod=ht({type:t}),t.\\u0275inj=C({factory:function(e){return new(e||t)(Pt(Uc))},providers:Jc}),t})()},gRHU:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return i});var r=n(\"2fFW\"),s=n(\"NJ4a\");const i={closed:!0,next(t){},error(t){if(r.a.useDeprecatedSynchronousErrorHandling)throw t;Object(s.a)(t)},complete(){}}},hO0c:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return i});var r=n(\"fXoL\"),s=n(\"DZdm\");let i=(()=>{class t{constructor(t){this.datasource=t}authenticate(t,e){return this.datasource.authenticate(t,e)}get authenticated(){return null!=this.datasource.auth_token}clear(){this.datasource.auth_token=null}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(s.a))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})()},\"hf/X\":function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return i});var r=n(\"fXoL\"),s=n(\"DZdm\");let i=(()=>{class t{constructor(t){this.dataSource=t,this.orders=[],this.loaded=!1}loadOrders(){this.loaded=!0,this.dataSource.getOrders().subscribe(t=>this.orders=t)}getOrders(){return this.loaded||this.loadOrders(),this.orders}saveOrder(t){return this.dataSource.saveOrder(t)}updateOrder(t){this.dataSource.updateOrder(t).subscribe(t=>{this.orders.splice(this.orders.findIndex(e=>e.id==t.id),1,t)})}deleteOrder(t){this.dataSource.deleteOrder(t).subscribe(e=>{this.orders.splice(this.orders.findIndex(e=>t==e.id),1)})}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(s.a))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})()},jU2X:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return i});var r=n(\"fXoL\"),s=n(\"DZdm\");let i=(()=>{class t{constructor(t){this.dataSource=t,this.products=[],this.categories=[],t.getProducts().subscribe(t=>{this.products=t,this.categories=t.map(t=>t.category).filter((t,e,n)=>n.indexOf(t)==e).sort()})}getProducts(t=null){return this.products.filter(e=>null==t||t==e.category)}getProduct(t){return this.products.find(e=>e.id==t)}getCategories(){return this.categories}saveProduct(t){null==t.id||0==t.id?this.dataSource.saveProduct(t).subscribe(t=>this.products.push(t)):this.dataSource.updateProduct(t).subscribe(e=>{this.products.splice(this.products.findIndex(e=>e.id==t.id),1,t)})}deleteProduct(t){this.dataSource.deleteProduct(t).subscribe(e=>{this.products.splice(this.products.findIndex(e=>e.id==t),1)})}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(s.a))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})()},jZKg:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return i});var r=n(\"HDdC\"),s=n(\"quSY\");function i(t,e){return new r.a(n=>{const r=new s.a;let i=0;return r.add(e.schedule(function(){i!==t.length?(n.next(t[i++]),n.closed||r.add(this.schedule())):n.complete()})),r})}},kJWO:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return r});const r=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")()},lJxs:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return s});var r=n(\"7o/Q\");function s(t,e){return function(n){if(\"function\"!=typeof t)throw new TypeError(\"argument is not a function. Are you looking for `mapTo()`?\");return n.lift(new i(t,e))}}class i{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new o(t,this.project,this.thisArg))}}class o extends r.a{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}},n6bG:function(t,e,n){\"use strict\";function r(t){return\"function\"==typeof t}n.d(e,\"a\",function(){return r})},ngJS:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return r});const r=t=>e=>{for(let n=0,r=t.length;n<r&&!e.closed;n++)e.next(t[n]);e.complete()}},oB13:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return l});var r=n(\"XNiG\"),s=n(\"HDdC\"),i=(n(\"7o/Q\"),n(\"quSY\")),o=n(\"x+ZX\");class a extends s.a{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new i.a,t.add(this.source.subscribe(new u(this.getSubject(),this))),t.closed&&(this._connection=null,t=i.a.EMPTY)),t}refCount(){return Object(o.a)()(this)}}const c=(()=>{const t=a.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class u extends r.b{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}function l(t,e){return function(n){let r;if(r=\"function\"==typeof t?t:function(){return t},\"function\"==typeof e)return n.lift(new h(r,e));const s=Object.create(n,c);return s.source=n,s.subjectFactory=r,s}}class h{constructor(t,e){this.subjectFactory=t,this.selector=e}call(t,e){const{selector:n}=this,r=this.subjectFactory(),s=n(r).subscribe(t);return s.add(e.subscribe(r)),s}}},ofXK:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return _}),n.d(e,\"b\",function(){return K}),n.d(e,\"c\",function(){return B}),n.d(e,\"d\",function(){return c}),n.d(e,\"e\",function(){return C}),n.d(e,\"f\",function(){return h}),n.d(e,\"g\",function(){return O}),n.d(e,\"h\",function(){return y}),n.d(e,\"i\",function(){return H}),n.d(e,\"j\",function(){return $}),n.d(e,\"k\",function(){return w}),n.d(e,\"l\",function(){return u}),n.d(e,\"m\",function(){return G}),n.d(e,\"n\",function(){return J}),n.d(e,\"o\",function(){return a}),n.d(e,\"p\",function(){return W}),n.d(e,\"q\",function(){return i}),n.d(e,\"r\",function(){return M}),n.d(e,\"s\",function(){return o});var r=n(\"fXoL\");let s=null;function i(){return s}function o(t){s||(s=t)}class a{}const c=new r.q(\"DocumentToken\");let u=(()=>{class t{}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=Object(r.Db)({factory:l,token:t,providedIn:\"platform\"}),t})();function l(){return Object(r.Ob)(d)}const h=new r.q(\"Location Initialized\");let d=(()=>{class t extends u{constructor(t){super(),this._doc=t,this._init()}_init(){this.location=i().getLocation(),this._history=i().getHistory()}getBaseHrefFromDOM(){return i().getBaseHref(this._doc)}onPopState(t){i().getGlobalEventTarget(this._doc,\"window\").addEventListener(\"popstate\",t,!1)}onHashChange(t){i().getGlobalEventTarget(this._doc,\"window\").addEventListener(\"hashchange\",t,!1)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(t){this.location.pathname=t}pushState(t,e,n){p()?this._history.pushState(t,e,n):this.location.hash=n}replaceState(t,e,n){p()?this._history.replaceState(t,e,n):this.location.hash=n}forward(){this._history.forward()}back(){this._history.back()}getState(){return this._history.state}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(c))},t.\\u0275prov=Object(r.Db)({factory:f,token:t,providedIn:\"platform\"}),t})();function p(){return!!window.history.pushState}function f(){return new d(Object(r.Ob)(c))}function g(t,e){if(0==t.length)return e;if(0==e.length)return t;let n=0;return t.endsWith(\"/\")&&n++,e.startsWith(\"/\")&&n++,2==n?t+e.substring(1):1==n?t+e:t+\"/\"+e}function m(t){const e=t.match(/#|\\?|$/),n=e&&e.index||t.length;return t.slice(0,n-(\"/\"===t[n-1]?1:0))+t.slice(n)}function b(t){return t&&\"?\"!==t[0]?\"?\"+t:t}let y=(()=>{class t{}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=Object(r.Db)({factory:v,token:t,providedIn:\"root\"}),t})();function v(t){const e=Object(r.Ob)(c).location;return new w(Object(r.Ob)(u),e&&e.origin||\"\")}const _=new r.q(\"appBaseHref\");let w=(()=>{class t extends y{constructor(t,e){if(super(),this._platformLocation=t,null==e&&(e=this._platformLocation.getBaseHrefFromDOM()),null==e)throw new Error(\"No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.\");this._baseHref=e}onPopState(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return g(this._baseHref,t)}path(t=!1){const e=this._platformLocation.pathname+b(this._platformLocation.search),n=this._platformLocation.hash;return n&&t?`${e}${n}`:e}pushState(t,e,n,r){const s=this.prepareExternalUrl(n+b(r));this._platformLocation.pushState(t,e,s)}replaceState(t,e,n,r){const s=this.prepareExternalUrl(n+b(r));this._platformLocation.replaceState(t,e,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(u),r.Ob(_,8))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})(),C=(()=>{class t extends y{constructor(t,e){super(),this._platformLocation=t,this._baseHref=\"\",null!=e&&(this._baseHref=e)}onPopState(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)}getBaseHref(){return this._baseHref}path(t=!1){let e=this._platformLocation.hash;return null==e&&(e=\"#\"),e.length>0?e.substring(1):e}prepareExternalUrl(t){const e=g(this._baseHref,t);return e.length>0?\"#\"+e:e}pushState(t,e,n,r){let s=this.prepareExternalUrl(n+b(r));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.pushState(t,e,s)}replaceState(t,e,n,r){let s=this.prepareExternalUrl(n+b(r));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.replaceState(t,e,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(u),r.Ob(_,8))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})(),O=(()=>{class t{constructor(t,e){this._subject=new r.n,this._urlChangeListeners=[],this._platformStrategy=t;const n=this._platformStrategy.getBaseHref();this._platformLocation=e,this._baseHref=m(x(n)),this._platformStrategy.onPopState(t=>{this._subject.emit({url:this.path(!0),pop:!0,state:t.state,type:t.type})})}path(t=!1){return this.normalize(this._platformStrategy.path(t))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(t,e=\"\"){return this.path()==this.normalize(t+b(e))}normalize(e){return t.stripTrailingSlash(function(t,e){return t&&e.startsWith(t)?e.substring(t.length):e}(this._baseHref,x(e)))}prepareExternalUrl(t){return t&&\"/\"!==t[0]&&(t=\"/\"+t),this._platformStrategy.prepareExternalUrl(t)}go(t,e=\"\",n=null){this._platformStrategy.pushState(n,\"\",t,e),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+b(e)),n)}replaceState(t,e=\"\",n=null){this._platformStrategy.replaceState(n,\"\",t,e),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+b(e)),n)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}onUrlChange(t){this._urlChangeListeners.push(t),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(t=>{this._notifyUrlChangeListeners(t.url,t.state)}))}_notifyUrlChangeListeners(t=\"\",e){this._urlChangeListeners.forEach(n=>n(t,e))}subscribe(t,e,n){return this._subject.subscribe({next:t,error:e,complete:n})}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(y),r.Ob(u))},t.normalizeQueryParams=b,t.joinWithSlash=g,t.stripTrailingSlash=m,t.\\u0275prov=Object(r.Db)({factory:S,token:t,providedIn:\"root\"}),t})();function S(){return new O(Object(r.Ob)(y),Object(r.Ob)(u))}function x(t){return t.replace(/\\/index.html$/,\"\")}const E={ADP:[void 0,void 0,0],AFN:[void 0,void 0,0],ALL:[void 0,void 0,0],AMD:[void 0,void 0,2],AOA:[void 0,\"Kz\"],ARS:[void 0,\"$\"],AUD:[\"A$\",\"$\"],BAM:[void 0,\"KM\"],BBD:[void 0,\"$\"],BDT:[void 0,\"\\u09f3\"],BHD:[void 0,void 0,3],BIF:[void 0,void 0,0],BMD:[void 0,\"$\"],BND:[void 0,\"$\"],BOB:[void 0,\"Bs\"],BRL:[\"R$\"],BSD:[void 0,\"$\"],BWP:[void 0,\"P\"],BYN:[void 0,\"\\u0440.\",2],BYR:[void 0,void 0,0],BZD:[void 0,\"$\"],CAD:[\"CA$\",\"$\",2],CHF:[void 0,void 0,2],CLF:[void 0,void 0,4],CLP:[void 0,\"$\",0],CNY:[\"CN\\xa5\",\"\\xa5\"],COP:[void 0,\"$\",2],CRC:[void 0,\"\\u20a1\",2],CUC:[void 0,\"$\"],CUP:[void 0,\"$\"],CZK:[void 0,\"K\\u010d\",2],DJF:[void 0,void 0,0],DKK:[void 0,\"kr\",2],DOP:[void 0,\"$\"],EGP:[void 0,\"E\\xa3\"],ESP:[void 0,\"\\u20a7\",0],EUR:[\"\\u20ac\"],FJD:[void 0,\"$\"],FKP:[void 0,\"\\xa3\"],GBP:[\"\\xa3\"],GEL:[void 0,\"\\u20be\"],GIP:[void 0,\"\\xa3\"],GNF:[void 0,\"FG\",0],GTQ:[void 0,\"Q\"],GYD:[void 0,\"$\",2],HKD:[\"HK$\",\"$\"],HNL:[void 0,\"L\"],HRK:[void 0,\"kn\"],HUF:[void 0,\"Ft\",2],IDR:[void 0,\"Rp\",2],ILS:[\"\\u20aa\"],INR:[\"\\u20b9\"],IQD:[void 0,void 0,0],IRR:[void 0,void 0,0],ISK:[void 0,\"kr\",0],ITL:[void 0,void 0,0],JMD:[void 0,\"$\"],JOD:[void 0,void 0,3],JPY:[\"\\xa5\",void 0,0],KHR:[void 0,\"\\u17db\"],KMF:[void 0,\"CF\",0],KPW:[void 0,\"\\u20a9\",0],KRW:[\"\\u20a9\",void 0,0],KWD:[void 0,void 0,3],KYD:[void 0,\"$\"],KZT:[void 0,\"\\u20b8\"],LAK:[void 0,\"\\u20ad\",0],LBP:[void 0,\"L\\xa3\",0],LKR:[void 0,\"Rs\"],LRD:[void 0,\"$\"],LTL:[void 0,\"Lt\"],LUF:[void 0,void 0,0],LVL:[void 0,\"Ls\"],LYD:[void 0,void 0,3],MGA:[void 0,\"Ar\",0],MGF:[void 0,void 0,0],MMK:[void 0,\"K\",0],MNT:[void 0,\"\\u20ae\",2],MRO:[void 0,void 0,0],MUR:[void 0,\"Rs\",2],MXN:[\"MX$\",\"$\"],MYR:[void 0,\"RM\"],NAD:[void 0,\"$\"],NGN:[void 0,\"\\u20a6\"],NIO:[void 0,\"C$\"],NOK:[void 0,\"kr\",2],NPR:[void 0,\"Rs\"],NZD:[\"NZ$\",\"$\"],OMR:[void 0,void 0,3],PHP:[void 0,\"\\u20b1\"],PKR:[void 0,\"Rs\",2],PLN:[void 0,\"z\\u0142\"],PYG:[void 0,\"\\u20b2\",0],RON:[void 0,\"lei\"],RSD:[void 0,void 0,0],RUB:[void 0,\"\\u20bd\"],RUR:[void 0,\"\\u0440.\"],RWF:[void 0,\"RF\",0],SBD:[void 0,\"$\"],SEK:[void 0,\"kr\",2],SGD:[void 0,\"$\"],SHP:[void 0,\"\\xa3\"],SLL:[void 0,void 0,0],SOS:[void 0,void 0,0],SRD:[void 0,\"$\"],SSP:[void 0,\"\\xa3\"],STD:[void 0,void 0,0],STN:[void 0,\"Db\"],SYP:[void 0,\"\\xa3\",0],THB:[void 0,\"\\u0e3f\"],TMM:[void 0,void 0,0],TND:[void 0,void 0,3],TOP:[void 0,\"T$\"],TRL:[void 0,void 0,0],TRY:[void 0,\"\\u20ba\"],TTD:[void 0,\"$\"],TWD:[\"NT$\",\"$\",2],TZS:[void 0,void 0,2],UAH:[void 0,\"\\u20b4\"],UGX:[void 0,void 0,0],USD:[\"$\"],UYI:[void 0,void 0,0],UYU:[void 0,\"$\"],UYW:[void 0,void 0,4],UZS:[void 0,void 0,2],VEF:[void 0,\"Bs\",2],VND:[\"\\u20ab\",void 0,0],VUV:[void 0,void 0,0],XAF:[\"FCFA\",void 0,0],XCD:[\"EC$\",\"$\"],XOF:[\"CFA\",void 0,0],XPF:[\"CFPF\",void 0,0],XXX:[\"\\xa4\"],YER:[void 0,void 0,0],ZAR:[void 0,\"R\"],ZMK:[void 0,void 0,0],ZMW:[void 0,\"ZK\"],ZWD:[void 0,void 0,0]};var T=function(t){return t[t.Decimal=0]=\"Decimal\",t[t.Percent=1]=\"Percent\",t[t.Currency=2]=\"Currency\",t[t.Scientific=3]=\"Scientific\",t}({}),k=function(t){return t[t.Zero=0]=\"Zero\",t[t.One=1]=\"One\",t[t.Two=2]=\"Two\",t[t.Few=3]=\"Few\",t[t.Many=4]=\"Many\",t[t.Other=5]=\"Other\",t}({}),A=function(t){return t[t.Decimal=0]=\"Decimal\",t[t.Group=1]=\"Group\",t[t.List=2]=\"List\",t[t.PercentSign=3]=\"PercentSign\",t[t.PlusSign=4]=\"PlusSign\",t[t.MinusSign=5]=\"MinusSign\",t[t.Exponential=6]=\"Exponential\",t[t.SuperscriptingExponent=7]=\"SuperscriptingExponent\",t[t.PerMille=8]=\"PerMille\",t[t[1/0]=9]=\"Infinity\",t[t.NaN=10]=\"NaN\",t[t.TimeSeparator=11]=\"TimeSeparator\",t[t.CurrencyDecimal=12]=\"CurrencyDecimal\",t[t.CurrencyGroup=13]=\"CurrencyGroup\",t}({});function j(t,e){const n=Object(r.hb)(t),s=n[r.Y.NumberSymbols][e];if(void 0===s){if(e===A.CurrencyDecimal)return n[r.Y.NumberSymbols][A.Decimal];if(e===A.CurrencyGroup)return n[r.Y.NumberSymbols][A.Group]}return s}const P=r.kb,R=/^(\\d+)?\\.((\\d+)(-(\\d+))?)?$/,I=\".\",D=\"0\";function N(t){const e=parseInt(t);if(isNaN(e))throw new Error(\"Invalid integer literal when parsing \"+t);return e}class V{}let L=(()=>{class t extends V{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(P(e||this.locale)(t)){case k.Zero:return\"zero\";case k.One:return\"one\";case k.Two:return\"two\";case k.Few:return\"few\";case k.Many:return\"many\";default:return\"other\"}}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(r.u))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})();function M(t,e){e=encodeURIComponent(e);for(const n of t.split(\";\")){const t=n.indexOf(\"=\"),[r,s]=-1==t?[n,\"\"]:[n.slice(0,t),n.slice(t+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}class U{constructor(t,e,n,r){this.$implicit=t,this.ngForOf=e,this.index=n,this.count=r}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let H=(()=>{class t{constructor(t,e,n){this._viewContainer=t,this._template=e,this._differs=n,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){Object(r.T)()&&null!=t&&\"function\"!=typeof t&&console&&console.warn&&console.warn(`trackBy must be a function, but received ${JSON.stringify(t)}. See https://angular.io/api/common/NgForOf#change-propagation for more information.`),this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const n=this._ngForOf;if(!this._differ&&n)try{this._differ=this._differs.find(n).create(this.ngForTrackBy)}catch(e){throw new Error(`Cannot find a differ supporting object '${n}' of type '${t=n,t.name||typeof t}'. NgFor only supports binding to Iterables such as Arrays.`)}}var t;if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const e=[];t.forEachOperation((t,n,r)=>{if(null==t.previousIndex){const n=this._viewContainer.createEmbeddedView(this._template,new U(null,this._ngForOf,-1,-1),null===r?void 0:r),s=new F(t,n);e.push(s)}else if(null==r)this._viewContainer.remove(null===n?void 0:n);else if(null!==n){const s=this._viewContainer.get(n);this._viewContainer.move(s,r);const i=new F(t,s);e.push(i)}});for(let n=0;n<e.length;n++)this._perViewChange(e[n].view,e[n].record);for(let n=0,r=this._viewContainer.length;n<r;n++){const t=this._viewContainer.get(n);t.context.index=n,t.context.count=r,t.context.ngForOf=this._ngForOf}t.forEachIdentityChange(t=>{this._viewContainer.get(t.currentIndex).context.$implicit=t.item})}_perViewChange(t,e){t.context.$implicit=e.item}static ngTemplateContextGuard(t,e){return!0}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(r.O),r.Hb(r.K),r.Hb(r.s))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"\",\"ngFor\",\"\",\"ngForOf\",\"\"]],inputs:{ngForOf:\"ngForOf\",ngForTrackBy:\"ngForTrackBy\",ngForTemplate:\"ngForTemplate\"}}),t})();class F{constructor(t,e){this.record=t,this.view=e}}let $=(()=>{class t{constructor(t,e){this._viewContainer=t,this._context=new q,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=e}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){z(\"ngIfThen\",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){z(\"ngIfElse\",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(t,e){return!0}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(r.O),r.Hb(r.K))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"\",\"ngIf\",\"\"]],inputs:{ngIf:\"ngIf\",ngIfThen:\"ngIfThen\",ngIfElse:\"ngIfElse\"}}),t})();class q{constructor(){this.$implicit=null,this.ngIf=null}}function z(t,e){if(e&&!e.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${Object(r.sb)(e)}'.`)}let B=(()=>{class t{constructor(t,e=\"USD\"){this._locale=t,this._defaultCurrencyCode=e}transform(e,n,s=\"symbol\",i,o){if(!function(t){return!(null==t||\"\"===t||t!=t)}(e))return null;o=o||this._locale,\"boolean\"==typeof s&&(console&&console.warn&&console.warn('Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are \"code\", \"symbol\" or \"symbol-narrow\".'),s=s?\"symbol\":\"code\");let a=n||this._defaultCurrencyCode;\"code\"!==s&&(a=\"symbol\"===s||\"symbol-narrow\"===s?function(t,e,n=\"en\"){const s=function(t){return Object(r.hb)(t)[r.Y.Currencies]}(n)[t]||E[t]||[],i=s[1];return\"narrow\"===e&&\"string\"==typeof i?i:s[0]||t}(a,\"symbol\"===s?\"wide\":\"narrow\",o):s);try{return function(t,e,n,s,i){const o=function(t,e=\"-\"){const n={minInt:1,minFrac:0,maxFrac:0,posPre:\"\",posSuf:\"\",negPre:\"\",negSuf:\"\",gSize:0,lgSize:0},r=t.split(\";\"),s=r[0],i=r[1],o=-1!==s.indexOf(I)?s.split(I):[s.substring(0,s.lastIndexOf(D)+1),s.substring(s.lastIndexOf(D)+1)],a=o[0],c=o[1]||\"\";n.posPre=a.substr(0,a.indexOf(\"#\"));for(let l=0;l<c.length;l++){const t=c.charAt(l);t===D?n.minFrac=n.maxFrac=l+1:\"#\"===t?n.maxFrac=l+1:n.posSuf+=t}const u=a.split(\",\");if(n.gSize=u[1]?u[1].length:0,n.lgSize=u[2]||u[1]?(u[2]||u[1]).length:0,i){const t=s.length-n.posPre.length-n.posSuf.length,e=i.indexOf(\"#\");n.negPre=i.substr(0,e).replace(/'/g,\"\"),n.negSuf=i.substr(e+t).replace(/'/g,\"\")}else n.negPre=e+n.posPre,n.negSuf=n.posSuf;return n}(function(t,e){return Object(r.hb)(t)[r.Y.NumberFormats][e]}(e,T.Currency),j(e,A.MinusSign));return o.minFrac=function(t){let e;const n=E[t];return n&&(e=n[2]),\"number\"==typeof e?e:2}(s),o.maxFrac=o.minFrac,function(t,e,n,r,s,i,o=!1){let a=\"\",c=!1;if(isFinite(t)){let u=function(t){let e,n,r,s,i,o=Math.abs(t)+\"\",a=0;for((n=o.indexOf(I))>-1&&(o=o.replace(I,\"\")),(r=o.search(/e/i))>0?(n<0&&(n=r),n+=+o.slice(r+1),o=o.substring(0,r)):n<0&&(n=o.length),r=0;o.charAt(r)===D;r++);if(r===(i=o.length))e=[0],n=1;else{for(i--;o.charAt(i)===D;)i--;for(n-=r,e=[],s=0;r<=i;r++,s++)e[s]=Number(o.charAt(r))}return n>22&&(e=e.splice(0,21),a=n-1,n=1),{digits:e,exponent:a,integerLen:n}}(t);o&&(u=function(t){if(0===t.digits[0])return t;const e=t.digits.length-t.integerLen;return t.exponent?t.exponent+=2:(0===e?t.digits.push(0,0):1===e&&t.digits.push(0),t.integerLen+=2),t}(u));let l=e.minInt,h=e.minFrac,d=e.maxFrac;if(i){const t=i.match(R);if(null===t)throw new Error(i+\" is not a valid digit info\");const e=t[1],n=t[3],r=t[5];null!=e&&(l=N(e)),null!=n&&(h=N(n)),null!=r?d=N(r):null!=n&&h>d&&(d=h)}!function(t,e,n){if(e>n)throw new Error(`The minimum number of digits after fraction (${e}) is higher than the maximum (${n}).`);let r=t.digits,s=r.length-t.integerLen;const i=Math.min(Math.max(e,s),n);let o=i+t.integerLen,a=r[o];if(o>0){r.splice(Math.max(t.integerLen,o));for(let t=o;t<r.length;t++)r[t]=0}else{s=Math.max(0,s),t.integerLen=1,r.length=Math.max(1,o=i+1),r[0]=0;for(let t=1;t<o;t++)r[t]=0}if(a>=5)if(o-1<0){for(let e=0;e>o;e--)r.unshift(0),t.integerLen++;r.unshift(1),t.integerLen++}else r[o-1]++;for(;s<Math.max(0,i);s++)r.push(0);let c=0!==i;const u=e+t.integerLen,l=r.reduceRight(function(t,e,n,r){return r[n]=(e+=t)<10?e:e-10,c&&(0===r[n]&&n>=u?r.pop():c=!1),e>=10?1:0},0);l&&(r.unshift(l),t.integerLen++)}(u,h,d);let p=u.digits,f=u.integerLen;const g=u.exponent;let m=[];for(c=p.every(t=>!t);f<l;f++)p.unshift(0);for(;f<0;f++)p.unshift(0);f>0?m=p.splice(f,p.length):(m=p,p=[0]);const b=[];for(p.length>=e.lgSize&&b.unshift(p.splice(-e.lgSize,p.length).join(\"\"));p.length>e.gSize;)b.unshift(p.splice(-e.gSize,p.length).join(\"\"));p.length&&b.unshift(p.join(\"\")),a=b.join(j(n,r)),m.length&&(a+=j(n,s)+m.join(\"\")),g&&(a+=j(n,A.Exponential)+\"+\"+g)}else a=j(n,A.Infinity);return a=t<0&&!c?e.negPre+a+e.negSuf:e.posPre+a+e.posSuf,a}(t,o,e,A.CurrencyGroup,A.CurrencyDecimal,i).replace(\"\\xa4\",n).replace(\"\\xa4\",\"\").trim()}(function(t){if(\"string\"==typeof t&&!isNaN(Number(t)-parseFloat(t)))return Number(t);if(\"number\"!=typeof t)throw new Error(t+\" is not a number\");return t}(e),o,a,n,i)}catch(c){throw function(t,e){return Error(`InvalidPipeArgument: '${e}' for pipe '${Object(r.sb)(t)}'`)}(t,c.message)}}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(r.u),r.Hb(r.k))},t.\\u0275pipe=r.Gb({name:\"currency\",type:t,pure:!0}),t})(),K=(()=>{class t{}return t.\\u0275mod=r.Fb({type:t}),t.\\u0275inj=r.Eb({factory:function(e){return new(e||t)},providers:[{provide:V,useClass:L}]}),t})();const W=\"browser\";function J(t){return t===W}let G=(()=>{class t{}return t.\\u0275prov=Object(r.Db)({token:t,providedIn:\"root\",factory:()=>new Z(Object(r.Ob)(c),window,Object(r.Ob)(r.m))}),t})();class Z{constructor(t,e,n){this.document=t,this.window=e,this.errorHandler=n,this.offset=()=>[0,0]}setOffset(t){this.offset=Array.isArray(t)?()=>t:t}getScrollPosition(){return this.supportsScrolling()?[this.window.scrollX,this.window.scrollY]:[0,0]}scrollToPosition(t){this.supportsScrolling()&&this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){if(this.supportsScrolling()){const e=this.document.getElementById(t)||this.document.getElementsByName(t)[0];e&&this.scrollToElement(e)}}setHistoryScrollRestoration(t){if(this.supportScrollRestoration()){const e=this.window.history;e&&e.scrollRestoration&&(e.scrollRestoration=t)}}scrollToElement(t){const e=t.getBoundingClientRect(),n=e.left+this.window.pageXOffset,r=e.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo(n-s[0],r-s[1])}supportScrollRestoration(){try{if(!this.window||!this.window.scrollTo)return!1;const t=Q(this.window.history)||Q(Object.getPrototypeOf(this.window.history));return!(!t||!t.writable&&!t.set)}catch(t){return!1}}supportsScrolling(){try{return!!this.window.scrollTo}catch(t){return!1}}}function Q(t){return Object.getOwnPropertyDescriptor(t,\"scrollRestoration\")}},pLZG:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return s});var r=n(\"7o/Q\");function s(t,e){return function(n){return n.lift(new i(t,e))}}class i{constructor(t,e){this.predicate=t,this.thisArg=e}call(t,e){return e.subscribe(new o(t,this.predicate,this.thisArg))}}class o extends r.a{constructor(t,e,n){super(t),this.predicate=e,this.thisArg=n,this.count=0}_next(t){let e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}e&&this.destination.next(t)}}},quSY:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return a});var r=n(\"DH7j\"),s=n(\"XoHu\"),i=n(\"n6bG\");const o=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();let a=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:a,_unsubscribe:u,_subscriptions:l}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(Object(i.a)(u)){a&&(this._unsubscribe=void 0);try{u.call(this)}catch(h){e=h instanceof o?c(h.errors):[h]}}if(Object(r.a)(l)){let t=-1,n=l.length;for(;++t<n;){const n=l[t];if(Object(s.a)(n))try{n.unsubscribe()}catch(h){e=e||[],h instanceof o?e=e.concat(c(h.errors)):e.push(h)}}}if(e)throw new o(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case\"function\":n=new t(e);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error(\"unrecognized teardown \"+e+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof t){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const s=this._subscriptions;return null===s?this._subscriptions=[n]:s.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}var e;return t.EMPTY=((e=new t).closed=!0,e),t})();function c(t){return t.reduce((t,e)=>t.concat(e instanceof o?e.errors:e),[])}},\"tk/3\":function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return E}),n.d(e,\"b\",function(){return F}),n.d(e,\"c\",function(){return d});var r=n(\"fXoL\"),s=n(\"LRne\"),i=n(\"HDdC\"),o=n(\"bOdf\"),a=n(\"pLZG\"),c=n(\"lJxs\"),u=n(\"ofXK\");class l{}class h{}class d{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit=\"string\"==typeof t?()=>{this.headers=new Map,t.split(\"\\n\").forEach(t=>{const e=t.indexOf(\":\");if(e>0){const n=t.slice(0,e),r=n.toLowerCase(),s=t.slice(e+1).trim();this.maybeSetNormalizedName(n,r),this.headers.has(r)?this.headers.get(r).push(s):this.headers.set(r,[s])}})}:()=>{this.headers=new Map,Object.keys(t).forEach(e=>{let n=t[e];const r=e.toLowerCase();\"string\"==typeof n&&(n=[n]),n.length>0&&(this.headers.set(r,n),this.maybeSetNormalizedName(e,r))})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:\"a\"})}set(t,e){return this.clone({name:t,value:e,op:\"s\"})}delete(t,e){return this.clone({name:t,value:e,op:\"d\"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof d?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){const e=new d;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof d?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){const e=t.name.toLowerCase();switch(t.op){case\"a\":case\"s\":let n=t.value;if(\"string\"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(t.name,e);const r=(\"a\"===t.op?this.headers.get(e):void 0)||[];r.push(...n),this.headers.set(e,r);break;case\"d\":const s=t.value;if(s){let t=this.headers.get(e);if(!t)return;t=t.filter(t=>-1===s.indexOf(t)),0===t.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,t)}else this.headers.delete(e),this.normalizedNames.delete(e)}}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}}class p{encodeKey(t){return f(t)}encodeValue(t){return f(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}function f(t){return encodeURIComponent(t).replace(/%40/gi,\"@\").replace(/%3A/gi,\":\").replace(/%24/gi,\"$\").replace(/%2C/gi,\",\").replace(/%3B/gi,\";\").replace(/%2B/gi,\"+\").replace(/%3D/gi,\"=\").replace(/%3F/gi,\"?\").replace(/%2F/gi,\"/\")}class g{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new p,t.fromString){if(t.fromObject)throw new Error(\"Cannot specify both fromString and fromObject.\");this.map=function(t,e){const n=new Map;return t.length>0&&t.split(\"&\").forEach(t=>{const r=t.indexOf(\"=\"),[s,i]=-1==r?[e.decodeKey(t),\"\"]:[e.decodeKey(t.slice(0,r)),e.decodeValue(t.slice(r+1))],o=n.get(s)||[];o.push(i),n.set(s,o)}),n}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const n=t.fromObject[e];this.map.set(e,Array.isArray(n)?n:[n])})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:\"a\"})}set(t,e){return this.clone({param:t,value:e,op:\"s\"})}delete(t,e){return this.clone({param:t,value:e,op:\"d\"})}toString(){return this.init(),this.keys().map(t=>{const e=this.encoder.encodeKey(t);return this.map.get(t).map(t=>e+\"=\"+this.encoder.encodeValue(t)).join(\"&\")}).filter(t=>\"\"!==t).join(\"&\")}clone(t){const e=new g({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat([t]),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case\"a\":case\"s\":const e=(\"a\"===t.op?this.map.get(t.param):void 0)||[];e.push(t.value),this.map.set(t.param,e);break;case\"d\":if(void 0===t.value){this.map.delete(t.param);break}{let e=this.map.get(t.param)||[];const n=e.indexOf(t.value);-1!==n&&e.splice(n,1),e.length>0?this.map.set(t.param,e):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}function m(t){return\"undefined\"!=typeof ArrayBuffer&&t instanceof ArrayBuffer}function b(t){return\"undefined\"!=typeof Blob&&t instanceof Blob}function y(t){return\"undefined\"!=typeof FormData&&t instanceof FormData}class v{constructor(t,e,n,r){let s;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType=\"json\",this.method=t.toUpperCase(),function(t){switch(t){case\"DELETE\":case\"GET\":case\"HEAD\":case\"OPTIONS\":case\"JSONP\":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==n?n:null,s=r):s=n,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.params&&(this.params=s.params)),this.headers||(this.headers=new d),this.params){const t=this.params.toString();if(0===t.length)this.urlWithParams=e;else{const n=e.indexOf(\"?\");this.urlWithParams=e+(-1===n?\"?\":n<e.length-1?\"&\":\"\")+t}}else this.params=new g,this.urlWithParams=e}serializeBody(){return null===this.body?null:m(this.body)||b(this.body)||y(this.body)||\"string\"==typeof this.body?this.body:this.body instanceof g?this.body.toString():\"object\"==typeof this.body||\"boolean\"==typeof this.body||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}detectContentTypeHeader(){return null===this.body||y(this.body)?null:b(this.body)?this.body.type||null:m(this.body)?null:\"string\"==typeof this.body?\"text/plain\":this.body instanceof g?\"application/x-www-form-urlencoded;charset=UTF-8\":\"object\"==typeof this.body||\"number\"==typeof this.body||Array.isArray(this.body)?\"application/json\":null}clone(t={}){const e=t.method||this.method,n=t.url||this.url,r=t.responseType||this.responseType,s=void 0!==t.body?t.body:this.body,i=void 0!==t.withCredentials?t.withCredentials:this.withCredentials,o=void 0!==t.reportProgress?t.reportProgress:this.reportProgress;let a=t.headers||this.headers,c=t.params||this.params;return void 0!==t.setHeaders&&(a=Object.keys(t.setHeaders).reduce((e,n)=>e.set(n,t.setHeaders[n]),a)),t.setParams&&(c=Object.keys(t.setParams).reduce((e,n)=>e.set(n,t.setParams[n]),c)),new v(e,n,s,{params:c,headers:a,reportProgress:o,responseType:r,withCredentials:i})}}var _=function(t){return t[t.Sent=0]=\"Sent\",t[t.UploadProgress=1]=\"UploadProgress\",t[t.ResponseHeader=2]=\"ResponseHeader\",t[t.DownloadProgress=3]=\"DownloadProgress\",t[t.Response=4]=\"Response\",t[t.User=5]=\"User\",t}({});class w{constructor(t,e=200,n=\"OK\"){this.headers=t.headers||new d,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||n,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class C extends w{constructor(t={}){super(t),this.type=_.ResponseHeader}clone(t={}){return new C({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class O extends w{constructor(t={}){super(t),this.type=_.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new O({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class S extends w{constructor(t){super(t,0,\"Unknown Error\"),this.name=\"HttpErrorResponse\",this.ok=!1,this.message=this.status>=200&&this.status<300?\"Http failure during parsing for \"+(t.url||\"(unknown url)\"):`Http failure response for ${t.url||\"(unknown url)\"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}function x(t,e){return{body:e,headers:t.headers,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials}}let E=(()=>{class t{constructor(t){this.handler=t}request(t,e,n={}){let r;if(t instanceof v)r=t;else{let s=void 0;s=n.headers instanceof d?n.headers:new d(n.headers);let i=void 0;n.params&&(i=n.params instanceof g?n.params:new g({fromObject:n.params})),r=new v(t,e,void 0!==n.body?n.body:null,{headers:s,params:i,reportProgress:n.reportProgress,responseType:n.responseType||\"json\",withCredentials:n.withCredentials})}const i=Object(s.a)(r).pipe(Object(o.a)(t=>this.handler.handle(t)));if(t instanceof v||\"events\"===n.observe)return i;const u=i.pipe(Object(a.a)(t=>t instanceof O));switch(n.observe||\"body\"){case\"body\":switch(r.responseType){case\"arraybuffer\":return u.pipe(Object(c.a)(t=>{if(null!==t.body&&!(t.body instanceof ArrayBuffer))throw new Error(\"Response is not an ArrayBuffer.\");return t.body}));case\"blob\":return u.pipe(Object(c.a)(t=>{if(null!==t.body&&!(t.body instanceof Blob))throw new Error(\"Response is not a Blob.\");return t.body}));case\"text\":return u.pipe(Object(c.a)(t=>{if(null!==t.body&&\"string\"!=typeof t.body)throw new Error(\"Response is not a string.\");return t.body}));case\"json\":default:return u.pipe(Object(c.a)(t=>t.body))}case\"response\":return u;default:throw new Error(`Unreachable: unhandled observe type ${n.observe}}`)}}delete(t,e={}){return this.request(\"DELETE\",t,e)}get(t,e={}){return this.request(\"GET\",t,e)}head(t,e={}){return this.request(\"HEAD\",t,e)}jsonp(t,e){return this.request(\"JSONP\",t,{params:(new g).append(e,\"JSONP_CALLBACK\"),observe:\"body\",responseType:\"json\"})}options(t,e={}){return this.request(\"OPTIONS\",t,e)}patch(t,e,n={}){return this.request(\"PATCH\",t,x(n,e))}post(t,e,n={}){return this.request(\"POST\",t,x(n,e))}put(t,e,n={}){return this.request(\"PUT\",t,x(n,e))}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(l))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})();class T{constructor(t,e){this.next=t,this.interceptor=e}handle(t){return this.interceptor.intercept(t,this.next)}}const k=new r.q(\"HTTP_INTERCEPTORS\");let A=(()=>{class t{intercept(t,e){return e.handle(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})();const j=/^\\)\\]\\}',?\\n/;class P{}let R=(()=>{class t{constructor(){}build(){return new XMLHttpRequest}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})(),I=(()=>{class t{constructor(t){this.xhrFactory=t}handle(t){if(\"JSONP\"===t.method)throw new Error(\"Attempted to construct Jsonp request without HttpClientJsonpModule installed.\");return new i.a(e=>{const n=this.xhrFactory.build();if(n.open(t.method,t.urlWithParams),t.withCredentials&&(n.withCredentials=!0),t.headers.forEach((t,e)=>n.setRequestHeader(t,e.join(\",\"))),t.headers.has(\"Accept\")||n.setRequestHeader(\"Accept\",\"application/json, text/plain, */*\"),!t.headers.has(\"Content-Type\")){const e=t.detectContentTypeHeader();null!==e&&n.setRequestHeader(\"Content-Type\",e)}if(t.responseType){const e=t.responseType.toLowerCase();n.responseType=\"json\"!==e?e:\"text\"}const r=t.serializeBody();let s=null;const i=()=>{if(null!==s)return s;const e=1223===n.status?204:n.status,r=n.statusText||\"OK\",i=new d(n.getAllResponseHeaders()),o=function(t){return\"responseURL\"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader(\"X-Request-URL\"):null}(n)||t.url;return s=new C({headers:i,status:e,statusText:r,url:o}),s},o=()=>{let{headers:r,status:s,statusText:o,url:a}=i(),c=null;204!==s&&(c=void 0===n.response?n.responseText:n.response),0===s&&(s=c?200:0);let u=s>=200&&s<300;if(\"json\"===t.responseType&&\"string\"==typeof c){const t=c;c=c.replace(j,\"\");try{c=\"\"!==c?JSON.parse(c):null}catch(l){c=t,u&&(u=!1,c={error:l,text:c})}}u?(e.next(new O({body:c,headers:r,status:s,statusText:o,url:a||void 0})),e.complete()):e.error(new S({error:c,headers:r,status:s,statusText:o,url:a||void 0}))},a=t=>{const{url:r}=i(),s=new S({error:t,status:n.status||0,statusText:n.statusText||\"Unknown Error\",url:r||void 0});e.error(s)};let c=!1;const u=r=>{c||(e.next(i()),c=!0);let s={type:_.DownloadProgress,loaded:r.loaded};r.lengthComputable&&(s.total=r.total),\"text\"===t.responseType&&n.responseText&&(s.partialText=n.responseText),e.next(s)},l=t=>{let n={type:_.UploadProgress,loaded:t.loaded};t.lengthComputable&&(n.total=t.total),e.next(n)};return n.addEventListener(\"load\",o),n.addEventListener(\"error\",a),t.reportProgress&&(n.addEventListener(\"progress\",u),null!==r&&n.upload&&n.upload.addEventListener(\"progress\",l)),n.send(r),e.next({type:_.Sent}),()=>{n.removeEventListener(\"error\",a),n.removeEventListener(\"load\",o),t.reportProgress&&(n.removeEventListener(\"progress\",u),null!==r&&n.upload&&n.upload.removeEventListener(\"progress\",l)),n.readyState!==n.DONE&&n.abort()}})}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(P))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})();const D=new r.q(\"XSRF_COOKIE_NAME\"),N=new r.q(\"XSRF_HEADER_NAME\");class V{}let L=(()=>{class t{constructor(t,e,n){this.doc=t,this.platform=e,this.cookieName=n,this.lastCookieString=\"\",this.lastToken=null,this.parseCount=0}getToken(){if(\"server\"===this.platform)return null;const t=this.doc.cookie||\"\";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=Object(u.r)(t,this.cookieName),this.lastCookieString=t),this.lastToken}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(u.d),r.Ob(r.B),r.Ob(D))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})(),M=(()=>{class t{constructor(t,e){this.tokenService=t,this.headerName=e}intercept(t,e){const n=t.url.toLowerCase();if(\"GET\"===t.method||\"HEAD\"===t.method||n.startsWith(\"http://\")||n.startsWith(\"https://\"))return e.handle(t);const r=this.tokenService.getToken();return null===r||t.headers.has(this.headerName)||(t=t.clone({headers:t.headers.set(this.headerName,r)})),e.handle(t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(V),r.Ob(N))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})(),U=(()=>{class t{constructor(t,e){this.backend=t,this.injector=e,this.chain=null}handle(t){if(null===this.chain){const t=this.injector.get(k,[]);this.chain=t.reduceRight((t,e)=>new T(t,e),this.backend)}return this.chain.handle(t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(h),r.Ob(r.r))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})(),H=(()=>{class t{static disable(){return{ngModule:t,providers:[{provide:M,useClass:A}]}}static withOptions(e={}){return{ngModule:t,providers:[e.cookieName?{provide:D,useValue:e.cookieName}:[],e.headerName?{provide:N,useValue:e.headerName}:[]]}}}return t.\\u0275mod=r.Fb({type:t}),t.\\u0275inj=r.Eb({factory:function(e){return new(e||t)},providers:[M,{provide:k,useExisting:M,multi:!0},{provide:V,useClass:L},{provide:D,useValue:\"XSRF-TOKEN\"},{provide:N,useValue:\"X-XSRF-TOKEN\"}]}),t})(),F=(()=>{class t{}return t.\\u0275mod=r.Fb({type:t}),t.\\u0275inj=r.Eb({factory:function(e){return new(e||t)},providers:[E,{provide:l,useClass:U},I,{provide:h,useExisting:I},R,{provide:P,useExisting:R}],imports:[[H.withOptions({cookieName:\"XSRF-TOKEN\",headerName:\"X-XSRF-TOKEN\"})]]}),t})()},tyNb:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return ue}),n.d(e,\"b\",function(){return An}),n.d(e,\"c\",function(){return jn}),n.d(e,\"d\",function(){return In}),n.d(e,\"e\",function(){return zn}),n.d(e,\"f\",function(){return Dn});var r=n(\"ofXK\"),s=n(\"fXoL\"),i=n(\"LRne\"),o=n(\"Cfvw\"),a=n(\"XNiG\"),c=n(\"9ppp\");class u extends a.a{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const e=super._subscribe(t);return e&&!e.closed&&t.next(this._value),e}getValue(){if(this.hasError)throw this.thrownError;if(this.closed)throw new c.a;return this._value}next(t){super.next(this._value=t)}}var l=n(\"z+Ro\"),h=n(\"DH7j\"),d=n(\"7o/Q\");class p extends d.a{notifyNext(t,e,n,r,s){this.destination.next(e)}notifyError(t,e){this.destination.error(t)}notifyComplete(t){this.destination.complete()}}class f extends d.a{constructor(t,e,n){super(),this.parent=t,this.outerValue=e,this.outerIndex=n,this.index=0}_next(t){this.parent.notifyNext(this.outerValue,t,this.outerIndex,this.index++,this)}_error(t){this.parent.notifyError(t,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}var g=n(\"SeVD\"),m=n(\"HDdC\");function b(t,e,n,r,s=new f(t,n,r)){if(!s.closed)return e instanceof m.a?e.subscribe(s):Object(g.a)(e)(s)}var y=n(\"yCtX\");const v={};class _{constructor(t){this.resultSelector=t}call(t,e){return e.subscribe(new w(t,this.resultSelector))}}class w extends p{constructor(t,e){super(t),this.resultSelector=e,this.active=0,this.values=[],this.observables=[]}_next(t){this.values.push(v),this.observables.push(t)}_complete(){const t=this.observables,e=t.length;if(0===e)this.destination.complete();else{this.active=e,this.toRespond=e;for(let n=0;n<e;n++)this.add(b(this,t[n],void 0,n))}}notifyComplete(t){0==(this.active-=1)&&this.destination.complete()}notifyNext(t,e,n){const r=this.values,s=this.toRespond?r[n]===v?--this.toRespond:this.toRespond:0;r[n]=e,0===s&&(this.resultSelector?this._tryResultSelector(r):this.destination.next(r.slice()))}_tryResultSelector(t){let e;try{e=this.resultSelector.apply(this,t)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}const C=(()=>{function t(){return Error.call(this),this.message=\"no elements in sequence\",this.name=\"EmptyError\",this}return t.prototype=Object.create(Error.prototype),t})();var O=n(\"NXyV\"),S=n(\"EY2u\"),x=n(\"lJxs\"),E=n(\"0EUg\"),T=n(\"pLZG\"),k=n(\"4I5i\");function A(t){return function(e){return 0===t?Object(S.b)():e.lift(new j(t))}}class j{constructor(t){if(this.total=t,this.total<0)throw new k.a}call(t,e){return e.subscribe(new P(t,this.total))}}class P extends d.a{constructor(t,e){super(t),this.total=e,this.ring=new Array,this.count=0}_next(t){const e=this.ring,n=this.total,r=this.count++;e.length<n?e.push(t):e[r%n]=t}_complete(){const t=this.destination;let e=this.count;if(e>0){const n=this.count>=this.total?this.total:this.count,r=this.ring;for(let s=0;s<n;s++){const s=e++%n;t.next(r[s])}}t.complete()}}function R(t=N){return e=>e.lift(new I(t))}class I{constructor(t){this.errorFactory=t}call(t,e){return e.subscribe(new D(t,this.errorFactory))}}class D extends d.a{constructor(t,e){super(t),this.errorFactory=e,this.hasValue=!1}_next(t){this.hasValue=!0,this.destination.next(t)}_complete(){if(this.hasValue)return this.destination.complete();{let e;try{e=this.errorFactory()}catch(t){e=t}this.destination.error(e)}}}function N(){return new C}function V(t=null){return e=>e.lift(new L(t))}class L{constructor(t){this.defaultValue=t}call(t,e){return e.subscribe(new M(t,this.defaultValue))}}class M extends d.a{constructor(t,e){super(t),this.defaultValue=e,this.isEmpty=!0}_next(t){this.isEmpty=!1,this.destination.next(t)}_complete(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}var U=n(\"SpAZ\"),H=n(\"eIep\"),F=n(\"IzEk\"),$=n(\"GyhO\");class q{constructor(t,e,n=!1){this.accumulator=t,this.seed=e,this.hasSeed=n}call(t,e){return e.subscribe(new z(t,this.accumulator,this.seed,this.hasSeed))}}class z extends d.a{constructor(t,e,n,r){super(t),this.accumulator=e,this._seed=n,this.hasSeed=r,this.index=0}get seed(){return this._seed}set seed(t){this.hasSeed=!0,this._seed=t}_next(t){if(this.hasSeed)return this._tryNext(t);this.seed=t,this.destination.next(t)}_tryNext(t){const e=this.index++;let n;try{n=this.accumulator(this.seed,t,e)}catch(r){this.destination.error(r)}this.seed=n,this.destination.next(n)}}var B=n(\"zx2A\");function K(t){return function(e){const n=new W(t),r=e.lift(n);return n.caught=r}}class W{constructor(t){this.selector=t}call(t,e){return e.subscribe(new J(t,this.selector,this.caught))}}class J extends B.b{constructor(t,e,n){super(t),this.selector=e,this.caught=n}error(t){if(!this.isStopped){let n;try{n=this.selector(t,this.caught)}catch(e){return void super.error(e)}this._unsubscribeAndRecycle();const r=new B.a(this);this.add(r);const s=Object(B.c)(n,r);s!==r&&this.add(s)}}}var G=n(\"bOdf\");function Z(t,e){const n=arguments.length>=2;return r=>r.pipe(t?Object(T.a)((e,n)=>t(e,n,r)):U.a,Object(F.a)(1),n?V(e):R(()=>new C))}var Q=n(\"5+tZ\"),X=n(\"vkgz\"),Y=n(\"quSY\");class tt{constructor(t){this.callback=t}call(t,e){return e.subscribe(new et(t,this.callback))}}class et extends d.a{constructor(t,e){super(t),this.add(new Y.a(e))}}var nt=n(\"bHdf\");class rt{constructor(t,e){this.id=t,this.url=e}}class st extends rt{constructor(t,e,n=\"imperative\",r=null){super(t,e),this.navigationTrigger=n,this.restoredState=r}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class it extends rt{constructor(t,e,n){super(t,e),this.urlAfterRedirects=n}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class ot extends rt{constructor(t,e,n){super(t,e),this.reason=n}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class at extends rt{constructor(t,e,n){super(t,e),this.error=n}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class ct extends rt{constructor(t,e,n,r){super(t,e),this.urlAfterRedirects=n,this.state=r}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class ut extends rt{constructor(t,e,n,r){super(t,e),this.urlAfterRedirects=n,this.state=r}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class lt extends rt{constructor(t,e,n,r,s){super(t,e),this.urlAfterRedirects=n,this.state=r,this.shouldActivate=s}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class ht extends rt{constructor(t,e,n,r){super(t,e),this.urlAfterRedirects=n,this.state=r}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class dt extends rt{constructor(t,e,n,r){super(t,e),this.urlAfterRedirects=n,this.state=r}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class pt{constructor(t){this.route=t}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class ft{constructor(t){this.route=t}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class gt{constructor(t){this.snapshot=t}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||\"\"}')`}}class mt{constructor(t){this.snapshot=t}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||\"\"}')`}}class bt{constructor(t){this.snapshot=t}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||\"\"}')`}}class yt{constructor(t){this.snapshot=t}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||\"\"}')`}}class vt{constructor(t,e,n){this.routerEvent=t,this.position=e,this.anchor=n}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}const _t=\"primary\";class wt{constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){const e=this.params[t];return Array.isArray(e)?e[0]:e}return null}getAll(t){if(this.has(t)){const e=this.params[t];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}}function Ct(t){return new wt(t)}function Ot(t){const e=Error(\"NavigationCancelingError: \"+t);return e.ngNavigationCancelingError=!0,e}function St(t,e,n){const r=n.path.split(\"/\");if(r.length>t.length)return null;if(\"full\"===n.pathMatch&&(e.hasChildren()||r.length<t.length))return null;const s={};for(let i=0;i<r.length;i++){const e=r[i],n=t[i];if(e.startsWith(\":\"))s[e.substring(1)]=n;else if(e!==n.path)return null}return{consumed:t.slice(0,r.length),posParams:s}}function xt(t,e){const n=Object.keys(t),r=Object.keys(e);if(!n||!r||n.length!=r.length)return!1;let s;for(let i=0;i<n.length;i++)if(s=n[i],!Et(t[s],e[s]))return!1;return!0}function Et(t,e){if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return!1;const n=[...t].sort(),r=[...e].sort();return n.every((t,e)=>r[e]===t)}return t===e}function Tt(t){return Array.prototype.concat.apply([],t)}function kt(t){return t.length>0?t[t.length-1]:null}function At(t,e){for(const n in t)t.hasOwnProperty(n)&&e(t[n],n)}function jt(t){return Object(s.ob)(t)?t:Object(s.pb)(t)?Object(o.a)(Promise.resolve(t)):Object(i.a)(t)}function Pt(t,e,n){return n?function(t,e){return xt(t,e)}(t.queryParams,e.queryParams)&&Rt(t.root,e.root):function(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(n=>Et(t[n],e[n]))}(t.queryParams,e.queryParams)&&It(t.root,e.root)}function Rt(t,e){if(!Mt(t.segments,e.segments))return!1;if(t.numberOfChildren!==e.numberOfChildren)return!1;for(const n in e.children){if(!t.children[n])return!1;if(!Rt(t.children[n],e.children[n]))return!1}return!0}function It(t,e){return Dt(t,e,e.segments)}function Dt(t,e,n){if(t.segments.length>n.length)return!!Mt(t.segments.slice(0,n.length),n)&&!e.hasChildren();if(t.segments.length===n.length){if(!Mt(t.segments,n))return!1;for(const n in e.children){if(!t.children[n])return!1;if(!It(t.children[n],e.children[n]))return!1}return!0}{const r=n.slice(0,t.segments.length),s=n.slice(t.segments.length);return!!Mt(t.segments,r)&&!!t.children.primary&&Dt(t.children.primary,e,s)}}class Nt{constructor(t,e,n){this.root=t,this.queryParams=e,this.fragment=n}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Ct(this.queryParams)),this._queryParamMap}toString(){return $t.serialize(this)}}class Vt{constructor(t,e){this.segments=t,this.children=e,this.parent=null,At(e,(t,e)=>t.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return qt(this)}}class Lt{constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap||(this._parameterMap=Ct(this.parameters)),this._parameterMap}toString(){return Zt(this)}}function Mt(t,e){return t.length===e.length&&t.every((t,n)=>t.path===e[n].path)}function Ut(t,e){let n=[];return At(t.children,(t,r)=>{r===_t&&(n=n.concat(e(t,r)))}),At(t.children,(t,r)=>{r!==_t&&(n=n.concat(e(t,r)))}),n}class Ht{}class Ft{parse(t){const e=new ee(t);return new Nt(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){return`${\"/\"+zt(t.root,!0)}${function(t){const e=Object.keys(t).map(e=>{const n=t[e];return Array.isArray(n)?n.map(t=>`${Kt(e)}=${Kt(t)}`).join(\"&\"):`${Kt(e)}=${Kt(n)}`});return e.length?\"?\"+e.join(\"&\"):\"\"}(t.queryParams)}${\"string\"==typeof t.fragment?\"#\"+encodeURI(t.fragment):\"\"}`}}const $t=new Ft;function qt(t){return t.segments.map(t=>Zt(t)).join(\"/\")}function zt(t,e){if(!t.hasChildren())return qt(t);if(e){const e=t.children.primary?zt(t.children.primary,!1):\"\",n=[];return At(t.children,(t,e)=>{e!==_t&&n.push(`${e}:${zt(t,!1)}`)}),n.length>0?`${e}(${n.join(\"//\")})`:e}{const e=Ut(t,(e,n)=>n===_t?[zt(t.children.primary,!1)]:[`${n}:${zt(e,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children.primary?`${qt(t)}/${e[0]}`:`${qt(t)}/(${e.join(\"//\")})`}}function Bt(t){return encodeURIComponent(t).replace(/%40/g,\"@\").replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\")}function Kt(t){return Bt(t).replace(/%3B/gi,\";\")}function Wt(t){return Bt(t).replace(/\\(/g,\"%28\").replace(/\\)/g,\"%29\").replace(/%26/gi,\"&\")}function Jt(t){return decodeURIComponent(t)}function Gt(t){return Jt(t.replace(/\\+/g,\"%20\"))}function Zt(t){return`${Wt(t.path)}${e=t.parameters,Object.keys(e).map(t=>`;${Wt(t)}=${Wt(e[t])}`).join(\"\")}`;var e}const Qt=/^[^\\/()?;=#]+/;function Xt(t){const e=t.match(Qt);return e?e[0]:\"\"}const Yt=/^[^=?&#]+/,te=/^[^?&#]+/;class ee{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional(\"/\"),\"\"===this.remaining||this.peekStartsWith(\"?\")||this.peekStartsWith(\"#\")?new Vt([],{}):new Vt([],this.parseChildren())}parseQueryParams(){const t={};if(this.consumeOptional(\"?\"))do{this.parseQueryParam(t)}while(this.consumeOptional(\"&\"));return t}parseFragment(){return this.consumeOptional(\"#\")?decodeURIComponent(this.remaining):null}parseChildren(){if(\"\"===this.remaining)return{};this.consumeOptional(\"/\");const t=[];for(this.peekStartsWith(\"(\")||t.push(this.parseSegment());this.peekStartsWith(\"/\")&&!this.peekStartsWith(\"//\")&&!this.peekStartsWith(\"/(\");)this.capture(\"/\"),t.push(this.parseSegment());let e={};this.peekStartsWith(\"/(\")&&(this.capture(\"/\"),e=this.parseParens(!0));let n={};return this.peekStartsWith(\"(\")&&(n=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(n.primary=new Vt(t,e)),n}parseSegment(){const t=Xt(this.remaining);if(\"\"===t&&this.peekStartsWith(\";\"))throw new Error(`Empty path url segment cannot have parameters: '${this.remaining}'.`);return this.capture(t),new Lt(Jt(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(\";\");)this.parseParam(t);return t}parseParam(t){const e=Xt(this.remaining);if(!e)return;this.capture(e);let n=\"\";if(this.consumeOptional(\"=\")){const t=Xt(this.remaining);t&&(n=t,this.capture(n))}t[Jt(e)]=Jt(n)}parseQueryParam(t){const e=function(t){const e=t.match(Yt);return e?e[0]:\"\"}(this.remaining);if(!e)return;this.capture(e);let n=\"\";if(this.consumeOptional(\"=\")){const t=function(t){const e=t.match(te);return e?e[0]:\"\"}(this.remaining);t&&(n=t,this.capture(n))}const r=Gt(e),s=Gt(n);if(t.hasOwnProperty(r)){let e=t[r];Array.isArray(e)||(e=[e],t[r]=e),e.push(s)}else t[r]=s}parseParens(t){const e={};for(this.capture(\"(\");!this.consumeOptional(\")\")&&this.remaining.length>0;){const n=Xt(this.remaining),r=this.remaining[n.length];if(\"/\"!==r&&\")\"!==r&&\";\"!==r)throw new Error(`Cannot parse url '${this.url}'`);let s=void 0;n.indexOf(\":\")>-1?(s=n.substr(0,n.indexOf(\":\")),this.capture(s),this.capture(\":\")):t&&(s=_t);const i=this.parseChildren();e[s]=1===Object.keys(i).length?i.primary:new Vt([],i),this.consumeOptional(\"//\")}return e}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return!!this.peekStartsWith(t)&&(this.remaining=this.remaining.substring(t.length),!0)}capture(t){if(!this.consumeOptional(t))throw new Error(`Expected \"${t}\".`)}}class ne{constructor(t){this._root=t}get root(){return this._root.value}parent(t){const e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null}children(t){const e=re(t,this._root);return e?e.children.map(t=>t.value):[]}firstChild(t){const e=re(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){const e=se(t,this._root);return e.length<2?[]:e[e.length-2].children.map(t=>t.value).filter(e=>e!==t)}pathFromRoot(t){return se(t,this._root).map(t=>t.value)}}function re(t,e){if(t===e.value)return e;for(const n of e.children){const e=re(t,n);if(e)return e}return null}function se(t,e){if(t===e.value)return[e];for(const n of e.children){const r=se(t,n);if(r.length)return r.unshift(e),r}return[]}class ie{constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}}function oe(t){const e={};return t&&t.children.forEach(t=>e[t.value.outlet]=t),e}class ae extends ne{constructor(t,e){super(t),this.snapshot=e,pe(this,t)}toString(){return this.snapshot.toString()}}function ce(t,e){const n=function(t,e){const n=new he([],{},{},\"\",{},_t,e,null,t.root,-1,{});return new de(\"\",new ie(n,[]))}(t,e),r=new u([new Lt(\"\",{})]),s=new u({}),i=new u({}),o=new u({}),a=new u(\"\"),c=new ue(r,s,o,a,i,_t,e,n.root);return c.snapshot=n.root,new ae(new ie(c,[]),n)}class ue{constructor(t,e,n,r,s,i,o,a){this.url=t,this.params=e,this.queryParams=n,this.fragment=r,this.data=s,this.outlet=i,this.component=o,this._futureSnapshot=a}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe(Object(x.a)(t=>Ct(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(Object(x.a)(t=>Ct(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function le(t,e=\"emptyOnly\"){const n=t.pathFromRoot;let r=0;if(\"always\"!==e)for(r=n.length-1;r>=1;){const t=n[r],e=n[r-1];if(t.routeConfig&&\"\"===t.routeConfig.path)r--;else{if(e.component)break;r--}}return function(t){return t.reduce((t,e)=>({params:Object.assign(Object.assign({},t.params),e.params),data:Object.assign(Object.assign({},t.data),e.data),resolve:Object.assign(Object.assign({},t.resolve),e._resolvedData)}),{params:{},data:{},resolve:{}})}(n.slice(r))}class he{constructor(t,e,n,r,s,i,o,a,c,u,l){this.url=t,this.params=e,this.queryParams=n,this.fragment=r,this.data=s,this.outlet=i,this.component=o,this.routeConfig=a,this._urlSegment=c,this._lastPathIndex=u,this._resolve=l}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=Ct(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Ct(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(t=>t.toString()).join(\"/\")}', path:'${this.routeConfig?this.routeConfig.path:\"\"}')`}}class de extends ne{constructor(t,e){super(e),this.url=t,pe(this,e)}toString(){return fe(this._root)}}function pe(t,e){e.value._routerState=t,e.children.forEach(e=>pe(t,e))}function fe(t){const e=t.children.length>0?` { ${t.children.map(fe).join(\", \")} } `:\"\";return`${t.value}${e}`}function ge(t){if(t.snapshot){const e=t.snapshot,n=t._futureSnapshot;t.snapshot=n,xt(e.queryParams,n.queryParams)||t.queryParams.next(n.queryParams),e.fragment!==n.fragment&&t.fragment.next(n.fragment),xt(e.params,n.params)||t.params.next(n.params),function(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;++n)if(!xt(t[n],e[n]))return!1;return!0}(e.url,n.url)||t.url.next(n.url),xt(e.data,n.data)||t.data.next(n.data)}else t.snapshot=t._futureSnapshot,t.data.next(t._futureSnapshot.data)}function me(t,e){var n,r;return xt(t.params,e.params)&&Mt(n=t.url,r=e.url)&&n.every((t,e)=>xt(t.parameters,r[e].parameters))&&!(!t.parent!=!e.parent)&&(!t.parent||me(t.parent,e.parent))}function be(t,e,n){if(n&&t.shouldReuseRoute(e.value,n.value.snapshot)){const r=n.value;r._futureSnapshot=e.value;const s=function(t,e,n){return e.children.map(e=>{for(const r of n.children)if(t.shouldReuseRoute(e.value,r.value.snapshot))return be(t,e,r);return be(t,e)})}(t,e,n);return new ie(r,s)}{const n=t.retrieve(e.value);if(n){const t=n.route;return ye(e,t),t}{const n=new ue(new u((r=e.value).url),new u(r.params),new u(r.queryParams),new u(r.fragment),new u(r.data),r.outlet,r.component,r),s=e.children.map(e=>be(t,e));return new ie(n,s)}}var r}function ye(t,e){if(t.value.routeConfig!==e.value.routeConfig)throw new Error(\"Cannot reattach ActivatedRouteSnapshot created from a different route\");if(t.children.length!==e.children.length)throw new Error(\"Cannot reattach ActivatedRouteSnapshot with a different number of children\");e.value._futureSnapshot=t.value;for(let n=0;n<t.children.length;++n)ye(t.children[n],e.children[n])}function ve(t){return\"object\"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function _e(t){return\"object\"==typeof t&&null!=t&&t.outlets}function we(t,e,n,r,s){let i={};return r&&At(r,(t,e)=>{i[e]=Array.isArray(t)?t.map(t=>\"\"+t):\"\"+t}),new Nt(n.root===t?e:Ce(n.root,t,e),i,s)}function Ce(t,e,n){const r={};return At(t.children,(t,s)=>{r[s]=t===e?n:Ce(t,e,n)}),new Vt(t.segments,r)}class Oe{constructor(t,e,n){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=n,t&&n.length>0&&ve(n[0]))throw new Error(\"Root segment cannot have matrix parameters\");const r=n.find(_e);if(r&&r!==kt(n))throw new Error(\"{outlets:{}} has to be the last command\")}toRoot(){return this.isAbsolute&&1===this.commands.length&&\"/\"==this.commands[0]}}class Se{constructor(t,e,n){this.segmentGroup=t,this.processChildren=e,this.index=n}}function xe(t,e,n){if(t||(t=new Vt([],{})),0===t.segments.length&&t.hasChildren())return Ee(t,e,n);const r=function(t,e,n){let r=0,s=e;const i={match:!1,pathIndex:0,commandIndex:0};for(;s<t.segments.length;){if(r>=n.length)return i;const e=t.segments[s],o=n[r];if(_e(o))break;const a=\"\"+o,c=r<n.length-1?n[r+1]:null;if(s>0&&void 0===a)break;if(a&&c&&\"object\"==typeof c&&void 0===c.outlets){if(!je(a,c,e))return i;r+=2}else{if(!je(a,{},e))return i;r++}s++}return{match:!0,pathIndex:s,commandIndex:r}}(t,e,n),s=n.slice(r.commandIndex);if(r.match&&r.pathIndex<t.segments.length){const e=new Vt(t.segments.slice(0,r.pathIndex),{});return e.children.primary=new Vt(t.segments.slice(r.pathIndex),t.children),Ee(e,0,s)}return r.match&&0===s.length?new Vt(t.segments,{}):r.match&&!t.hasChildren()?Te(t,e,n):r.match?Ee(t,0,s):Te(t,e,n)}function Ee(t,e,n){if(0===n.length)return new Vt(t.segments,{});{const r=function(t){return _e(t[0])?t[0].outlets:{[_t]:t}}(n),s={};return At(r,(n,r)=>{null!==n&&(s[r]=xe(t.children[r],e,n))}),At(t.children,(t,e)=>{void 0===r[e]&&(s[e]=t)}),new Vt(t.segments,s)}}function Te(t,e,n){const r=t.segments.slice(0,e);let s=0;for(;s<n.length;){const i=n[s];if(_e(i)){const t=ke(i.outlets);return new Vt(r,t)}if(0===s&&ve(n[0])){r.push(new Lt(t.segments[e].path,n[0])),s++;continue}const o=_e(i)?i.outlets.primary:\"\"+i,a=s<n.length-1?n[s+1]:null;o&&a&&ve(a)?(r.push(new Lt(o,Ae(a))),s+=2):(r.push(new Lt(o,{})),s++)}return new Vt(r,{})}function ke(t){const e={};return At(t,(t,n)=>{null!==t&&(e[n]=Te(new Vt([],{}),0,t))}),e}function Ae(t){const e={};return At(t,(t,n)=>e[n]=\"\"+t),e}function je(t,e,n){return t==n.path&&xt(e,n.parameters)}class Pe{constructor(t,e,n,r){this.routeReuseStrategy=t,this.futureState=e,this.currState=n,this.forwardEvent=r}activate(t){const e=this.futureState._root,n=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,n,t),ge(this.futureState.root),this.activateChildRoutes(e,n,t)}deactivateChildRoutes(t,e,n){const r=oe(e);t.children.forEach(t=>{const e=t.value.outlet;this.deactivateRoutes(t,r[e],n),delete r[e]}),At(r,(t,e)=>{this.deactivateRouteAndItsChildren(t,n)})}deactivateRoutes(t,e,n){const r=t.value,s=e?e.value:null;if(r===s)if(r.component){const s=n.getContext(r.outlet);s&&this.deactivateChildRoutes(t,e,s.children)}else this.deactivateChildRoutes(t,e,n);else s&&this.deactivateRouteAndItsChildren(e,n)}deactivateRouteAndItsChildren(t,e){this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){const n=e.getContext(t.value.outlet);if(n&&n.outlet){const e=n.outlet.detach(),r=n.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:e,route:t,contexts:r})}}deactivateRouteAndOutlet(t,e){const n=e.getContext(t.value.outlet);if(n){const r=oe(t),s=t.value.component?n.children:e;At(r,(t,e)=>this.deactivateRouteAndItsChildren(t,s)),n.outlet&&(n.outlet.deactivate(),n.children.onOutletDeactivated())}}activateChildRoutes(t,e,n){const r=oe(e);t.children.forEach(t=>{this.activateRoutes(t,r[t.value.outlet],n),this.forwardEvent(new yt(t.value.snapshot))}),t.children.length&&this.forwardEvent(new mt(t.value.snapshot))}activateRoutes(t,e,n){const r=t.value,s=e?e.value:null;if(ge(r),r===s)if(r.component){const s=n.getOrCreateContext(r.outlet);this.activateChildRoutes(t,e,s.children)}else this.activateChildRoutes(t,e,n);else if(r.component){const e=n.getOrCreateContext(r.outlet);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){const t=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),e.children.onOutletReAttached(t.contexts),e.attachRef=t.componentRef,e.route=t.route.value,e.outlet&&e.outlet.attach(t.componentRef,t.route.value),Re(t.route)}else{const n=function(t){for(let e=t.parent;e;e=e.parent){const t=e.routeConfig;if(t&&t._loadedConfig)return t._loadedConfig;if(t&&t.component)return null}return null}(r.snapshot),s=n?n.module.componentFactoryResolver:null;e.attachRef=null,e.route=r,e.resolver=s,e.outlet&&e.outlet.activateWith(r,s),this.activateChildRoutes(t,null,e.children)}}else this.activateChildRoutes(t,null,n)}}function Re(t){ge(t.value),t.children.forEach(Re)}class Ie{constructor(t,e){this.routes=t,this.module=e}}function De(t){return\"function\"==typeof t}function Ne(t){return t instanceof Nt}const Ve=Symbol(\"INITIAL_VALUE\");function Le(){return Object(H.a)(t=>function(...t){let e=void 0,n=void 0;return Object(l.a)(t[t.length-1])&&(n=t.pop()),\"function\"==typeof t[t.length-1]&&(e=t.pop()),1===t.length&&Object(h.a)(t[0])&&(t=t[0]),Object(y.a)(t,n).lift(new _(e))}(...t.map(t=>t.pipe(Object(F.a)(1),function(...t){const e=t[t.length-1];return Object(l.a)(e)?(t.pop(),n=>Object($.a)(t,n,e)):e=>Object($.a)(t,e)}(Ve)))).pipe(function(t,e){let n=!1;return arguments.length>=2&&(n=!0),function(r){return r.lift(new q(t,e,n))}}((t,e)=>{let n=!1;return e.reduce((t,r,s)=>{if(t!==Ve)return t;if(r===Ve&&(n=!0),!n){if(!1===r)return r;if(s===e.length-1||Ne(r))return r}return t},t)},Ve),Object(T.a)(t=>t!==Ve),Object(x.a)(t=>Ne(t)?t:!0===t),Object(F.a)(1)))}let Me=(()=>{class t{}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=s.Bb({type:t,selectors:[[\"ng-component\"]],decls:1,vars:0,template:function(t,e){1&t&&s.Ib(0,\"router-outlet\")},directives:function(){return[Dn]},encapsulation:2}),t})();function Ue(t,e=\"\"){for(let n=0;n<t.length;n++){const r=t[n];He(r,Fe(e,r))}}function He(t,e){t.children&&Ue(t.children,e)}function Fe(t,e){return e?t||e.path?t&&!e.path?t+\"/\":!t&&e.path?e.path:`${t}/${e.path}`:\"\":t}function $e(t){const e=t.children&&t.children.map($e),n=e?Object.assign(Object.assign({},t),{children:e}):Object.assign({},t);return!n.component&&(e||n.loadChildren)&&n.outlet&&n.outlet!==_t&&(n.component=Me),n}function qe(t){return t.outlet||_t}class ze{constructor(t){this.segmentGroup=t||null}}class Be{constructor(t){this.urlTree=t}}function Ke(t){return new m.a(e=>e.error(new ze(t)))}function We(t){return new m.a(e=>e.error(new Be(t)))}function Je(t){return new m.a(e=>e.error(new Error(`Only absolute redirects can have named outlets. redirectTo: '${t}'`)))}class Ge{constructor(t,e,n,r,i){this.configLoader=e,this.urlSerializer=n,this.urlTree=r,this.config=i,this.allowRedirects=!0,this.ngModule=t.get(s.x)}apply(){return this.expandSegmentGroup(this.ngModule,this.config,this.urlTree.root,_t).pipe(Object(x.a)(t=>this.createUrlTree(t,this.urlTree.queryParams,this.urlTree.fragment))).pipe(K(t=>{if(t instanceof Be)return this.allowRedirects=!1,this.match(t.urlTree);if(t instanceof ze)throw this.noMatchError(t);throw t}))}match(t){return this.expandSegmentGroup(this.ngModule,this.config,t.root,_t).pipe(Object(x.a)(e=>this.createUrlTree(e,t.queryParams,t.fragment))).pipe(K(t=>{if(t instanceof ze)throw this.noMatchError(t);throw t}))}noMatchError(t){return new Error(`Cannot match any routes. URL Segment: '${t.segmentGroup}'`)}createUrlTree(t,e,n){const r=t.segments.length>0?new Vt([],{[_t]:t}):t;return new Nt(r,e,n)}expandSegmentGroup(t,e,n,r){return 0===n.segments.length&&n.hasChildren()?this.expandChildren(t,e,n).pipe(Object(x.a)(t=>new Vt([],t))):this.expandSegment(t,n,e,n.segments,r,!0)}expandChildren(t,e,n){return function(t,e){if(0===Object.keys(t).length)return Object(i.a)({});const n=[],r=[],s={};return At(t,(t,i)=>{const o=e(i,t).pipe(Object(x.a)(t=>s[i]=t));i===_t?n.push(o):r.push(o)}),i.a.apply(null,n.concat(r)).pipe(Object(E.a)(),function(t,e){const n=arguments.length>=2;return r=>r.pipe(t?Object(T.a)((e,n)=>t(e,n,r)):U.a,A(1),n?V(e):R(()=>new C))}(),Object(x.a)(()=>s))}(n.children,(n,r)=>this.expandSegmentGroup(t,e,r,n))}expandSegment(t,e,n,r,s,a){const c=function(t){return t.reduce((t,e)=>{const n=qe(e);return t.has(n)?t.get(n).push(e):t.set(n,[e]),t},new Map)}(n);c.has(s)||c.set(s,[]);const u=n=>Object(o.a)(n).pipe(Object(G.a)(o=>this.expandSegmentAgainstRoute(t,e,n,o,r,s,a).pipe(K(t=>{if(t instanceof ze)return Object(i.a)(null);throw t}))),Z(t=>null!==t),K(t=>{if(t instanceof C||\"EmptyError\"===t.name){if(this.noLeftoversInUrl(e,r,s))return Object(i.a)(new Vt([],{}));throw new ze(e)}throw t})),l=Array.from(c.entries()).map(([t,e])=>{const n=u(e);return t===s?n:n.pipe(Object(x.a)(()=>null),K(()=>Object(i.a)(null)))});return Object(o.a)(l).pipe(t=>t.lift(new _(void 0)),Z(),Object(x.a)(t=>t.find(t=>null!==t)))}noLeftoversInUrl(t,e,n){return 0===e.length&&!t.children[n]}expandSegmentAgainstRoute(t,e,n,r,s,i,o){return qe(r)!==i&&\"\"!==r.path?Ke(e):void 0===r.redirectTo?this.matchSegmentAgainstRoute(t,e,r,s):o&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,e,n,r,s,i):Ke(e)}expandSegmentAgainstRouteUsingRedirect(t,e,n,r,s,i){return\"**\"===r.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,n,r,i):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,n,r,s,i)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,e,n,r){const s=this.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith(\"/\")?We(s):this.lineralizeSegments(n,s).pipe(Object(Q.a)(n=>{const s=new Vt(n,{});return this.expandSegment(t,s,e,n,r,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,e,n,r,s,i){const{matched:o,consumedSegments:a,lastChild:c,positionalParamSegments:u}=Ze(e,r,s);if(!o)return Ke(e);const l=this.applyRedirectCommands(a,r.redirectTo,u);return r.redirectTo.startsWith(\"/\")?We(l):this.lineralizeSegments(r,l).pipe(Object(Q.a)(r=>this.expandSegment(t,e,n,r.concat(s.slice(c)),i,!1)))}matchSegmentAgainstRoute(t,e,n,r){if(\"**\"===n.path)return n.loadChildren?this.configLoader.load(t.injector,n).pipe(Object(x.a)(t=>(n._loadedConfig=t,new Vt(r,{})))):Object(i.a)(new Vt(r,{}));const{matched:s,consumedSegments:o,lastChild:a}=Ze(e,n,r);if(!s)return Ke(e);const c=r.slice(a);return this.getChildConfig(t,n,r).pipe(Object(Q.a)(t=>{const n=t.module,r=t.routes,{segmentGroup:s,slicedSegments:a}=function(t,e,n,r){return n.length>0&&function(t,e,n){return n.some(n=>Xe(t,e,n)&&qe(n)!==_t)}(t,n,r)?{segmentGroup:Qe(new Vt(e,function(t,e){const n={};n.primary=e;for(const r of t)\"\"===r.path&&qe(r)!==_t&&(n[qe(r)]=new Vt([],{}));return n}(r,new Vt(n,t.children)))),slicedSegments:[]}:0===n.length&&function(t,e,n){return n.some(n=>Xe(t,e,n))}(t,n,r)?{segmentGroup:Qe(new Vt(t.segments,function(t,e,n,r){const s={};for(const i of n)Xe(t,e,i)&&!r[qe(i)]&&(s[qe(i)]=new Vt([],{}));return Object.assign(Object.assign({},r),s)}(t,n,r,t.children))),slicedSegments:n}:{segmentGroup:t,slicedSegments:n}}(e,o,c,r);return 0===a.length&&s.hasChildren()?this.expandChildren(n,r,s).pipe(Object(x.a)(t=>new Vt(o,t))):0===r.length&&0===a.length?Object(i.a)(new Vt(o,{})):this.expandSegment(n,s,r,a,_t,!0).pipe(Object(x.a)(t=>new Vt(o.concat(t.segments),t.children)))}))}getChildConfig(t,e,n){return e.children?Object(i.a)(new Ie(e.children,t)):e.loadChildren?void 0!==e._loadedConfig?Object(i.a)(e._loadedConfig):this.runCanLoadGuards(t.injector,e,n).pipe(Object(Q.a)(n=>n?this.configLoader.load(t.injector,e).pipe(Object(x.a)(t=>(e._loadedConfig=t,t))):function(t){return new m.a(e=>e.error(Ot(`Cannot load children because the guard of the route \"path: '${t.path}'\" returned false`)))}(e))):Object(i.a)(new Ie([],t))}runCanLoadGuards(t,e,n){const r=e.canLoad;if(!r||0===r.length)return Object(i.a)(!0);const s=r.map(r=>{const s=t.get(r);let i;if(function(t){return t&&De(t.canLoad)}(s))i=s.canLoad(e,n);else{if(!De(s))throw new Error(\"Invalid CanLoad guard\");i=s(e,n)}return jt(i)});return Object(i.a)(s).pipe(Le(),Object(X.a)(t=>{if(!Ne(t))return;const e=Ot(`Redirecting to \"${this.urlSerializer.serialize(t)}\"`);throw e.url=t,e}),Object(x.a)(t=>!0===t))}lineralizeSegments(t,e){let n=[],r=e.root;for(;;){if(n=n.concat(r.segments),0===r.numberOfChildren)return Object(i.a)(n);if(r.numberOfChildren>1||!r.children.primary)return Je(t.redirectTo);r=r.children.primary}}applyRedirectCommands(t,e,n){return this.applyRedirectCreatreUrlTree(e,this.urlSerializer.parse(e),t,n)}applyRedirectCreatreUrlTree(t,e,n,r){const s=this.createSegmentGroup(t,e.root,n,r);return new Nt(s,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){const n={};return At(t,(t,r)=>{if(\"string\"==typeof t&&t.startsWith(\":\")){const s=t.substring(1);n[r]=e[s]}else n[r]=t}),n}createSegmentGroup(t,e,n,r){const s=this.createSegments(t,e.segments,n,r);let i={};return At(e.children,(e,s)=>{i[s]=this.createSegmentGroup(t,e,n,r)}),new Vt(s,i)}createSegments(t,e,n,r){return e.map(e=>e.path.startsWith(\":\")?this.findPosParam(t,e,r):this.findOrReturn(e,n))}findPosParam(t,e,n){const r=n[e.path.substring(1)];if(!r)throw new Error(`Cannot redirect to '${t}'. Cannot find '${e.path}'.`);return r}findOrReturn(t,e){let n=0;for(const r of e){if(r.path===t.path)return e.splice(n),r;n++}return t}}function Ze(t,e,n){if(\"\"===e.path)return\"full\"===e.pathMatch&&(t.hasChildren()||n.length>0)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:[],lastChild:0,positionalParamSegments:{}};const r=(e.matcher||St)(n,t,e);return r?{matched:!0,consumedSegments:r.consumed,lastChild:r.consumed.length,positionalParamSegments:r.posParams}:{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}}function Qe(t){if(1===t.numberOfChildren&&t.children.primary){const e=t.children.primary;return new Vt(t.segments.concat(e.segments),e.children)}return t}function Xe(t,e,n){return(!(t.hasChildren()||e.length>0)||\"full\"!==n.pathMatch)&&\"\"===n.path&&void 0!==n.redirectTo}class Ye{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class tn{constructor(t,e){this.component=t,this.route=e}}function en(t,e,n){const r=t._root;return rn(r,e?e._root:null,n,[r.value])}function nn(t,e,n){const r=function(t){if(!t)return null;for(let e=t.parent;e;e=e.parent){const t=e.routeConfig;if(t&&t._loadedConfig)return t._loadedConfig}return null}(e);return(r?r.module.injector:n).get(t)}function rn(t,e,n,r,s={canDeactivateChecks:[],canActivateChecks:[]}){const i=oe(e);return t.children.forEach(t=>{!function(t,e,n,r,s={canDeactivateChecks:[],canActivateChecks:[]}){const i=t.value,o=e?e.value:null,a=n?n.getContext(t.value.outlet):null;if(o&&i.routeConfig===o.routeConfig){const c=function(t,e,n){if(\"function\"==typeof n)return n(t,e);switch(n){case\"pathParamsChange\":return!Mt(t.url,e.url);case\"pathParamsOrQueryParamsChange\":return!Mt(t.url,e.url)||!xt(t.queryParams,e.queryParams);case\"always\":return!0;case\"paramsOrQueryParamsChange\":return!me(t,e)||!xt(t.queryParams,e.queryParams);case\"paramsChange\":default:return!me(t,e)}}(o,i,i.routeConfig.runGuardsAndResolvers);c?s.canActivateChecks.push(new Ye(r)):(i.data=o.data,i._resolvedData=o._resolvedData),rn(t,e,i.component?a?a.children:null:n,r,s),c&&a&&a.outlet&&a.outlet.isActivated&&s.canDeactivateChecks.push(new tn(a.outlet.component,o))}else o&&sn(e,a,s),s.canActivateChecks.push(new Ye(r)),rn(t,null,i.component?a?a.children:null:n,r,s)}(t,i[t.value.outlet],n,r.concat([t.value]),s),delete i[t.value.outlet]}),At(i,(t,e)=>sn(t,n.getContext(e),s)),s}function sn(t,e,n){const r=oe(t),s=t.value;At(r,(t,r)=>{sn(t,s.component?e?e.children.getContext(r):null:e,n)}),n.canDeactivateChecks.push(new tn(s.component&&e&&e.outlet&&e.outlet.isActivated?e.outlet.component:null,s))}function on(t,e){return null!==t&&e&&e(new bt(t)),Object(i.a)(!0)}function an(t,e){return null!==t&&e&&e(new gt(t)),Object(i.a)(!0)}function cn(t,e,n){const r=e.routeConfig?e.routeConfig.canActivate:null;if(!r||0===r.length)return Object(i.a)(!0);const s=r.map(r=>Object(O.a)(()=>{const s=nn(r,e,n);let i;if(function(t){return t&&De(t.canActivate)}(s))i=jt(s.canActivate(e,t));else{if(!De(s))throw new Error(\"Invalid CanActivate guard\");i=jt(s(e,t))}return i.pipe(Z())}));return Object(i.a)(s).pipe(Le())}function un(t,e,n){const r=e[e.length-1],s=e.slice(0,e.length-1).reverse().map(t=>function(t){const e=t.routeConfig?t.routeConfig.canActivateChild:null;return e&&0!==e.length?{node:t,guards:e}:null}(t)).filter(t=>null!==t).map(e=>Object(O.a)(()=>{const s=e.guards.map(s=>{const i=nn(s,e.node,n);let o;if(function(t){return t&&De(t.canActivateChild)}(i))o=jt(i.canActivateChild(r,t));else{if(!De(i))throw new Error(\"Invalid CanActivateChild guard\");o=jt(i(r,t))}return o.pipe(Z())});return Object(i.a)(s).pipe(Le())}));return Object(i.a)(s).pipe(Le())}class ln{}class hn{constructor(t,e,n,r,s,i){this.rootComponentType=t,this.config=e,this.urlTree=n,this.url=r,this.paramsInheritanceStrategy=s,this.relativeLinkResolution=i}recognize(){try{const t=fn(this.urlTree.root,[],[],this.config,this.relativeLinkResolution).segmentGroup,e=this.processSegmentGroup(this.config,t,_t),n=new he([],Object.freeze({}),Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,{},_t,this.rootComponentType,null,this.urlTree.root,-1,{}),r=new ie(n,e),s=new de(this.url,r);return this.inheritParamsAndData(s._root),Object(i.a)(s)}catch(t){return new m.a(e=>e.error(t))}}inheritParamsAndData(t){const e=t.value,n=le(e,this.paramsInheritanceStrategy);e.params=Object.freeze(n.params),e.data=Object.freeze(n.data),t.children.forEach(t=>this.inheritParamsAndData(t))}processSegmentGroup(t,e,n){return 0===e.segments.length&&e.hasChildren()?this.processChildren(t,e):this.processSegment(t,e,e.segments,n)}processChildren(t,e){const n=Ut(e,(e,n)=>this.processSegmentGroup(t,e,n));return function(t){const e={};t.forEach(t=>{const n=e[t.value.outlet];if(n){const e=n.url.map(t=>t.toString()).join(\"/\"),r=t.value.url.map(t=>t.toString()).join(\"/\");throw new Error(`Two segments cannot have the same outlet name: '${e}' and '${r}'.`)}e[t.value.outlet]=t.value})}(n),n.sort((t,e)=>t.value.outlet===_t?-1:e.value.outlet===_t?1:t.value.outlet.localeCompare(e.value.outlet)),n}processSegment(t,e,n,r){for(const i of t)try{return this.processSegmentAgainstRoute(i,e,n,r)}catch(s){if(!(s instanceof ln))throw s}if(this.noLeftoversInUrl(e,n,r))return[];throw new ln}noLeftoversInUrl(t,e,n){return 0===e.length&&!t.children[n]}processSegmentAgainstRoute(t,e,n,r){if(t.redirectTo)throw new ln;if((t.outlet||_t)!==r)throw new ln;let s,i=[],o=[];if(\"**\"===t.path){const i=n.length>0?kt(n).parameters:{};s=new he(n,i,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,bn(t),r,t.component,t,dn(e),pn(e)+n.length,yn(t))}else{const a=function(t,e,n){if(\"\"===e.path){if(\"full\"===e.pathMatch&&(t.hasChildren()||n.length>0))throw new ln;return{consumedSegments:[],lastChild:0,parameters:{}}}const r=(e.matcher||St)(n,t,e);if(!r)throw new ln;const s={};At(r.posParams,(t,e)=>{s[e]=t.path});const i=r.consumed.length>0?Object.assign(Object.assign({},s),r.consumed[r.consumed.length-1].parameters):s;return{consumedSegments:r.consumed,lastChild:r.consumed.length,parameters:i}}(e,t,n);i=a.consumedSegments,o=n.slice(a.lastChild),s=new he(i,a.parameters,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,bn(t),r,t.component,t,dn(e),pn(e)+i.length,yn(t))}const a=function(t){return t.children?t.children:t.loadChildren?t._loadedConfig.routes:[]}(t),{segmentGroup:c,slicedSegments:u}=fn(e,i,o,a,this.relativeLinkResolution);if(0===u.length&&c.hasChildren()){const t=this.processChildren(a,c);return[new ie(s,t)]}if(0===a.length&&0===u.length)return[new ie(s,[])];const l=this.processSegment(a,c,u,_t);return[new ie(s,l)]}}function dn(t){let e=t;for(;e._sourceSegment;)e=e._sourceSegment;return e}function pn(t){let e=t,n=e._segmentIndexShift?e._segmentIndexShift:0;for(;e._sourceSegment;)e=e._sourceSegment,n+=e._segmentIndexShift?e._segmentIndexShift:0;return n-1}function fn(t,e,n,r,s){if(n.length>0&&function(t,e,n){return n.some(n=>gn(t,e,n)&&mn(n)!==_t)}(t,n,r)){const s=new Vt(e,function(t,e,n,r){const s={};s.primary=r,r._sourceSegment=t,r._segmentIndexShift=e.length;for(const i of n)if(\"\"===i.path&&mn(i)!==_t){const n=new Vt([],{});n._sourceSegment=t,n._segmentIndexShift=e.length,s[mn(i)]=n}return s}(t,e,r,new Vt(n,t.children)));return s._sourceSegment=t,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:[]}}if(0===n.length&&function(t,e,n){return n.some(n=>gn(t,e,n))}(t,n,r)){const i=new Vt(t.segments,function(t,e,n,r,s,i){const o={};for(const a of r)if(gn(t,n,a)&&!s[mn(a)]){const n=new Vt([],{});n._sourceSegment=t,n._segmentIndexShift=\"legacy\"===i?t.segments.length:e.length,o[mn(a)]=n}return Object.assign(Object.assign({},s),o)}(t,e,n,r,t.children,s));return i._sourceSegment=t,i._segmentIndexShift=e.length,{segmentGroup:i,slicedSegments:n}}const i=new Vt(t.segments,t.children);return i._sourceSegment=t,i._segmentIndexShift=e.length,{segmentGroup:i,slicedSegments:n}}function gn(t,e,n){return(!(t.hasChildren()||e.length>0)||\"full\"!==n.pathMatch)&&\"\"===n.path&&void 0===n.redirectTo}function mn(t){return t.outlet||_t}function bn(t){return t.data||{}}function yn(t){return t.resolve||{}}function vn(t){return function(e){return e.pipe(Object(H.a)(e=>{const n=t(e);return n?Object(o.a)(n).pipe(Object(x.a)(()=>e)):Object(o.a)([e])}))}}class _n extends class{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}}{}const wn=new s.q(\"ROUTES\");class Cn{constructor(t,e,n,r){this.loader=t,this.compiler=e,this.onLoadStartListener=n,this.onLoadEndListener=r}load(t,e){return this.onLoadStartListener&&this.onLoadStartListener(e),this.loadModuleFactory(e.loadChildren).pipe(Object(x.a)(n=>{this.onLoadEndListener&&this.onLoadEndListener(e);const r=n.create(t);return new Ie(Tt(r.injector.get(wn)).map($e),r)}))}loadModuleFactory(t){return\"string\"==typeof t?Object(o.a)(this.loader.load(t)):jt(t()).pipe(Object(Q.a)(t=>t instanceof s.v?Object(i.a)(t):Object(o.a)(this.compiler.compileModuleAsync(t))))}}class On{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.children=new Sn,this.attachRef=null}}class Sn{constructor(){this.contexts=new Map}onChildOutletCreated(t,e){const n=this.getOrCreateContext(t);n.outlet=e,this.contexts.set(t,n)}onChildOutletDestroyed(t){const e=this.getContext(t);e&&(e.outlet=null)}onOutletDeactivated(){const t=this.contexts;return this.contexts=new Map,t}onOutletReAttached(t){this.contexts=t}getOrCreateContext(t){let e=this.getContext(t);return e||(e=new On,this.contexts.set(t,e)),e}getContext(t){return this.contexts.get(t)||null}}class xn{shouldProcessUrl(t){return!0}extract(t){return t}merge(t,e){return t}}function En(t){throw t}function Tn(t,e,n){return e.parse(\"/\")}function kn(t,e){return Object(i.a)(null)}let An=(()=>{class t{constructor(t,e,n,r,i,o,c,l){this.rootComponentType=t,this.urlSerializer=e,this.rootContexts=n,this.location=r,this.config=l,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.lastLocationChangeInfo=null,this.navigationId=0,this.isNgZoneEnabled=!1,this.events=new a.a,this.errorHandler=En,this.malformedUriErrorHandler=Tn,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:kn,afterPreactivation:kn},this.urlHandlingStrategy=new xn,this.routeReuseStrategy=new _n,this.onSameUrlNavigation=\"ignore\",this.paramsInheritanceStrategy=\"emptyOnly\",this.urlUpdateStrategy=\"deferred\",this.relativeLinkResolution=\"corrected\",this.ngModule=i.get(s.x),this.console=i.get(s.W);const h=i.get(s.z);this.isNgZoneEnabled=h instanceof s.z,this.resetConfig(l),this.currentUrlTree=new Nt(new Vt([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new Cn(o,c,t=>this.triggerEvent(new pt(t)),t=>this.triggerEvent(new ft(t))),this.routerState=ce(this.currentUrlTree,this.rootComponentType),this.transitions=new u({id:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:\"imperative\",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}setupNavigations(t){const e=this.events;return t.pipe(Object(T.a)(t=>0!==t.id),Object(x.a)(t=>Object.assign(Object.assign({},t),{extractedUrl:this.urlHandlingStrategy.extract(t.rawUrl)})),Object(H.a)(t=>{let n=!1,r=!1;return Object(i.a)(t).pipe(Object(X.a)(t=>{this.currentNavigation={id:t.id,initialUrl:t.currentRawUrl,extractedUrl:t.extractedUrl,trigger:t.source,extras:t.extras,previousNavigation:this.lastSuccessfulNavigation?Object.assign(Object.assign({},this.lastSuccessfulNavigation),{previousNavigation:null}):null}}),Object(H.a)(t=>{const n=!this.navigated||t.extractedUrl.toString()!==this.browserUrlTree.toString();if((\"reload\"===this.onSameUrlNavigation||n)&&this.urlHandlingStrategy.shouldProcessUrl(t.rawUrl))return Object(i.a)(t).pipe(Object(H.a)(t=>{const n=this.transitions.getValue();return e.next(new st(t.id,this.serializeUrl(t.extractedUrl),t.source,t.restoredState)),n!==this.transitions.getValue()?S.a:[t]}),Object(H.a)(t=>Promise.resolve(t)),(r=this.ngModule.injector,s=this.configLoader,o=this.urlSerializer,a=this.config,function(t){return t.pipe(Object(H.a)(t=>function(t,e,n,r,s){return new Ge(t,e,n,r,s).apply()}(r,s,o,t.extractedUrl,a).pipe(Object(x.a)(e=>Object.assign(Object.assign({},t),{urlAfterRedirects:e})))))}),Object(X.a)(t=>{this.currentNavigation=Object.assign(Object.assign({},this.currentNavigation),{finalUrl:t.urlAfterRedirects})}),function(t,e,n,r,s){return function(i){return i.pipe(Object(Q.a)(i=>function(t,e,n,r,s=\"emptyOnly\",i=\"legacy\"){return new hn(t,e,n,r,s,i).recognize()}(t,e,i.urlAfterRedirects,n(i.urlAfterRedirects),r,s).pipe(Object(x.a)(t=>Object.assign(Object.assign({},i),{targetSnapshot:t})))))}}(this.rootComponentType,this.config,t=>this.serializeUrl(t),this.paramsInheritanceStrategy,this.relativeLinkResolution),Object(X.a)(t=>{\"eager\"===this.urlUpdateStrategy&&(t.extras.skipLocationChange||this.setBrowserUrl(t.urlAfterRedirects,!!t.extras.replaceUrl,t.id,t.extras.state),this.browserUrlTree=t.urlAfterRedirects)}),Object(X.a)(t=>{const n=new ct(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);e.next(n)}));var r,s,o,a;if(n&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:n,extractedUrl:r,source:s,restoredState:o,extras:a}=t,c=new st(n,this.serializeUrl(r),s,o);e.next(c);const u=ce(r,this.rootComponentType).snapshot;return Object(i.a)(Object.assign(Object.assign({},t),{targetSnapshot:u,urlAfterRedirects:r,extras:Object.assign(Object.assign({},a),{skipLocationChange:!1,replaceUrl:!1})}))}return this.rawUrlTree=t.rawUrl,this.browserUrlTree=t.urlAfterRedirects,t.resolve(null),S.a}),vn(t=>{const{targetSnapshot:e,id:n,extractedUrl:r,rawUrl:s,extras:{skipLocationChange:i,replaceUrl:o}}=t;return this.hooks.beforePreactivation(e,{navigationId:n,appliedUrlTree:r,rawUrlTree:s,skipLocationChange:!!i,replaceUrl:!!o})}),Object(X.a)(t=>{const e=new ut(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}),Object(x.a)(t=>Object.assign(Object.assign({},t),{guards:en(t.targetSnapshot,t.currentSnapshot,this.rootContexts)})),function(t,e){return function(n){return n.pipe(Object(Q.a)(n=>{const{targetSnapshot:r,currentSnapshot:s,guards:{canActivateChecks:a,canDeactivateChecks:c}}=n;return 0===c.length&&0===a.length?Object(i.a)(Object.assign(Object.assign({},n),{guardsResult:!0})):function(t,e,n,r){return Object(o.a)(t).pipe(Object(Q.a)(t=>function(t,e,n,r,s){const o=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!o||0===o.length)return Object(i.a)(!0);const a=o.map(i=>{const o=nn(i,e,s);let a;if(function(t){return t&&De(t.canDeactivate)}(o))a=jt(o.canDeactivate(t,e,n,r));else{if(!De(o))throw new Error(\"Invalid CanDeactivate guard\");a=jt(o(t,e,n,r))}return a.pipe(Z())});return Object(i.a)(a).pipe(Le())}(t.component,t.route,n,e,r)),Z(t=>!0!==t,!0))}(c,r,s,t).pipe(Object(Q.a)(n=>n&&\"boolean\"==typeof n?function(t,e,n,r){return Object(o.a)(e).pipe(Object(G.a)(e=>Object(o.a)([an(e.route.parent,r),on(e.route,r),un(t,e.path,n),cn(t,e.route,n)]).pipe(Object(E.a)(),Z(t=>!0!==t,!0))),Z(t=>!0!==t,!0))}(r,a,t,e):Object(i.a)(n)),Object(x.a)(t=>Object.assign(Object.assign({},n),{guardsResult:t})))}))}}(this.ngModule.injector,t=>this.triggerEvent(t)),Object(X.a)(t=>{if(Ne(t.guardsResult)){const e=Ot(`Redirecting to \"${this.serializeUrl(t.guardsResult)}\"`);throw e.url=t.guardsResult,e}}),Object(X.a)(t=>{const e=new lt(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot,!!t.guardsResult);this.triggerEvent(e)}),Object(T.a)(t=>{if(!t.guardsResult){this.resetUrlToCurrentUrlTree();const n=new ot(t.id,this.serializeUrl(t.extractedUrl),\"\");return e.next(n),t.resolve(!1),!1}return!0}),vn(t=>{if(t.guards.canActivateChecks.length)return Object(i.a)(t).pipe(Object(X.a)(t=>{const e=new ht(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}),Object(H.a)(t=>{let n=!1;return Object(i.a)(t).pipe((r=this.paramsInheritanceStrategy,s=this.ngModule.injector,function(t){return t.pipe(Object(Q.a)(t=>{const{targetSnapshot:e,guards:{canActivateChecks:n}}=t;if(!n.length)return Object(i.a)(t);let a=0;return Object(o.a)(n).pipe(Object(G.a)(t=>function(t,e,n,r){return function(t,e,n,r){const s=Object.keys(t);if(0===s.length)return Object(i.a)({});const a={};return Object(o.a)(s).pipe(Object(Q.a)(s=>function(t,e,n,r){const s=nn(t,e,r);return jt(s.resolve?s.resolve(e,n):s(e,n))}(t[s],e,n,r).pipe(Object(X.a)(t=>{a[s]=t}))),A(1),Object(Q.a)(()=>Object.keys(a).length===s.length?Object(i.a)(a):S.a))}(t._resolve,t,e,r).pipe(Object(x.a)(e=>(t._resolvedData=e,t.data=Object.assign(Object.assign({},t.data),le(t,n).resolve),null)))}(t.route,e,r,s)),Object(X.a)(()=>a++),A(1),Object(Q.a)(e=>a===n.length?Object(i.a)(t):S.a))}))}),Object(X.a)({next:()=>n=!0,complete:()=>{if(!n){const n=new ot(t.id,this.serializeUrl(t.extractedUrl),\"At least one route resolver didn't emit any value.\");e.next(n),t.resolve(!1)}}}));var r,s}),Object(X.a)(t=>{const e=new dt(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}))}),vn(t=>{const{targetSnapshot:e,id:n,extractedUrl:r,rawUrl:s,extras:{skipLocationChange:i,replaceUrl:o}}=t;return this.hooks.afterPreactivation(e,{navigationId:n,appliedUrlTree:r,rawUrlTree:s,skipLocationChange:!!i,replaceUrl:!!o})}),Object(x.a)(t=>{const e=function(t,e,n){const r=be(t,e._root,n?n._root:void 0);return new ae(r,e)}(this.routeReuseStrategy,t.targetSnapshot,t.currentRouterState);return Object.assign(Object.assign({},t),{targetRouterState:e})}),Object(X.a)(t=>{this.currentUrlTree=t.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t.rawUrl),this.routerState=t.targetRouterState,\"deferred\"===this.urlUpdateStrategy&&(t.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,!!t.extras.replaceUrl,t.id,t.extras.state),this.browserUrlTree=t.urlAfterRedirects)}),(a=this.rootContexts,c=this.routeReuseStrategy,u=t=>this.triggerEvent(t),Object(x.a)(t=>(new Pe(c,t.targetRouterState,t.currentRouterState,u).activate(a),t))),Object(X.a)({next(){n=!0},complete(){n=!0}}),(s=()=>{if(!n&&!r){this.resetUrlToCurrentUrlTree();const n=new ot(t.id,this.serializeUrl(t.extractedUrl),`Navigation ID ${t.id} is not equal to the current navigation id ${this.navigationId}`);e.next(n),t.resolve(!1)}this.currentNavigation=null},t=>t.lift(new tt(s))),K(n=>{if(r=!0,(s=n)&&s.ngNavigationCancelingError){const r=Ne(n.url);r||(this.navigated=!0,this.resetStateAndUrl(t.currentRouterState,t.currentUrlTree,t.rawUrl));const s=new ot(t.id,this.serializeUrl(t.extractedUrl),n.message);e.next(s),r?setTimeout(()=>{const e=this.urlHandlingStrategy.merge(n.url,this.rawUrlTree);return this.scheduleNavigation(e,\"imperative\",null,{skipLocationChange:t.extras.skipLocationChange,replaceUrl:\"eager\"===this.urlUpdateStrategy},{resolve:t.resolve,reject:t.reject,promise:t.promise})},0):t.resolve(!1)}else{this.resetStateAndUrl(t.currentRouterState,t.currentUrlTree,t.rawUrl);const r=new at(t.id,this.serializeUrl(t.extractedUrl),n);e.next(r);try{t.resolve(this.errorHandler(n))}catch(i){t.reject(i)}}var s;return S.a}));var s,a,c,u}))}resetRootComponentType(t){this.rootComponentType=t,this.routerState.root.component=this.rootComponentType}getTransition(){const t=this.transitions.value;return t.urlAfterRedirects=this.browserUrlTree,t}setTransition(t){this.transitions.next(Object.assign(Object.assign({},this.getTransition()),t))}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(t=>{const e=this.extractLocationChangeInfoFromEvent(t);this.shouldScheduleNavigation(this.lastLocationChangeInfo,e)&&setTimeout(()=>{const{source:t,state:n,urlTree:r}=e,s={replaceUrl:!0};if(n){const t=Object.assign({},n);delete t.navigationId,0!==Object.keys(t).length&&(s.state=t)}this.scheduleNavigation(r,t,n,s)},0),this.lastLocationChangeInfo=e}))}extractLocationChangeInfoFromEvent(t){var e;return{source:\"popstate\"===t.type?\"popstate\":\"hashchange\",urlTree:this.parseUrl(t.url),state:(null===(e=t.state)||void 0===e?void 0:e.navigationId)?t.state:null,transitionId:this.getTransition().id}}shouldScheduleNavigation(t,e){if(!t)return!0;const n=e.urlTree.toString()===t.urlTree.toString();return!(e.transitionId===t.transitionId&&n&&(\"hashchange\"===e.source&&\"popstate\"===t.source||\"popstate\"===e.source&&\"hashchange\"===t.source))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(t){this.events.next(t)}resetConfig(t){Ue(t),this.config=t.map($e),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0)}createUrlTree(t,e={}){const{relativeTo:n,queryParams:r,fragment:s,queryParamsHandling:i,preserveFragment:o}=e,a=n||this.routerState.root,c=o?this.currentUrlTree.fragment:s;let u=null;switch(i){case\"merge\":u=Object.assign(Object.assign({},this.currentUrlTree.queryParams),r);break;case\"preserve\":u=this.currentUrlTree.queryParams;break;default:u=r||null}return null!==u&&(u=this.removeEmptyProps(u)),function(t,e,n,r,s){if(0===n.length)return we(e.root,e.root,e,r,s);const i=function(t){if(\"string\"==typeof t[0]&&1===t.length&&\"/\"===t[0])return new Oe(!0,0,t);let e=0,n=!1;const r=t.reduce((t,r,s)=>{if(\"object\"==typeof r&&null!=r){if(r.outlets){const e={};return At(r.outlets,(t,n)=>{e[n]=\"string\"==typeof t?t.split(\"/\"):t}),[...t,{outlets:e}]}if(r.segmentPath)return[...t,r.segmentPath]}return\"string\"!=typeof r?[...t,r]:0===s?(r.split(\"/\").forEach((r,s)=>{0==s&&\".\"===r||(0==s&&\"\"===r?n=!0:\"..\"===r?e++:\"\"!=r&&t.push(r))}),t):[...t,r]},[]);return new Oe(n,e,r)}(n);if(i.toRoot())return we(e.root,new Vt([],{}),e,r,s);const o=function(t,e,n){if(t.isAbsolute)return new Se(e.root,!0,0);if(-1===n.snapshot._lastPathIndex){const t=n.snapshot._urlSegment;return new Se(t,t===e.root,0)}const r=ve(t.commands[0])?0:1;return function(t,e,n){let r=t,s=e,i=n;for(;i>s;){if(i-=s,r=r.parent,!r)throw new Error(\"Invalid number of '../'\");s=r.segments.length}return new Se(r,!1,s-i)}(n.snapshot._urlSegment,n.snapshot._lastPathIndex+r,t.numberOfDoubleDots)}(i,e,t),a=o.processChildren?Ee(o.segmentGroup,o.index,i.commands):xe(o.segmentGroup,o.index,i.commands);return we(o.segmentGroup,a,e,r,s)}(a,this.currentUrlTree,t,u,c)}navigateByUrl(t,e={skipLocationChange:!1}){const n=Ne(t)?t:this.parseUrl(t),r=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(r,\"imperative\",null,e)}navigate(t,e={skipLocationChange:!1}){return function(t){for(let e=0;e<t.length;e++){const n=t[e];if(null==n)throw new Error(`The requested path contains ${n} segment at index ${e}`)}}(t),this.navigateByUrl(this.createUrlTree(t,e),e)}serializeUrl(t){return this.urlSerializer.serialize(t)}parseUrl(t){let e;try{e=this.urlSerializer.parse(t)}catch(n){e=this.malformedUriErrorHandler(n,this.urlSerializer,t)}return e}isActive(t,e){if(Ne(t))return Pt(this.currentUrlTree,t,e);const n=this.parseUrl(t);return Pt(this.currentUrlTree,n,e)}removeEmptyProps(t){return Object.keys(t).reduce((e,n)=>{const r=t[n];return null!=r&&(e[n]=r),e},{})}processNavigations(){this.navigations.subscribe(t=>{this.navigated=!0,this.lastSuccessfulId=t.id,this.events.next(new it(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,this.currentNavigation=null,t.resolve(!0)},t=>{this.console.warn(\"Unhandled Navigation Error: \")})}scheduleNavigation(t,e,n,r,s){const i=this.getTransition(),o=\"imperative\"!==e&&\"imperative\"===(null==i?void 0:i.source),a=(this.lastSuccessfulId===i.id||this.currentNavigation?i.rawUrl:i.urlAfterRedirects).toString()===t.toString();if(o&&a)return Promise.resolve(!0);let c,u,l;s?(c=s.resolve,u=s.reject,l=s.promise):l=new Promise((t,e)=>{c=t,u=e});const h=++this.navigationId;return this.setTransition({id:h,source:e,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:t,extras:r,resolve:c,reject:u,promise:l,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),l.catch(t=>Promise.reject(t))}setBrowserUrl(t,e,n,r){const s=this.urlSerializer.serialize(t);r=r||{},this.location.isCurrentPathEqualTo(s)||e?this.location.replaceState(s,\"\",Object.assign(Object.assign({},r),{navigationId:n})):this.location.go(s,\"\",Object.assign(Object.assign({},r),{navigationId:n}))}resetStateAndUrl(t,e,n){this.routerState=t,this.currentUrlTree=e,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,n),this.resetUrlToCurrentUrlTree()}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),\"\",{navigationId:this.lastSuccessfulId})}}return t.\\u0275fac=function(e){return new(e||t)(s.Ob(s.M),s.Ob(Ht),s.Ob(Sn),s.Ob(r.g),s.Ob(s.r),s.Ob(s.w),s.Ob(s.i),s.Ob(void 0))},t.\\u0275prov=s.Db({token:t,factory:t.\\u0275fac}),t})(),jn=(()=>{class t{constructor(t,e,n,r,s){this.router=t,this.route=e,this.commands=[],this.onChanges=new a.a,null==n&&r.setAttribute(s.nativeElement,\"tabindex\",\"0\")}ngOnChanges(t){this.onChanges.next(this)}set routerLink(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]}onClick(){const t={skipLocationChange:Rn(this.skipLocationChange),replaceUrl:Rn(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,t),!0}get urlTree(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:Rn(this.preserveFragment)})}}return t.\\u0275fac=function(e){return new(e||t)(s.Hb(An),s.Hb(ue),s.Pb(\"tabindex\"),s.Hb(s.D),s.Hb(s.l))},t.\\u0275dir=s.Cb({type:t,selectors:[[\"\",\"routerLink\",\"\",5,\"a\",5,\"area\"]],hostBindings:function(t,e){1&t&&s.Rb(\"click\",function(){return e.onClick()})},inputs:{routerLink:\"routerLink\",queryParams:\"queryParams\",fragment:\"fragment\",queryParamsHandling:\"queryParamsHandling\",preserveFragment:\"preserveFragment\",skipLocationChange:\"skipLocationChange\",replaceUrl:\"replaceUrl\",state:\"state\"},features:[s.vb]}),t})(),Pn=(()=>{class t{constructor(t,e,n){this.router=t,this.route=e,this.locationStrategy=n,this.commands=[],this.onChanges=new a.a,this.subscription=t.events.subscribe(t=>{t instanceof it&&this.updateTargetUrlAndHref()})}set routerLink(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]}ngOnChanges(t){this.updateTargetUrlAndHref(),this.onChanges.next(this)}ngOnDestroy(){this.subscription.unsubscribe()}onClick(t,e,n,r,s){if(0!==t||e||n||r||s)return!0;if(\"string\"==typeof this.target&&\"_self\"!=this.target)return!0;const i={skipLocationChange:Rn(this.skipLocationChange),replaceUrl:Rn(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,i),!1}updateTargetUrlAndHref(){this.href=this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree))}get urlTree(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:Rn(this.preserveFragment)})}}return t.\\u0275fac=function(e){return new(e||t)(s.Hb(An),s.Hb(ue),s.Hb(r.h))},t.\\u0275dir=s.Cb({type:t,selectors:[[\"a\",\"routerLink\",\"\"],[\"area\",\"routerLink\",\"\"]],hostVars:2,hostBindings:function(t,e){1&t&&s.Rb(\"click\",function(t){return e.onClick(t.button,t.ctrlKey,t.shiftKey,t.altKey,t.metaKey)}),2&t&&(s.Nb(\"href\",e.href,s.bc),s.yb(\"target\",e.target))},inputs:{routerLink:\"routerLink\",target:\"target\",queryParams:\"queryParams\",fragment:\"fragment\",queryParamsHandling:\"queryParamsHandling\",preserveFragment:\"preserveFragment\",skipLocationChange:\"skipLocationChange\",replaceUrl:\"replaceUrl\",state:\"state\"},features:[s.vb]}),t})();function Rn(t){return\"\"===t||!!t}let In=(()=>{class t{constructor(t,e,n,r,s,i){this.router=t,this.element=e,this.renderer=n,this.cdr=r,this.link=s,this.linkWithHref=i,this.classes=[],this.isActive=!1,this.routerLinkActiveOptions={exact:!1},this.routerEventsSubscription=t.events.subscribe(t=>{t instanceof it&&this.update()})}ngAfterContentInit(){Object(o.a)([this.links.changes,this.linksWithHrefs.changes,Object(i.a)(null)]).pipe(Object(nt.a)()).subscribe(t=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){var t;null===(t=this.linkInputChangesSubscription)||void 0===t||t.unsubscribe();const e=[...this.links.toArray(),...this.linksWithHrefs.toArray(),this.link,this.linkWithHref].filter(t=>!!t).map(t=>t.onChanges);this.linkInputChangesSubscription=Object(o.a)(e).pipe(Object(nt.a)()).subscribe(t=>{this.isActive!==this.isLinkActive(this.router)(t)&&this.update()})}set routerLinkActive(t){const e=Array.isArray(t)?t:t.split(\" \");this.classes=e.filter(t=>!!t)}ngOnChanges(t){this.update()}ngOnDestroy(){var t;this.routerEventsSubscription.unsubscribe(),null===(t=this.linkInputChangesSubscription)||void 0===t||t.unsubscribe()}update(){this.links&&this.linksWithHrefs&&this.router.navigated&&Promise.resolve().then(()=>{const t=this.hasActiveLinks();this.isActive!==t&&(this.isActive=t,this.cdr.markForCheck(),this.classes.forEach(e=>{t?this.renderer.addClass(this.element.nativeElement,e):this.renderer.removeClass(this.element.nativeElement,e)}))})}isLinkActive(t){return e=>t.isActive(e.urlTree,this.routerLinkActiveOptions.exact)}hasActiveLinks(){const t=this.isLinkActive(this.router);return this.link&&t(this.link)||this.linkWithHref&&t(this.linkWithHref)||this.links.some(t)||this.linksWithHrefs.some(t)}}return t.\\u0275fac=function(e){return new(e||t)(s.Hb(An),s.Hb(s.l),s.Hb(s.D),s.Hb(s.h),s.Hb(jn,8),s.Hb(Pn,8))},t.\\u0275dir=s.Cb({type:t,selectors:[[\"\",\"routerLinkActive\",\"\"]],contentQueries:function(t,e,n){if(1&t&&(s.Ab(n,jn,!0),s.Ab(n,Pn,!0)),2&t){let t;s.Yb(t=s.Sb())&&(e.links=t),s.Yb(t=s.Sb())&&(e.linksWithHrefs=t)}},inputs:{routerLinkActiveOptions:\"routerLinkActiveOptions\",routerLinkActive:\"routerLinkActive\"},exportAs:[\"routerLinkActive\"],features:[s.vb]}),t})(),Dn=(()=>{class t{constructor(t,e,n,r,i){this.parentContexts=t,this.location=e,this.resolver=n,this.changeDetector=i,this.activated=null,this._activatedRoute=null,this.activateEvents=new s.n,this.deactivateEvents=new s.n,this.name=r||_t,t.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const t=this.parentContexts.getContext(this.name);t&&t.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.resolver||null))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Error(\"Outlet is not activated\");return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Error(\"Outlet is not activated\");return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Error(\"Outlet is not activated\");this.location.detach();const t=this.activated;return this.activated=null,this._activatedRoute=null,t}attach(t,e){this.activated=t,this._activatedRoute=e,this.location.insert(t.hostView)}deactivate(){if(this.activated){const t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,e){if(this.isActivated)throw new Error(\"Cannot activate an already activated outlet\");this._activatedRoute=t;const n=(e=e||this.resolver).resolveComponentFactory(t._futureSnapshot.routeConfig.component),r=this.parentContexts.getOrCreateContext(this.name).children,s=new Nn(t,r,this.location.injector);this.activated=this.location.createComponent(n,this.location.length,s),this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return t.\\u0275fac=function(e){return new(e||t)(s.Hb(Sn),s.Hb(s.O),s.Hb(s.j),s.Pb(\"name\"),s.Hb(s.h))},t.\\u0275dir=s.Cb({type:t,selectors:[[\"router-outlet\"]],outputs:{activateEvents:\"activate\",deactivateEvents:\"deactivate\"},exportAs:[\"outlet\"]}),t})();class Nn{constructor(t,e,n){this.route=t,this.childContexts=e,this.parent=n}get(t,e){return t===ue?this.route:t===Sn?this.childContexts:this.parent.get(t,e)}}class Vn{}class Ln{preload(t,e){return Object(i.a)(null)}}let Mn=(()=>{class t{constructor(t,e,n,r,s){this.router=t,this.injector=r,this.preloadingStrategy=s,this.loader=new Cn(e,n,e=>t.triggerEvent(new pt(e)),e=>t.triggerEvent(new ft(e)))}setUpPreloading(){this.subscription=this.router.events.pipe(Object(T.a)(t=>t instanceof it),Object(G.a)(()=>this.preload())).subscribe(()=>{})}preload(){const t=this.injector.get(s.x);return this.processRoutes(t,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(t,e){const n=[];for(const r of e)if(r.loadChildren&&!r.canLoad&&r._loadedConfig){const t=r._loadedConfig;n.push(this.processRoutes(t.module,t.routes))}else r.loadChildren&&!r.canLoad?n.push(this.preloadConfig(t,r)):r.children&&n.push(this.processRoutes(t,r.children));return Object(o.a)(n).pipe(Object(nt.a)(),Object(x.a)(t=>{}))}preloadConfig(t,e){return this.preloadingStrategy.preload(e,()=>this.loader.load(t.injector,e).pipe(Object(Q.a)(t=>(e._loadedConfig=t,this.processRoutes(t.module,t.routes)))))}}return t.\\u0275fac=function(e){return new(e||t)(s.Ob(An),s.Ob(s.w),s.Ob(s.i),s.Ob(s.r),s.Ob(Vn))},t.\\u0275prov=s.Db({token:t,factory:t.\\u0275fac}),t})(),Un=(()=>{class t{constructor(t,e,n={}){this.router=t,this.viewportScroller=e,this.options=n,this.lastId=0,this.lastSource=\"imperative\",this.restoredId=0,this.store={},n.scrollPositionRestoration=n.scrollPositionRestoration||\"disabled\",n.anchorScrolling=n.anchorScrolling||\"disabled\"}init(){\"disabled\"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration(\"manual\"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(t=>{t instanceof st?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=t.navigationTrigger,this.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof it&&(this.lastId=t.id,this.scheduleScrollEvent(t,this.router.parseUrl(t.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(t=>{t instanceof vt&&(t.position?\"top\"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):\"enabled\"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(t.position):t.anchor&&\"enabled\"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(t.anchor):\"disabled\"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(t,e){this.router.triggerEvent(new vt(t,\"popstate\"===this.lastSource?this.store[this.restoredId]:null,e))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}return t.\\u0275fac=function(e){return new(e||t)(s.Ob(An),s.Ob(r.m),s.Ob(void 0))},t.\\u0275prov=s.Db({token:t,factory:t.\\u0275fac}),t})();const Hn=new s.q(\"ROUTER_CONFIGURATION\"),Fn=new s.q(\"ROUTER_FORROOT_GUARD\"),$n=[r.g,{provide:Ht,useClass:Ft},{provide:An,useFactory:function(t,e,n,s,i,o,a,c={},u,l){const h=new An(null,t,e,n,s,i,o,Tt(a));if(u&&(h.urlHandlingStrategy=u),l&&(h.routeReuseStrategy=l),function(t,e){t.errorHandler&&(e.errorHandler=t.errorHandler),t.malformedUriErrorHandler&&(e.malformedUriErrorHandler=t.malformedUriErrorHandler),t.onSameUrlNavigation&&(e.onSameUrlNavigation=t.onSameUrlNavigation),t.paramsInheritanceStrategy&&(e.paramsInheritanceStrategy=t.paramsInheritanceStrategy),t.relativeLinkResolution&&(e.relativeLinkResolution=t.relativeLinkResolution),t.urlUpdateStrategy&&(e.urlUpdateStrategy=t.urlUpdateStrategy)}(c,h),c.enableTracing){const t=Object(r.q)();h.events.subscribe(e=>{t.logGroup(\"Router Event: \"+e.constructor.name),t.log(e.toString()),t.log(e),t.logGroupEnd()})}return h},deps:[Ht,Sn,r.g,s.r,s.w,s.i,wn,Hn,[class{},new s.A],[class{},new s.A]]},Sn,{provide:ue,useFactory:function(t){return t.routerState.root},deps:[An]},{provide:s.w,useClass:s.J},Mn,Ln,class{preload(t,e){return e().pipe(K(()=>Object(i.a)(null)))}},{provide:Hn,useValue:{enableTracing:!1}}];function qn(){return new s.y(\"Router\",An)}let zn=(()=>{class t{constructor(t,e){}static forRoot(e,n){return{ngModule:t,providers:[$n,Jn(e),{provide:Fn,useFactory:Wn,deps:[[An,new s.A,new s.I]]},{provide:Hn,useValue:n||{}},{provide:r.h,useFactory:Kn,deps:[r.l,[new s.p(r.a),new s.A],Hn]},{provide:Un,useFactory:Bn,deps:[An,r.m,Hn]},{provide:Vn,useExisting:n&&n.preloadingStrategy?n.preloadingStrategy:Ln},{provide:s.y,multi:!0,useFactory:qn},[Gn,{provide:s.d,multi:!0,useFactory:Zn,deps:[Gn]},{provide:Xn,useFactory:Qn,deps:[Gn]},{provide:s.b,multi:!0,useExisting:Xn}]]}}static forChild(e){return{ngModule:t,providers:[Jn(e)]}}}return t.\\u0275mod=s.Fb({type:t}),t.\\u0275inj=s.Eb({factory:function(e){return new(e||t)(s.Ob(Fn,8),s.Ob(An,8))}}),t})();function Bn(t,e,n){return n.scrollOffset&&e.setOffset(n.scrollOffset),new Un(t,e,n)}function Kn(t,e,n={}){return n.useHash?new r.e(t,e):new r.k(t,e)}function Wn(t){return\"guarded\"}function Jn(t){return[{provide:s.a,multi:!0,useValue:t},{provide:wn,multi:!0,useValue:t}]}let Gn=(()=>{class t{constructor(t){this.injector=t,this.initNavigation=!1,this.resultOfPreactivationDone=new a.a}appInitializer(){return this.injector.get(r.f,Promise.resolve(null)).then(()=>{let t=null;const e=new Promise(e=>t=e),n=this.injector.get(An),r=this.injector.get(Hn);return\"disabled\"===r.initialNavigation?(n.setUpLocationChangeListener(),t(!0)):\"enabled\"===r.initialNavigation||\"enabledBlocking\"===r.initialNavigation?(n.hooks.afterPreactivation=()=>this.initNavigation?Object(i.a)(null):(this.initNavigation=!0,t(!0),this.resultOfPreactivationDone),n.initialNavigation()):t(!0),e})}bootstrapListener(t){const e=this.injector.get(Hn),n=this.injector.get(Mn),r=this.injector.get(Un),i=this.injector.get(An),o=this.injector.get(s.g);t===o.components[0]&&(\"enabledNonBlocking\"!==e.initialNavigation&&void 0!==e.initialNavigation||i.initialNavigation(),n.setUpPreloading(),r.init(),i.resetRootComponentType(o.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())}}return t.\\u0275fac=function(e){return new(e||t)(s.Ob(s.r))},t.\\u0275prov=s.Db({token:t,factory:t.\\u0275fac}),t})();function Zn(t){return t.appInitializer.bind(t)}function Qn(t){return t.bootstrapListener.bind(t)}const Xn=new s.q(\"Router Initializer\")},vkgz:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return o});var r=n(\"7o/Q\"),s=n(\"KqfI\"),i=n(\"n6bG\");function o(t,e,n){return function(r){return r.lift(new a(t,e,n))}}class a{constructor(t,e,n){this.nextOrObserver=t,this.error=e,this.complete=n}call(t,e){return e.subscribe(new c(t,this.nextOrObserver,this.error,this.complete))}}class c extends r.a{constructor(t,e,n,r){super(t),this._tapNext=s.a,this._tapError=s.a,this._tapComplete=s.a,this._tapError=n||s.a,this._tapComplete=r||s.a,Object(i.a)(e)?(this._context=this,this._tapNext=e):e&&(this._context=e,this._tapNext=e.next||s.a,this._tapError=e.error||s.a,this._tapComplete=e.complete||s.a)}_next(t){try{this._tapNext.call(this._context,t)}catch(e){return void this.destination.error(e)}this.destination.next(t)}_error(t){try{this._tapError.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.error(t)}_complete(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()}}},\"x+ZX\":function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return s});var r=n(\"7o/Q\");function s(){return function(t){return t.lift(new i(t))}}class i{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const r=new o(t,n),s=e.subscribe(r);return r.closed||(r.connection=n.connect()),s}}class o extends r.a{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:n}=this,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}},yCtX:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return o});var r=n(\"HDdC\"),s=n(\"ngJS\"),i=n(\"jZKg\");function o(t,e){return e?Object(i.a)(t,e):new r.a(Object(s.a)(t))}},\"z+Ro\":function(t,e,n){\"use strict\";function r(t){return t&&\"function\"==typeof t.schedule}n.d(e,\"a\",function(){return r})},zUnb:function(t,e,n){\"use strict\";n.r(e);var r=n(\"fXoL\"),s=n(\"ofXK\");class i extends s.o{constructor(){super()}supportsDOMEvents(){return!0}}class o extends i{static makeCurrent(){Object(s.s)(new o)}getProperty(t,e){return t[e]}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}getValue(t){return t.value}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return\"window\"===e?window:\"document\"===e?t:\"body\"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=c||(c=document.querySelector(\"base\"),c)?c.getAttribute(\"href\"):null;return null==e?null:(n=e,a||(a=document.createElement(\"a\")),a.setAttribute(\"href\",n),\"/\"===a.pathname.charAt(0)?a.pathname:\"/\"+a.pathname);var n}resetBaseElement(){c=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return Object(s.r)(document.cookie,t)}}let a,c=null;const u=new r.q(\"TRANSITION_ID\"),l=[{provide:r.d,useFactory:function(t,e,n){return()=>{n.get(r.e).donePromise.then(()=>{const n=Object(s.q)();Array.prototype.slice.apply(e.querySelectorAll(\"style[ng-transition]\")).filter(e=>e.getAttribute(\"ng-transition\")===t).forEach(t=>n.remove(t))})}},deps:[u,s.d,r.r],multi:!0}];class h{static init(){Object(r.V)(new h)}addToWindow(t){r.mb.getAngularTestability=(e,n=!0)=>{const r=t.findTestabilityInTree(e,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},r.mb.getAllAngularTestabilities=()=>t.getAllTestabilities(),r.mb.getAllAngularRootElements=()=>t.getAllRootElements(),r.mb.frameworkStabilizers||(r.mb.frameworkStabilizers=[]),r.mb.frameworkStabilizers.push(t=>{const e=r.mb.getAllAngularTestabilities();let n=e.length,s=!1;const i=function(e){s=s||e,n--,0==n&&t(s)};e.forEach(function(t){t.whenStable(i)})})}findTestabilityInTree(t,e,n){if(null==e)return null;const r=t.getTestability(e);return null!=r?r:n?Object(s.q)().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}const d=new r.q(\"EventManagerPlugins\");let p=(()=>{class t{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let r=0;r<n.length;r++){const e=n[r];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(\"No event manager plugin found for event \"+t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(d),r.Ob(r.z))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})();class f{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const r=Object(s.q)().getGlobalEventTarget(this._doc,t);if(!r)throw new Error(`Unsupported event target ${r} for event ${e}`);return this.addEventListener(r,e,n)}}let g=(()=>{class t{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})(),m=(()=>{class t extends g{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement(\"style\");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>Object(s.q)().remove(t))}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(s.d))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})();const b={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},y=/%COMP%/g;function v(t,e,n){for(let r=0;r<e.length;r++){let s=e[r];Array.isArray(s)?v(t,s,n):(s=s.replace(y,t),n.push(s))}return n}function _(t){return e=>{if(\"__ngUnwrap__\"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let w=(()=>{class t{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new C(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case r.P.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new O(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case 1:case r.P.ShadowDom:return new S(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=v(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(p),r.Ob(m),r.Ob(r.c))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})();class C{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(b[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n=\"string\"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector \"${t}\" did not match any elements`);return e||(n.textContent=\"\"),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,r){if(r){e=r+\":\"+e;const s=b[r];s?t.setAttributeNS(s,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const r=b[n];r?t.removeAttributeNS(r,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,s){s&(r.F.DashCase|r.F.Important)?t.style.setProperty(e,n,s&r.F.Important?\"important\":\"\"):t.style[e]=n}removeStyle(t,e,n){n&r.F.DashCase?t.style.removeProperty(e):t.style[e]=\"\"}setProperty(t,e,n){t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return\"string\"==typeof t?this.eventManager.addGlobalEventListener(t,e,_(n)):this.eventManager.addEventListener(t,e,_(n))}}class O extends C{constructor(t,e,n,r){super(t),this.component=n;const s=v(r+\"-\"+n.id,n.styles,[]);e.addStyles(s),this.contentAttr=\"_ngcontent-%COMP%\".replace(y,r+\"-\"+n.id),this.hostAttr=\"_nghost-%COMP%\".replace(y,r+\"-\"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,\"\")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,\"\"),n}}class S extends C{constructor(t,e,n,r){super(t),this.sharedStylesHost=e,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:\"open\"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=v(r.id,r.styles,[]);for(let i=0;i<s.length;i++){const t=document.createElement(\"style\");t.textContent=s[i],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}let x=(()=>{class t extends f{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,n){return t.addEventListener(e,n,!1),()=>this.removeEventListener(t,e,n)}removeEventListener(t,e,n){return t.removeEventListener(e,n)}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(s.d))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})();const E=[\"alt\",\"control\",\"meta\",\"shift\"],T={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},k={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},A={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let j=(()=>{class t extends f{constructor(t){super(t)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,n,r){const i=t.parseEventName(n),o=t.eventCallback(i.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Object(s.q)().onAndCancel(e,i.domEventName,o))}static parseEventName(e){const n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const s=t._normalizeKey(n.pop());let i=\"\";if(E.forEach(t=>{const e=n.indexOf(t);e>-1&&(n.splice(e,1),i+=t+\".\")}),i+=s,0!=n.length||0===s.length)return null;const o={};return o.domEventName=r,o.fullKey=i,o}static getEventFullKey(t){let e=\"\",n=function(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return\"Unidentified\";e.startsWith(\"U+\")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&k.hasOwnProperty(e)&&(e=k[e]))}return T[e]||e}(t);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),E.forEach(r=>{r!=n&&(0,A[r])(t)&&(e+=r+\".\")}),e+=n,e}static eventCallback(e,n,r){return s=>{t.getEventFullKey(s)===e&&r.runGuarded(()=>n(s))}}static _normalizeKey(t){switch(t){case\"esc\":return\"escape\";default:return t}}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(s.d))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})();const P=[{provide:r.B,useValue:s.p},{provide:r.C,useValue:function(){o.makeCurrent(),h.init()},multi:!0},{provide:s.d,useFactory:function(){return Object(r.rb)(document),document},deps:[]}],R=Object(r.Q)(r.U,\"browser\",P),I=[[],{provide:r.X,useValue:\"root\"},{provide:r.m,useFactory:function(){return new r.m},deps:[]},{provide:d,useClass:x,multi:!0,deps:[s.d,r.z,r.B]},{provide:d,useClass:j,multi:!0,deps:[s.d]},[],{provide:w,useClass:w,deps:[p,m,r.c]},{provide:r.E,useExisting:w},{provide:g,useExisting:m},{provide:m,useClass:m,deps:[s.d]},{provide:r.L,useClass:r.L,deps:[r.z]},{provide:p,useClass:p,deps:[d,r.z]},[]];let D=(()=>{class t{constructor(t){if(t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(e){return{ngModule:t,providers:[{provide:r.c,useValue:e.appId},{provide:u,useExisting:r.c},l]}}}return t.\\u0275mod=r.Fb({type:t}),t.\\u0275inj=r.Eb({factory:function(e){return new(e||t)(r.Ob(t,12))},providers:I,imports:[s.b,r.f]}),t})();\"undefined\"!=typeof window&&window;var N=n(\"tyNb\");let V=(()=>{class t{}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=r.Bb({type:t,selectors:[[\"app\"]],decls:1,vars:0,template:function(t,e){1&t&&r.Ib(0,\"router-outlet\")},directives:[N.f],encapsulation:2}),t})();var L=n(\"3Pt+\"),M=n(\"jU2X\"),U=n(\"4Sfc\"),H=n(\"Cfvw\");let F=(()=>{class t{constructor(){this.products=[new U.a(1,\"Product 1\",\"Category 1\",\"Product 1 (Category 1)\",100),new U.a(2,\"Product 2\",\"Category 1\",\"Product 2 (Category 1)\",100),new U.a(3,\"Product 3\",\"Category 1\",\"Product 3 (Category 1)\",100),new U.a(4,\"Product 4\",\"Category 1\",\"Product 4 (Category 1)\",100),new U.a(5,\"Product 5\",\"Category 1\",\"Product 5 (Category 1)\",100),new U.a(6,\"Product 6\",\"Category 2\",\"Product 6 (Category 2)\",100),new U.a(7,\"Product 7\",\"Category 2\",\"Product 7 (Category 2)\",100),new U.a(8,\"Product 8\",\"Category 2\",\"Product 8 (Category 2)\",100),new U.a(9,\"Product 9\",\"Category 2\",\"Product 9 (Category 2)\",100),new U.a(10,\"Product 10\",\"Category 2\",\"Product 10 (Category 2)\",100),new U.a(11,\"Product 11\",\"Category 3\",\"Product 11 (Category 3)\",100),new U.a(12,\"Product 12\",\"Category 3\",\"Product 12 (Category 3)\",100),new U.a(13,\"Product 13\",\"Category 3\",\"Product 13 (Category 3)\",100),new U.a(14,\"Product 14\",\"Category 3\",\"Product 14 (Category 3)\",100),new U.a(15,\"Product 15\",\"Category 3\",\"Product 15 (Category 3)\",100)]}getProducts(){return Object(H.a)([this.products])}saveOrder(t){return console.log(JSON.stringify(t)),Object(H.a)([t])}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})(),$=(()=>{class t{constructor(){this.lines=[],this.itemCount=0,this.cartPrice=0}addLine(t,e=1){let n=this.lines.find(e=>e.product.id==t.id);null!=n?n.quantity+=e:this.lines.push(new q(t,e)),this.recalculate()}updateQuantity(t,e){let n=this.lines.find(e=>e.product.id==t.id);null!=n&&(n.quantity=Number(e)),this.recalculate()}removeLine(t){let e=this.lines.findIndex(e=>e.product.id==t);this.lines.splice(e,1),this.recalculate()}clear(){this.lines=[],this.itemCount=0,this.cartPrice=0}recalculate(){this.itemCount=0,this.cartPrice=0,this.lines.forEach(t=>{this.itemCount+=t.quantity,this.cartPrice+=t.quantity*t.product.price})}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})();class q{constructor(t,e){this.product=t,this.quantity=e}get lineTotal(){return this.quantity*this.product.price}}let z=(()=>{class t{constructor(t){this.cart=t,this.shipped=!1}clear(){this.id=null,this.name=this.address=this.city=null,this.state=this.zip=this.country=null,this.shipped=!1,this.cart.clear()}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob($))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})();var B=n(\"hf/X\"),K=n(\"DZdm\"),W=n(\"tk/3\"),J=n(\"hO0c\"),G=n(\"XNiG\");let Z=(()=>{class t{constructor(){this.connEvents=new G.a,window.addEventListener(\"online\",t=>this.handleConnectionChange(t)),window.addEventListener(\"offline\",t=>this.handleConnectionChange(t))}handleConnectionChange(t){this.connEvents.next(this.connected)}get connected(){return window.navigator.onLine}get Changes(){return this.connEvents}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})(),Q=(()=>{class t{}return t.\\u0275mod=r.Fb({type:t}),t.\\u0275inj=r.Eb({factory:function(e){return new(e||t)},providers:[M.a,$,z,B.a,{provide:F,useClass:K.a},K.a,J.a,Z],imports:[[W.b]]}),t})(),X=(()=>{class t{}return t.\\u0275mod=r.Fb({type:t}),t.\\u0275inj=r.Eb({factory:function(e){return new(e||t)},imports:[[Q,D,L.c,N.e]]}),t})();function Y(t,e){if(1&t&&(r.Kb(0,\"span\"),r.ec(1),r.Ub(2,\"currency\"),r.Jb()),2&t){const t=r.Tb();r.xb(1),r.hc(\" \",t.cart.itemCount,\" item(s) \",r.Vb(2,2,t.cart.cartPrice,\"USD\",\"symbol\",\"2.2-2\"),\" \")}}function tt(t,e){1&t&&(r.Kb(0,\"span\"),r.ec(1,\" (empty) \"),r.Jb())}let et=(()=>{class t{constructor(t){this.cart=t}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb($))},t.\\u0275cmp=r.Bb({type:t,selectors:[[\"cart-summary\"]],decls:7,vars:3,consts:[[1,\"float-right\"],[4,\"ngIf\"],[\"routerLink\",\"/cart\",1,\"btn\",\"btn-sm\",\"bg-dark\",\"text-white\",3,\"disabled\"],[1,\"fa\",\"fa-shopping-cart\"]],template:function(t,e){1&t&&(r.Kb(0,\"div\",0),r.Kb(1,\"small\"),r.ec(2,\" Your cart: \"),r.dc(3,Y,3,7,\"span\",1),r.dc(4,tt,2,0,\"span\",1),r.Jb(),r.Kb(5,\"button\",2),r.Ib(6,\"i\",3),r.Jb(),r.Jb()),2&t&&(r.xb(3),r.Wb(\"ngIf\",e.cart.itemCount>0),r.xb(1),r.Wb(\"ngIf\",0==e.cart.itemCount),r.xb(1),r.Wb(\"disabled\",0==e.cart.itemCount))},directives:[s.j,N.c],pipes:[s.c],encapsulation:2}),t})(),nt=(()=>{class t{constructor(t,e){this.container=t,this.template=e}ngOnChanges(t){this.container.clear();for(let e=0;e<this.counter;e++)this.container.createEmbeddedView(this.template,new rt(e+1))}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(r.O),r.Hb(r.K))},t.\\u0275dir=r.Cb({type:t,selectors:[[\"\",\"counterOf\",\"\"]],inputs:{counter:[\"counterOf\",\"counter\"]},features:[r.vb]}),t})();class rt{constructor(t){this.$implicit=t}}function st(t,e){if(1&t){const t=r.Lb();r.Kb(0,\"button\",18),r.Rb(\"click\",function(){r.ac(t);const n=e.$implicit;return r.Tb().changeCategory(n)}),r.ec(1),r.Jb()}if(2&t){const t=e.$implicit,n=r.Tb();r.zb(\"active\",t==n.selectedCategory),r.xb(1),r.gc(\" \",t,\" \")}}function it(t,e){if(1&t){const t=r.Lb();r.Kb(0,\"div\",19),r.Kb(1,\"h4\"),r.ec(2),r.Kb(3,\"span\",20),r.ec(4),r.Ub(5,\"currency\"),r.Jb(),r.Jb(),r.Kb(6,\"div\",21),r.ec(7),r.Kb(8,\"button\",22),r.Rb(\"click\",function(){r.ac(t);const n=e.$implicit;return r.Tb().addProductToCart(n)}),r.ec(9,\" Add To Cart \"),r.Jb(),r.Jb(),r.Jb()}if(2&t){const t=e.$implicit;r.xb(2),r.gc(\" \",t.name,\" \"),r.xb(2),r.gc(\" \",r.Vb(5,3,t.price,\"USD\",\"symbol\",\"2.2-2\"),\" \"),r.xb(3),r.gc(\" \",t.description,\" \")}}function ot(t,e){if(1&t){const t=r.Lb();r.Kb(0,\"button\",23),r.Rb(\"click\",function(){r.ac(t);const n=e.$implicit;return r.Tb().changePage(n)}),r.ec(1),r.Jb()}if(2&t){const t=e.$implicit,n=r.Tb();r.zb(\"active\",t==n.selectedPage),r.xb(1),r.gc(\" \",t,\" \")}}let at=(()=>{class t{constructor(t,e,n){this.repository=t,this.cart=e,this.router=n,this.selectedCategory=null,this.productsPerPage=4,this.selectedPage=1}get products(){let t=(this.selectedPage-1)*this.productsPerPage;return this.repository.getProducts(this.selectedCategory).slice(t,t+this.productsPerPage)}get categories(){return this.repository.getCategories()}changeCategory(t){this.selectedCategory=t}changePage(t){this.selectedPage=t}changePageSize(t){this.productsPerPage=Number(t),this.changePage(1)}get pageCount(){return Math.ceil(this.repository.getProducts(this.selectedCategory).length/this.productsPerPage)}addProductToCart(t){this.cart.addLine(t),this.router.navigateByUrl(\"/cart\")}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(M.a),r.Hb($),r.Hb(N.b))},t.\\u0275cmp=r.Bb({type:t,selectors:[[\"store\"]],decls:27,vars:4,consts:[[1,\"container-fluid\"],[1,\"row\"],[1,\"col\",\"bg-dark\",\"text-white\"],[1,\"navbar-brand\"],[1,\"col-3\",\"p-2\"],[1,\"btn\",\"btn-block\",\"btn-outline-primary\",3,\"click\"],[\"class\",\"btn btn-outline-primary btn-block\",3,\"active\",\"click\",4,\"ngFor\",\"ngForOf\"],[\"routerLink\",\"/admin\",1,\"btn\",\"btn-block\",\"btn-danger\",\"mt-5\"],[1,\"col-9\",\"p-2\"],[\"class\",\"card m-1 p-1 bg-light\",4,\"ngFor\",\"ngForOf\"],[1,\"form-inline\",\"float-left\",\"mr-1\"],[1,\"form-control\",3,\"value\",\"change\"],[\"value\",\"3\"],[\"value\",\"4\"],[\"value\",\"6\"],[\"value\",\"8\"],[1,\"btn-group\",\"float-right\"],[\"class\",\"btn btn-outline-primary\",3,\"active\",\"click\",4,\"counter\",\"counterOf\"],[1,\"btn\",\"btn-outline-primary\",\"btn-block\",3,\"click\"],[1,\"card\",\"m-1\",\"p-1\",\"bg-light\"],[1,\"badge\",\"badge-pill\",\"badge-primary\",\"float-right\"],[1,\"card-text\",\"bg-white\",\"p-1\"],[1,\"btn\",\"btn-success\",\"btn-sm\",\"float-right\",3,\"click\"],[1,\"btn\",\"btn-outline-primary\",3,\"click\"]],template:function(t,e){1&t&&(r.Kb(0,\"div\",0),r.Kb(1,\"div\",1),r.Kb(2,\"div\",2),r.Kb(3,\"a\",3),r.ec(4,\"SPORTS STORE\"),r.Jb(),r.Ib(5,\"cart-summary\"),r.Jb(),r.Jb(),r.Kb(6,\"div\",1),r.Kb(7,\"div\",4),r.Kb(8,\"button\",5),r.Rb(\"click\",function(){return e.changeCategory()}),r.ec(9,\" Home \"),r.Jb(),r.dc(10,st,2,3,\"button\",6),r.Kb(11,\"button\",7),r.ec(12,\" Admin \"),r.Jb(),r.Jb(),r.Kb(13,\"div\",8),r.dc(14,it,10,8,\"div\",9),r.Kb(15,\"div\",10),r.Kb(16,\"select\",11),r.Rb(\"change\",function(t){return e.changePageSize(t.target.value)}),r.Kb(17,\"option\",12),r.ec(18,\"3 per Page\"),r.Jb(),r.Kb(19,\"option\",13),r.ec(20,\"4 per Page\"),r.Jb(),r.Kb(21,\"option\",14),r.ec(22,\"6 per Page\"),r.Jb(),r.Kb(23,\"option\",15),r.ec(24,\"8 per Page\"),r.Jb(),r.Jb(),r.Jb(),r.Kb(25,\"div\",16),r.dc(26,ot,2,3,\"button\",17),r.Jb(),r.Jb(),r.Jb(),r.Jb()),2&t&&(r.xb(10),r.Wb(\"ngForOf\",e.categories),r.xb(4),r.Wb(\"ngForOf\",e.products),r.xb(2),r.Wb(\"value\",e.productsPerPage),r.xb(10),r.Wb(\"counterOf\",e.pageCount))},directives:[et,s.i,N.c,L.h,L.j,nt],pipes:[s.c],encapsulation:2}),t})();function ct(t,e){1&t&&(r.Kb(0,\"div\",6),r.Kb(1,\"h2\"),r.ec(2,\"Thanks!\"),r.Jb(),r.Kb(3,\"p\"),r.ec(4,\"Thanks for placing your order.\"),r.Jb(),r.Kb(5,\"p\"),r.ec(6,\"We'll ship your goods as soon as possible.\"),r.Jb(),r.Kb(7,\"button\",7),r.ec(8,\"Return to Store\"),r.Jb(),r.Jb())}function ut(t,e){1&t&&(r.Kb(0,\"span\",27),r.ec(1,\" Please enter your name \"),r.Jb())}function lt(t,e){1&t&&(r.Kb(0,\"span\",27),r.ec(1,\" Please enter your address \"),r.Jb())}function ht(t,e){1&t&&(r.Kb(0,\"span\",27),r.ec(1,\" Please enter your city \"),r.Jb())}function dt(t,e){1&t&&(r.Kb(0,\"span\",27),r.ec(1,\" Please enter your state \"),r.Jb())}function pt(t,e){1&t&&(r.Kb(0,\"span\",27),r.ec(1,\" Please enter your zip/postal code \"),r.Jb())}function ft(t,e){1&t&&(r.Kb(0,\"span\",27),r.ec(1,\" Please enter your country \"),r.Jb())}function gt(t,e){if(1&t){const t=r.Lb();r.Kb(0,\"form\",8,9),r.Rb(\"ngSubmit\",function(){r.ac(t);const e=r.Zb(1);return r.Tb().submitOrder(e)}),r.Kb(2,\"div\",10),r.Kb(3,\"label\"),r.ec(4,\"Name\"),r.Jb(),r.Kb(5,\"input\",11,12),r.Rb(\"ngModelChange\",function(e){return r.ac(t),r.Tb().order.name=e}),r.Jb(),r.dc(7,ut,2,0,\"span\",13),r.Jb(),r.Kb(8,\"div\",10),r.Kb(9,\"label\"),r.ec(10,\"Address\"),r.Jb(),r.Kb(11,\"input\",14,15),r.Rb(\"ngModelChange\",function(e){return r.ac(t),r.Tb().order.address=e}),r.Jb(),r.dc(13,lt,2,0,\"span\",13),r.Jb(),r.Kb(14,\"div\",10),r.Kb(15,\"label\"),r.ec(16,\"City\"),r.Jb(),r.Kb(17,\"input\",16,17),r.Rb(\"ngModelChange\",function(e){return r.ac(t),r.Tb().order.city=e}),r.Jb(),r.dc(19,ht,2,0,\"span\",13),r.Jb(),r.Kb(20,\"div\",10),r.Kb(21,\"label\"),r.ec(22,\"State\"),r.Jb(),r.Kb(23,\"input\",18,19),r.Rb(\"ngModelChange\",function(e){return r.ac(t),r.Tb().order.state=e}),r.Jb(),r.dc(25,dt,2,0,\"span\",13),r.Jb(),r.Kb(26,\"div\",10),r.Kb(27,\"label\"),r.ec(28,\"Zip/Postal Code\"),r.Jb(),r.Kb(29,\"input\",20,21),r.Rb(\"ngModelChange\",function(e){return r.ac(t),r.Tb().order.zip=e}),r.Jb(),r.dc(31,pt,2,0,\"span\",13),r.Jb(),r.Kb(32,\"div\",10),r.Kb(33,\"label\"),r.ec(34,\"Country\"),r.Jb(),r.Kb(35,\"input\",22,23),r.Rb(\"ngModelChange\",function(e){return r.ac(t),r.Tb().order.country=e}),r.Jb(),r.dc(37,ft,2,0,\"span\",13),r.Jb(),r.Kb(38,\"div\",24),r.Kb(39,\"button\",25),r.ec(40,\"Back\"),r.Jb(),r.Kb(41,\"button\",26),r.ec(42,\"Complete Order\"),r.Jb(),r.Jb(),r.Jb()}if(2&t){const t=r.Zb(6),e=r.Zb(12),n=r.Zb(18),s=r.Zb(24),i=r.Zb(30),o=r.Zb(36),a=r.Tb();r.xb(5),r.Wb(\"ngModel\",a.order.name),r.xb(2),r.Wb(\"ngIf\",a.submitted&&t.invalid),r.xb(4),r.Wb(\"ngModel\",a.order.address),r.xb(2),r.Wb(\"ngIf\",a.submitted&&e.invalid),r.xb(4),r.Wb(\"ngModel\",a.order.city),r.xb(2),r.Wb(\"ngIf\",a.submitted&&n.invalid),r.xb(4),r.Wb(\"ngModel\",a.order.state),r.xb(2),r.Wb(\"ngIf\",a.submitted&&s.invalid),r.xb(4),r.Wb(\"ngModel\",a.order.zip),r.xb(2),r.Wb(\"ngIf\",a.submitted&&i.invalid),r.xb(4),r.Wb(\"ngModel\",a.order.country),r.xb(2),r.Wb(\"ngIf\",a.submitted&&o.invalid)}}let mt=(()=>{class t{constructor(t,e){this.repository=t,this.order=e,this.orderSent=!1,this.submitted=!1}submitOrder(t){this.submitted=!0,t.valid&&this.repository.saveOrder(this.order).subscribe(t=>{this.order.clear(),this.orderSent=!0,this.submitted=!1})}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb(B.a),r.Hb(z))},t.\\u0275cmp=r.Bb({type:t,selectors:[[\"ng-component\"]],decls:7,vars:2,consts:[[1,\"container-fluid\"],[1,\"row\"],[1,\"col\",\"bg-dark\",\"text-white\"],[1,\"navbar-brand\"],[\"class\",\"m-2 text-center\",4,\"ngIf\"],[\"novalidate\",\"\",\"class\",\"m-2\",3,\"ngSubmit\",4,\"ngIf\"],[1,\"m-2\",\"text-center\"],[\"routerLink\",\"/store\",1,\"btn\",\"btn-primary\"],[\"novalidate\",\"\",1,\"m-2\",3,\"ngSubmit\"],[\"form\",\"ngForm\"],[1,\"form-group\"],[\"name\",\"name\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"name\",\"ngModel\"],[\"class\",\"text-danger\",4,\"ngIf\"],[\"name\",\"address\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"address\",\"ngModel\"],[\"name\",\"city\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"city\",\"ngModel\"],[\"name\",\"state\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"state\",\"ngModel\"],[\"name\",\"zip\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"zip\",\"ngModel\"],[\"name\",\"country\",\"required\",\"\",1,\"form-control\",3,\"ngModel\",\"ngModelChange\"],[\"country\",\"ngModel\"],[1,\"text-center\"],[\"routerLink\",\"/cart\",1,\"btn\",\"btn-secondary\",\"m-1\"],[\"type\",\"submit\",1,\"btn\",\"btn-primary\",\"m-1\"],[1,\"text-danger\"]],template:function(t,e){1&t&&(r.Kb(0,\"div\",0),r.Kb(1,\"div\",1),r.Kb(2,\"div\",2),r.Kb(3,\"a\",3),r.ec(4,\"SPORTS STORE\"),r.Jb(),r.Jb(),r.Jb(),r.Jb(),r.dc(5,ct,9,0,\"div\",4),r.dc(6,gt,43,12,\"form\",5)),2&t&&(r.xb(5),r.Wb(\"ngIf\",e.orderSent),r.xb(1),r.Wb(\"ngIf\",!e.orderSent))},directives:[s.j,N.c,L.k,L.e,L.f,L.b,L.i,L.d,L.g],styles:[\"input.ng-dirty.ng-invalid[_ngcontent-%COMP%]{border:2px solid red}input.ng-dirty.ng-valid[_ngcontent-%COMP%]{border:2px solid #6bc502}\"]}),t})();function bt(t,e){1&t&&(r.Kb(0,\"tr\"),r.Kb(1,\"td\",14),r.ec(2,\" Your cart is empty \"),r.Jb(),r.Jb())}function yt(t,e){if(1&t){const t=r.Lb();r.Kb(0,\"tr\"),r.Kb(1,\"td\"),r.Kb(2,\"input\",15),r.Rb(\"change\",function(n){r.ac(t);const s=e.$implicit;return r.Tb().cart.updateQuantity(s.product,n.target.value)}),r.Jb(),r.Jb(),r.Kb(3,\"td\"),r.ec(4),r.Jb(),r.Kb(5,\"td\",7),r.ec(6),r.Ub(7,\"currency\"),r.Jb(),r.Kb(8,\"td\",7),r.ec(9),r.Ub(10,\"currency\"),r.Jb(),r.Kb(11,\"td\",5),r.Kb(12,\"button\",16),r.Rb(\"click\",function(){r.ac(t);const n=e.$implicit;return r.Tb().cart.removeLine(n.product.id)}),r.ec(13,\" Remove \"),r.Jb(),r.Jb(),r.Jb()}if(2&t){const t=e.$implicit;r.xb(2),r.Wb(\"value\",t.quantity),r.xb(2),r.fc(t.product.name),r.xb(2),r.gc(\" \",r.Vb(7,4,t.product.price,\"USD\",\"symbol\",\"2.2-2\"),\" \"),r.xb(3),r.gc(\" \",r.Vb(10,9,t.lineTotal,\"USD\",\"symbol\",\"2.2-2\"),\" \")}}let vt=(()=>{class t{constructor(t,e){this.cart=t,this.connection=e,this.connected=!0,this.connected=this.connection.connected,e.Changes.subscribe(t=>this.connected=t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Hb($),r.Hb(Z))},t.\\u0275cmp=r.Bb({type:t,selectors:[[\"ng-component\"]],decls:37,vars:10,consts:[[1,\"container-fluid\"],[1,\"row\"],[1,\"col\",\"bg-dark\",\"text-white\"],[1,\"navbar-brand\"],[1,\"col\",\"mt-2\"],[1,\"text-center\"],[1,\"table\",\"table-bordered\",\"table-striped\",\"p-2\"],[1,\"text-right\"],[4,\"ngIf\"],[4,\"ngFor\",\"ngForOf\"],[\"colspan\",\"3\",1,\"text-right\"],[1,\"col\"],[\"routerLink\",\"/store\",1,\"btn\",\"btn-primary\",\"m-1\"],[\"routerLink\",\"/checkout\",1,\"btn\",\"btn-secondary\",\"m-1\",3,\"disabled\"],[\"colspan\",\"4\",1,\"text-center\"],[\"type\",\"number\",1,\"form-control-sm\",2,\"width\",\"5em\",3,\"value\",\"change\"],[1,\"btn\",\"btn-sm\",\"btn-danger\",3,\"click\"]],template:function(t,e){1&t&&(r.Kb(0,\"div\",0),r.Kb(1,\"div\",1),r.Kb(2,\"div\",2),r.Kb(3,\"a\",3),r.ec(4,\"SPORTS STORE\"),r.Jb(),r.Jb(),r.Jb(),r.Kb(5,\"div\",1),r.Kb(6,\"div\",4),r.Kb(7,\"h2\",5),r.ec(8,\"Your Cart\"),r.Jb(),r.Kb(9,\"table\",6),r.Kb(10,\"thead\"),r.Kb(11,\"tr\"),r.Kb(12,\"th\"),r.ec(13,\"Quantity\"),r.Jb(),r.Kb(14,\"th\"),r.ec(15,\"Product\"),r.Jb(),r.Kb(16,\"th\",7),r.ec(17,\"Price\"),r.Jb(),r.Kb(18,\"th\",7),r.ec(19,\"Subtotal\"),r.Jb(),r.Jb(),r.Jb(),r.Kb(20,\"tbody\"),r.dc(21,bt,3,0,\"tr\",8),r.dc(22,yt,14,14,\"tr\",9),r.Jb(),r.Kb(23,\"tfoot\"),r.Kb(24,\"tr\"),r.Kb(25,\"td\",10),r.ec(26,\"Total:\"),r.Jb(),r.Kb(27,\"td\",7),r.ec(28),r.Ub(29,\"currency\"),r.Jb(),r.Jb(),r.Jb(),r.Jb(),r.Jb(),r.Jb(),r.Kb(30,\"div\",1),r.Kb(31,\"div\",11),r.Kb(32,\"div\",5),r.Kb(33,\"button\",12),r.ec(34,\" Continue Shopping \"),r.Jb(),r.Kb(35,\"button\",13),r.ec(36),r.Jb(),r.Jb(),r.Jb(),r.Jb(),r.Jb()),2&t&&(r.xb(21),r.Wb(\"ngIf\",0==e.cart.lines.length),r.xb(1),r.Wb(\"ngForOf\",e.cart.lines),r.xb(6),r.gc(\" \",r.Vb(29,5,e.cart.cartPrice,\"USD\",\"symbol\",\"2.2-2\"),\" \"),r.xb(7),r.Wb(\"disabled\",0==e.cart.lines.length||!e.connected),r.xb(1),r.gc(\" \",e.connected?\"Checkout\":\"Offline\",\" \"))},directives:[s.j,s.i,N.c],pipes:[s.c],encapsulation:2}),t})(),_t=(()=>{class t{constructor(t){this.router=t,this.firstNavigation=!0}canActivate(t,e){return!this.firstNavigation||(this.firstNavigation=!1,t.component==at)||(this.router.navigateByUrl(\"/\"),!1)}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(N.b))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})();var wt=n(\"NXyV\"),Ct=n(\"HDdC\");function Ot(t,e){return new Ct.a(e?n=>e.schedule(St,0,{error:t,subscriber:n}):e=>e.error(t))}function St({error:t,subscriber:e}){e.error(t)}var xt=n(\"DH7j\"),Et=n(\"n6bG\"),Tt=n(\"lJxs\");function kt(t,e,n,r){return Object(Et.a)(n)&&(r=n,n=void 0),r?kt(t,e,n).pipe(Object(Tt.a)(t=>Object(xt.a)(t)?r(...t):r(t))):new Ct.a(r=>{At(t,e,function(t){r.next(arguments.length>1?Array.prototype.slice.call(arguments):t)},r,n)})}function At(t,e,n,r,s){let i;if(function(t){return t&&\"function\"==typeof t.addEventListener&&\"function\"==typeof t.removeEventListener}(t)){const r=t;t.addEventListener(e,n,s),i=()=>r.removeEventListener(e,n,s)}else if(function(t){return t&&\"function\"==typeof t.on&&\"function\"==typeof t.off}(t)){const r=t;t.on(e,n),i=()=>r.off(e,n)}else if(function(t){return t&&\"function\"==typeof t.addListener&&\"function\"==typeof t.removeListener}(t)){const r=t;t.addListener(e,n),i=()=>r.removeListener(e,n)}else{if(!t||!t.length)throw new TypeError(\"Invalid event target\");for(let i=0,o=t.length;i<o;i++)At(t[i],e,n,r,s)}r.add(i)}var jt=n(\"LRne\"),Pt=n(\"GyhO\"),Rt=n(\"KqfI\");const It=new Ct.a(Rt.a);var Dt=n(\"VRyK\"),Nt=n(\"pLZG\"),Vt=n(\"eIep\"),Lt=n(\"oB13\"),Mt=n(\"IzEk\"),Ut=n(\"vkgz\"),Ht=n(\"quSY\");class Ft extends Ht.a{constructor(t,e){super()}schedule(t,e=0){return this}}class $t extends Ft{constructor(t,e){super(t,e),this.scheduler=t,this.work=e,this.pending=!1}schedule(t,e=0){if(this.closed)return this;this.state=t;const n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(r,this.id,e),this}requestAsyncId(t,e,n=0){return setInterval(t.flush.bind(t,this),n)}recycleAsyncId(t,e,n=0){if(null!==n&&this.delay===n&&!1===this.pending)return e;clearInterval(e)}execute(t,e){if(this.closed)return new Error(\"executing a cancelled action\");this.pending=!1;const n=this._execute(t,e);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let n=!1,r=void 0;try{this.work(t)}catch(s){n=!0,r=!!s&&s||new Error(s)}if(n)return this.unsubscribe(),r}_unsubscribe(){const t=this.id,e=this.scheduler,n=e.actions,r=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==r&&n.splice(r,1),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null}}let qt=(()=>{class t{constructor(e,n=t.now){this.SchedulerAction=e,this.now=n}schedule(t,e=0,n){return new this.SchedulerAction(this,t).schedule(n,e)}}return t.now=()=>Date.now(),t})();class zt extends qt{constructor(t,e=qt.now){super(t,()=>zt.delegate&&zt.delegate!==this?zt.delegate.now():e()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(t,e=0,n){return zt.delegate&&zt.delegate!==this?zt.delegate.schedule(t,e,n):super.schedule(t,e,n)}flush(t){const{actions:e}=this;if(this.active)return void e.push(t);let n;this.active=!0;do{if(n=t.execute(t.state,t.delay))break}while(t=e.shift());if(this.active=!1,n){for(;t=e.shift();)t.unsubscribe();throw n}}}const Bt=new zt($t);var Kt=n(\"7o/Q\"),Wt=n(\"EY2u\");let Jt=(()=>{class t{constructor(t,e,n){this.kind=t,this.value=e,this.error=n,this.hasValue=\"N\"===t}observe(t){switch(this.kind){case\"N\":return t.next&&t.next(this.value);case\"E\":return t.error&&t.error(this.error);case\"C\":return t.complete&&t.complete()}}do(t,e,n){switch(this.kind){case\"N\":return t&&t(this.value);case\"E\":return e&&e(this.error);case\"C\":return n&&n()}}accept(t,e,n){return t&&\"function\"==typeof t.next?this.observe(t):this.do(t,e,n)}toObservable(){switch(this.kind){case\"N\":return Object(jt.a)(this.value);case\"E\":return Ot(this.error);case\"C\":return Object(Wt.b)()}throw new Error(\"unexpected notification kind value\")}static createNext(e){return void 0!==e?new t(\"N\",e):t.undefinedValueNotification}static createError(e){return new t(\"E\",void 0,e)}static createComplete(){return t.completeNotification}}return t.completeNotification=new t(\"C\"),t.undefinedValueNotification=new t(\"N\",void 0),t})();class Gt{constructor(t,e){this.delay=t,this.scheduler=e}call(t,e){return e.subscribe(new Zt(t,this.delay,this.scheduler))}}class Zt extends Kt.a{constructor(t,e,n){super(t),this.delay=e,this.scheduler=n,this.queue=[],this.active=!1,this.errored=!1}static dispatch(t){const e=t.source,n=e.queue,r=t.scheduler,s=t.destination;for(;n.length>0&&n[0].time-r.now()<=0;)n.shift().notification.observe(s);if(n.length>0){const e=Math.max(0,n[0].time-r.now());this.schedule(t,e)}else this.unsubscribe(),e.active=!1}_schedule(t){this.active=!0,this.destination.add(t.schedule(Zt.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))}scheduleNotification(t){if(!0===this.errored)return;const e=this.scheduler,n=new Qt(e.now()+this.delay,t);this.queue.push(n),!1===this.active&&this._schedule(e)}_next(t){this.scheduleNotification(Jt.createNext(t))}_error(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()}_complete(){this.scheduleNotification(Jt.createComplete()),this.unsubscribe()}}class Qt{constructor(t,e){this.time=t,this.notification=e}}const Xt=\"Service workers are disabled or not supported by this browser\";class Yt{constructor(t){if(this.serviceWorker=t,t){const e=kt(t,\"controllerchange\").pipe(Object(Tt.a)(()=>t.controller)),n=Object(wt.a)(()=>Object(jt.a)(t.controller)),r=Object(Pt.a)(n,e);this.worker=r.pipe(Object(Nt.a)(t=>!!t)),this.registration=this.worker.pipe(Object(Vt.a)(()=>t.getRegistration()));const s=kt(t,\"message\").pipe(Object(Tt.a)(t=>t.data)).pipe(Object(Nt.a)(t=>t&&t.type)).pipe(Object(Lt.a)(new G.a));s.connect(),this.events=s}else this.worker=this.events=this.registration=Object(wt.a)(()=>Ot(new Error(\"Service workers are disabled or not supported by this browser\")))}postMessage(t,e){return this.worker.pipe(Object(Mt.a)(1),Object(Ut.a)(n=>{n.postMessage(Object.assign({action:t},e))})).toPromise().then(()=>{})}postMessageWithStatus(t,e,n){const r=this.waitForStatus(n),s=this.postMessage(t,e);return Promise.all([r,s]).then(()=>{})}generateNonce(){return Math.round(1e7*Math.random())}eventsOfType(t){return this.events.pipe(Object(Nt.a)(e=>e.type===t))}nextEventOfType(t){return this.eventsOfType(t).pipe(Object(Mt.a)(1))}waitForStatus(t){return this.eventsOfType(\"STATUS\").pipe(Object(Nt.a)(e=>e.nonce===t),Object(Mt.a)(1),Object(Tt.a)(t=>{if(!t.status)throw new Error(t.error)})).toPromise()}get isEnabled(){return!!this.serviceWorker}}let te=(()=>{class t{constructor(t){if(this.sw=t,this.subscriptionChanges=new G.a,!t.isEnabled)return this.messages=It,this.notificationClicks=It,void(this.subscription=It);this.messages=this.sw.eventsOfType(\"PUSH\").pipe(Object(Tt.a)(t=>t.data)),this.notificationClicks=this.sw.eventsOfType(\"NOTIFICATION_CLICK\").pipe(Object(Tt.a)(t=>t.data)),this.pushManager=this.sw.registration.pipe(Object(Tt.a)(t=>t.pushManager));const e=this.pushManager.pipe(Object(Vt.a)(t=>t.getSubscription()));this.subscription=Object(Dt.a)(e,this.subscriptionChanges)}get isEnabled(){return this.sw.isEnabled}requestSubscription(t){if(!this.sw.isEnabled)return Promise.reject(new Error(Xt));const e={userVisibleOnly:!0};let n=this.decodeBase64(t.serverPublicKey.replace(/_/g,\"/\").replace(/-/g,\"+\")),r=new Uint8Array(new ArrayBuffer(n.length));for(let s=0;s<n.length;s++)r[s]=n.charCodeAt(s);return e.applicationServerKey=r,this.pushManager.pipe(Object(Vt.a)(t=>t.subscribe(e)),Object(Mt.a)(1)).toPromise().then(t=>(this.subscriptionChanges.next(t),t))}unsubscribe(){return this.sw.isEnabled?this.subscription.pipe(Object(Mt.a)(1),Object(Vt.a)(t=>{if(null===t)throw new Error(\"Not subscribed to push notifications.\");return t.unsubscribe().then(t=>{if(!t)throw new Error(\"Unsubscribe failed!\");this.subscriptionChanges.next(null)})})).toPromise():Promise.reject(new Error(Xt))}decodeBase64(t){return atob(t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(Yt))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})(),ee=(()=>{class t{constructor(t){if(this.sw=t,!t.isEnabled)return this.available=It,this.activated=It,void(this.unrecoverable=It);this.available=this.sw.eventsOfType(\"UPDATE_AVAILABLE\"),this.activated=this.sw.eventsOfType(\"UPDATE_ACTIVATED\"),this.unrecoverable=this.sw.eventsOfType(\"UNRECOVERABLE_STATE\")}get isEnabled(){return this.sw.isEnabled}checkForUpdate(){if(!this.sw.isEnabled)return Promise.reject(new Error(Xt));const t=this.sw.generateNonce();return this.sw.postMessageWithStatus(\"CHECK_FOR_UPDATES\",{statusNonce:t},t)}activateUpdate(){if(!this.sw.isEnabled)return Promise.reject(new Error(Xt));const t=this.sw.generateNonce();return this.sw.postMessageWithStatus(\"ACTIVATE_UPDATE\",{statusNonce:t},t)}}return t.\\u0275fac=function(e){return new(e||t)(r.Ob(Yt))},t.\\u0275prov=r.Db({token:t,factory:t.\\u0275fac}),t})();class ne{}const re=new r.q(\"NGSW_REGISTER_SCRIPT\");function se(t,e,n,i){return()=>{if(!Object(s.n)(i)||!(\"serviceWorker\"in navigator)||!1===n.enabled)return;let o;if(navigator.serviceWorker.addEventListener(\"controllerchange\",()=>{null!==navigator.serviceWorker.controller&&navigator.serviceWorker.controller.postMessage({action:\"INITIALIZE\"})}),\"function\"==typeof n.registrationStrategy)o=n.registrationStrategy();else{const[e,...r]=(n.registrationStrategy||\"registerWhenStable:30000\").split(\":\");switch(e){case\"registerImmediately\":o=Object(jt.a)(null);break;case\"registerWithDelay\":o=ie(+r[0]||0);break;case\"registerWhenStable\":o=r[0]?Object(Dt.a)(oe(t),ie(+r[0])):oe(t);break;default:throw new Error(\"Unknown ServiceWorker registration strategy: \"+n.registrationStrategy)}}t.get(r.z).runOutsideAngular(()=>o.pipe(Object(Mt.a)(1)).subscribe(()=>navigator.serviceWorker.register(e,{scope:n.scope}).catch(t=>console.error(\"Service worker registration failed with:\",t))))}}function ie(t){return Object(jt.a)(null).pipe(function(t,e=Bt){var n;const r=(n=t)instanceof Date&&!isNaN(+n)?+t-e.now():Math.abs(t);return t=>t.lift(new Gt(r,e))}(t))}function oe(t){return t.get(r.g).isStable.pipe(Object(Nt.a)(t=>t))}function ae(t,e){return new Yt(Object(s.n)(e)&&!1!==t.enabled?navigator.serviceWorker:void 0)}let ce=(()=>{class t{static register(e,n={}){return{ngModule:t,providers:[{provide:re,useValue:e},{provide:ne,useValue:n},{provide:Yt,useFactory:ae,deps:[ne,r.B]},{provide:r.d,useFactory:se,deps:[r.r,re,ne,r.B],multi:!0}]}}}return t.\\u0275mod=r.Fb({type:t}),t.\\u0275inj=r.Eb({factory:function(e){return new(e||t)},providers:[te,ee]}),t})(),ue=(()=>{class t{}return t.\\u0275mod=r.Fb({type:t,bootstrap:[V]}),t.\\u0275inj=r.Eb({factory:function(e){return new(e||t)},providers:[_t],imports:[[D,X,N.e.forRoot([{path:\"store\",component:at,canActivate:[_t]},{path:\"cart\",component:vt,canActivate:[_t]},{path:\"checkout\",component:mt,canActivate:[_t]},{path:\"admin\",loadChildren:()=>n.e(4).then(n.bind(null,\"jkDv\")).then(t=>t.AdminModule),canActivate:[_t]},{path:\"**\",redirectTo:\"/store\"}]),ce.register(\"ngsw-worker.js\",{enabled:!0})]]}),t})();Object(r.R)(),R().bootstrapModule(ue).catch(t=>console.log(t))},zn8P:function(t,e){function n(t){return Promise.resolve().then(function(){var e=new Error(\"Cannot find module '\"+t+\"'\");throw e.code=\"MODULE_NOT_FOUND\",e})}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=\"zn8P\"},zx2A:function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return o}),n.d(e,\"b\",function(){return a}),n.d(e,\"c\",function(){return c});var r=n(\"7o/Q\"),s=n(\"HDdC\"),i=n(\"SeVD\");class o extends r.a{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class a extends r.a{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function c(t,e){if(!e.closed)return t instanceof s.a?t.subscribe(e):Object(i.a)(t)(e)}}},[[0,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/dist/SportsStore/manifest.webmanifest",
    "content": "{\n  \"name\": \"SportsStore\",\n  \"short_name\": \"SportsStore\",\n  \"theme_color\": \"#1976d2\",\n  \"background_color\": \"#fafafa\",\n  \"display\": \"standalone\",\n  \"scope\": \"./\",\n  \"start_url\": \"./\",\n  \"icons\": [\n    {\n      \"src\": \"assets/icons/icon-72x72.png\",\n      \"sizes\": \"72x72\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-96x96.png\",\n      \"sizes\": \"96x96\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-128x128.png\",\n      \"sizes\": \"128x128\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-144x144.png\",\n      \"sizes\": \"144x144\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-152x152.png\",\n      \"sizes\": \"152x152\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-192x192.png\",\n      \"sizes\": \"192x192\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-384x384.png\",\n      \"sizes\": \"384x384\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-512x512.png\",\n      \"sizes\": \"512x512\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    }\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/dist/SportsStore/ngsw-worker.js",
    "content": "(function () {\n    'use strict';\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    /**\n     * Adapts the service worker to its runtime environment.\n     *\n     * Mostly, this is used to mock out identifiers which are otherwise read\n     * from the global scope.\n     */\n    class Adapter {\n        constructor(scopeUrl) {\n            this.scopeUrl = scopeUrl;\n            const parsedScopeUrl = this.parseUrl(this.scopeUrl);\n            // Determine the origin from the registration scope. This is used to differentiate between\n            // relative and absolute URLs.\n            this.origin = parsedScopeUrl.origin;\n            // Suffixing `ngsw` with the baseHref to avoid clash of cache names for SWs with different\n            // scopes on the same domain.\n            this.cacheNamePrefix = 'ngsw:' + parsedScopeUrl.path;\n        }\n        /**\n         * Wrapper around the `Request` constructor.\n         */\n        newRequest(input, init) {\n            return new Request(input, init);\n        }\n        /**\n         * Wrapper around the `Response` constructor.\n         */\n        newResponse(body, init) {\n            return new Response(body, init);\n        }\n        /**\n         * Wrapper around the `Headers` constructor.\n         */\n        newHeaders(headers) {\n            return new Headers(headers);\n        }\n        /**\n         * Test if a given object is an instance of `Client`.\n         */\n        isClient(source) {\n            return (source instanceof Client);\n        }\n        /**\n         * Read the current UNIX time in milliseconds.\n         */\n        get time() {\n            return Date.now();\n        }\n        /**\n         * Get a normalized representation of a URL such as those found in the ServiceWorker's `ngsw.json`\n         * configuration.\n         *\n         * More specifically:\n         * 1. Resolve the URL relative to the ServiceWorker's scope.\n         * 2. If the URL is relative to the ServiceWorker's own origin, then only return the path part.\n         *    Otherwise, return the full URL.\n         *\n         * @param url The raw request URL.\n         * @return A normalized representation of the URL.\n         */\n        normalizeUrl(url) {\n            // Check the URL's origin against the ServiceWorker's.\n            const parsed = this.parseUrl(url, this.scopeUrl);\n            return (parsed.origin === this.origin ? parsed.path : url);\n        }\n        /**\n         * Parse a URL into its different parts, such as `origin`, `path` and `search`.\n         */\n        parseUrl(url, relativeTo) {\n            // Workaround a Safari bug, see\n            // https://github.com/angular/angular/issues/31061#issuecomment-503637978\n            const parsed = !relativeTo ? new URL(url) : new URL(url, relativeTo);\n            return { origin: parsed.origin, path: parsed.pathname, search: parsed.search };\n        }\n        /**\n         * Wait for a given amount of time before completing a Promise.\n         */\n        timeout(ms) {\n            return new Promise(resolve => {\n                setTimeout(() => resolve(), ms);\n            });\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    /**\n     * An error returned in rejected promises if the given key is not found in the table.\n     */\n    class NotFound {\n        constructor(table, key) {\n            this.table = table;\n            this.key = key;\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    /**\n     * An implementation of a `Database` that uses the `CacheStorage` API to serialize\n     * state within mock `Response` objects.\n     */\n    class CacheDatabase {\n        constructor(scope, adapter) {\n            this.scope = scope;\n            this.adapter = adapter;\n            this.tables = new Map();\n        }\n        'delete'(name) {\n            if (this.tables.has(name)) {\n                this.tables.delete(name);\n            }\n            return this.scope.caches.delete(`${this.adapter.cacheNamePrefix}:db:${name}`);\n        }\n        list() {\n            return this.scope.caches.keys().then(keys => keys.filter(key => key.startsWith(`${this.adapter.cacheNamePrefix}:db:`)));\n        }\n        open(name, cacheQueryOptions) {\n            if (!this.tables.has(name)) {\n                const table = this.scope.caches.open(`${this.adapter.cacheNamePrefix}:db:${name}`)\n                    .then(cache => new CacheTable(name, cache, this.adapter, cacheQueryOptions));\n                this.tables.set(name, table);\n            }\n            return this.tables.get(name);\n        }\n    }\n    /**\n     * A `Table` backed by a `Cache`.\n     */\n    class CacheTable {\n        constructor(table, cache, adapter, cacheQueryOptions) {\n            this.table = table;\n            this.cache = cache;\n            this.adapter = adapter;\n            this.cacheQueryOptions = cacheQueryOptions;\n        }\n        request(key) {\n            return this.adapter.newRequest('/' + key);\n        }\n        'delete'(key) {\n            return this.cache.delete(this.request(key), this.cacheQueryOptions);\n        }\n        keys() {\n            return this.cache.keys().then(requests => requests.map(req => req.url.substr(1)));\n        }\n        read(key) {\n            return this.cache.match(this.request(key), this.cacheQueryOptions).then(res => {\n                if (res === undefined) {\n                    return Promise.reject(new NotFound(this.table, key));\n                }\n                return res.json();\n            });\n        }\n        write(key, value) {\n            return this.cache.put(this.request(key), this.adapter.newResponse(JSON.stringify(value)));\n        }\n    }\n\n    /*! *****************************************************************************\n    Copyright (c) Microsoft Corporation.\n\n    Permission to use, copy, modify, and/or distribute this software for any\n    purpose with or without fee is hereby granted.\n\n    THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n    PERFORMANCE OF THIS SOFTWARE.\n    ***************************************************************************** */\n    function __awaiter(thisArg, _arguments, P, generator) {\n        function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n        return new (P || (P = Promise))(function (resolve, reject) {\n            function fulfilled(value) { try {\n                step(generator.next(value));\n            }\n            catch (e) {\n                reject(e);\n            } }\n            function rejected(value) { try {\n                step(generator[\"throw\"](value));\n            }\n            catch (e) {\n                reject(e);\n            } }\n            function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n            step((generator = generator.apply(thisArg, _arguments || [])).next());\n        });\n    }\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    var UpdateCacheStatus = /*@__PURE__*/ (function (UpdateCacheStatus) {\n        UpdateCacheStatus[UpdateCacheStatus[\"NOT_CACHED\"] = 0] = \"NOT_CACHED\";\n        UpdateCacheStatus[UpdateCacheStatus[\"CACHED_BUT_UNUSED\"] = 1] = \"CACHED_BUT_UNUSED\";\n        UpdateCacheStatus[UpdateCacheStatus[\"CACHED\"] = 2] = \"CACHED\";\n        return UpdateCacheStatus;\n    })({});\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    class SwCriticalError extends Error {\n        constructor() {\n            super(...arguments);\n            this.isCritical = true;\n        }\n    }\n    function errorToString(error) {\n        if (error instanceof Error) {\n            return `${error.message}\\n${error.stack}`;\n        }\n        else {\n            return `${error}`;\n        }\n    }\n    class SwUnrecoverableStateError extends SwCriticalError {\n        constructor() {\n            super(...arguments);\n            this.isUnrecoverableState = true;\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    /**\n     * Compute the SHA1 of the given string\n     *\n     * see http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf\n     *\n     * WARNING: this function has not been designed not tested with security in mind.\n     *          DO NOT USE IT IN A SECURITY SENSITIVE CONTEXT.\n     *\n     * Borrowed from @angular/compiler/src/i18n/digest.ts\n     */\n    function sha1(str) {\n        const utf8 = str;\n        const words32 = stringToWords32(utf8, Endian.Big);\n        return _sha1(words32, utf8.length * 8);\n    }\n    function sha1Binary(buffer) {\n        const words32 = arrayBufferToWords32(buffer, Endian.Big);\n        return _sha1(words32, buffer.byteLength * 8);\n    }\n    function _sha1(words32, len) {\n        const w = [];\n        let [a, b, c, d, e] = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n        words32[len >> 5] |= 0x80 << (24 - len % 32);\n        words32[((len + 64 >> 9) << 4) + 15] = len;\n        for (let i = 0; i < words32.length; i += 16) {\n            const [h0, h1, h2, h3, h4] = [a, b, c, d, e];\n            for (let j = 0; j < 80; j++) {\n                if (j < 16) {\n                    w[j] = words32[i + j];\n                }\n                else {\n                    w[j] = rol32(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);\n                }\n                const [f, k] = fk(j, b, c, d);\n                const temp = [rol32(a, 5), f, e, k, w[j]].reduce(add32);\n                [e, d, c, b, a] = [d, c, rol32(b, 30), a, temp];\n            }\n            [a, b, c, d, e] = [add32(a, h0), add32(b, h1), add32(c, h2), add32(d, h3), add32(e, h4)];\n        }\n        return byteStringToHexString(words32ToByteString([a, b, c, d, e]));\n    }\n    function add32(a, b) {\n        return add32to64(a, b)[1];\n    }\n    function add32to64(a, b) {\n        const low = (a & 0xffff) + (b & 0xffff);\n        const high = (a >>> 16) + (b >>> 16) + (low >>> 16);\n        return [high >>> 16, (high << 16) | (low & 0xffff)];\n    }\n    // Rotate a 32b number left `count` position\n    function rol32(a, count) {\n        return (a << count) | (a >>> (32 - count));\n    }\n    var Endian = /*@__PURE__*/ (function (Endian) {\n        Endian[Endian[\"Little\"] = 0] = \"Little\";\n        Endian[Endian[\"Big\"] = 1] = \"Big\";\n        return Endian;\n    })({});\n    function fk(index, b, c, d) {\n        if (index < 20) {\n            return [(b & c) | (~b & d), 0x5a827999];\n        }\n        if (index < 40) {\n            return [b ^ c ^ d, 0x6ed9eba1];\n        }\n        if (index < 60) {\n            return [(b & c) | (b & d) | (c & d), 0x8f1bbcdc];\n        }\n        return [b ^ c ^ d, 0xca62c1d6];\n    }\n    function stringToWords32(str, endian) {\n        const size = (str.length + 3) >>> 2;\n        const words32 = [];\n        for (let i = 0; i < size; i++) {\n            words32[i] = wordAt(str, i * 4, endian);\n        }\n        return words32;\n    }\n    function arrayBufferToWords32(buffer, endian) {\n        const size = (buffer.byteLength + 3) >>> 2;\n        const words32 = [];\n        const view = new Uint8Array(buffer);\n        for (let i = 0; i < size; i++) {\n            words32[i] = wordAt(view, i * 4, endian);\n        }\n        return words32;\n    }\n    function byteAt(str, index) {\n        if (typeof str === 'string') {\n            return index >= str.length ? 0 : str.charCodeAt(index) & 0xff;\n        }\n        else {\n            return index >= str.byteLength ? 0 : str[index] & 0xff;\n        }\n    }\n    function wordAt(str, index, endian) {\n        let word = 0;\n        if (endian === Endian.Big) {\n            for (let i = 0; i < 4; i++) {\n                word += byteAt(str, index + i) << (24 - 8 * i);\n            }\n        }\n        else {\n            for (let i = 0; i < 4; i++) {\n                word += byteAt(str, index + i) << 8 * i;\n            }\n        }\n        return word;\n    }\n    function words32ToByteString(words32) {\n        return words32.reduce((str, word) => str + word32ToByteString(word), '');\n    }\n    function word32ToByteString(word) {\n        let str = '';\n        for (let i = 0; i < 4; i++) {\n            str += String.fromCharCode((word >>> 8 * (3 - i)) & 0xff);\n        }\n        return str;\n    }\n    function byteStringToHexString(str) {\n        let hex = '';\n        for (let i = 0; i < str.length; i++) {\n            const b = byteAt(str, i);\n            hex += (b >>> 4).toString(16) + (b & 0x0f).toString(16);\n        }\n        return hex.toLowerCase();\n    }\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    /**\n     * A group of assets that are cached in a `Cache` and managed by a given policy.\n     *\n     * Concrete classes derive from this base and specify the exact caching policy.\n     */\n    class AssetGroup {\n        constructor(scope, adapter, idle, config, hashes, db, prefix) {\n            this.scope = scope;\n            this.adapter = adapter;\n            this.idle = idle;\n            this.config = config;\n            this.hashes = hashes;\n            this.db = db;\n            this.prefix = prefix;\n            /**\n             * A deduplication cache, to make sure the SW never makes two network requests\n             * for the same resource at once. Managed by `fetchAndCacheOnce`.\n             */\n            this.inFlightRequests = new Map();\n            /**\n             * Normalized resource URLs.\n             */\n            this.urls = [];\n            /**\n             * Regular expression patterns.\n             */\n            this.patterns = [];\n            this.name = config.name;\n            // Normalize the config's URLs to take the ServiceWorker's scope into account.\n            this.urls = config.urls.map(url => adapter.normalizeUrl(url));\n            // Patterns in the config are regular expressions disguised as strings. Breathe life into them.\n            this.patterns = config.patterns.map(pattern => new RegExp(pattern));\n            // This is the primary cache, which holds all of the cached requests for this group. If a\n            // resource\n            // isn't in this cache, it hasn't been fetched yet.\n            this.cache = scope.caches.open(`${this.prefix}:${config.name}:cache`);\n            // This is the metadata table, which holds specific information for each cached URL, such as\n            // the timestamp of when it was added to the cache.\n            this.metadata = this.db.open(`${this.prefix}:${config.name}:meta`, config.cacheQueryOptions);\n        }\n        cacheStatus(url) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const cache = yield this.cache;\n                const meta = yield this.metadata;\n                const req = this.adapter.newRequest(url);\n                const res = yield cache.match(req, this.config.cacheQueryOptions);\n                if (res === undefined) {\n                    return UpdateCacheStatus.NOT_CACHED;\n                }\n                try {\n                    const data = yield meta.read(req.url);\n                    if (!data.used) {\n                        return UpdateCacheStatus.CACHED_BUT_UNUSED;\n                    }\n                }\n                catch (_) {\n                    // Error on the side of safety and assume cached.\n                }\n                return UpdateCacheStatus.CACHED;\n            });\n        }\n        /**\n         * Clean up all the cached data for this group.\n         */\n        cleanup() {\n            return __awaiter(this, void 0, void 0, function* () {\n                yield this.scope.caches.delete(`${this.prefix}:${this.config.name}:cache`);\n                yield this.db.delete(`${this.prefix}:${this.config.name}:meta`);\n            });\n        }\n        /**\n         * Process a request for a given resource and return it, or return null if it's not available.\n         */\n        handleFetch(req, ctx) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const url = this.adapter.normalizeUrl(req.url);\n                // Either the request matches one of the known resource URLs, one of the patterns for\n                // dynamically matched URLs, or neither. Determine which is the case for this request in\n                // order to decide how to handle it.\n                if (this.urls.indexOf(url) !== -1 || this.patterns.some(pattern => pattern.test(url))) {\n                    // This URL matches a known resource. Either it's been cached already or it's missing, in\n                    // which case it needs to be loaded from the network.\n                    // Open the cache to check whether this resource is present.\n                    const cache = yield this.cache;\n                    // Look for a cached response. If one exists, it can be used to resolve the fetch\n                    // operation.\n                    const cachedResponse = yield cache.match(req, this.config.cacheQueryOptions);\n                    if (cachedResponse !== undefined) {\n                        // A response has already been cached (which presumably matches the hash for this\n                        // resource). Check whether it's safe to serve this resource from cache.\n                        if (this.hashes.has(url)) {\n                            // This resource has a hash, and thus is versioned by the manifest. It's safe to return\n                            // the response.\n                            return cachedResponse;\n                        }\n                        else {\n                            // This resource has no hash, and yet exists in the cache. Check how old this request is\n                            // to make sure it's still usable.\n                            if (yield this.needToRevalidate(req, cachedResponse)) {\n                                this.idle.schedule(`revalidate(${this.prefix}, ${this.config.name}): ${req.url}`, () => __awaiter(this, void 0, void 0, function* () {\n                                    yield this.fetchAndCacheOnce(req);\n                                }));\n                            }\n                            // In either case (revalidation or not), the cached response must be good.\n                            return cachedResponse;\n                        }\n                    }\n                    // No already-cached response exists, so attempt a fetch/cache operation. The original request\n                    // may specify things like credential inclusion, but for assets these are not honored in order\n                    // to avoid issues with opaque responses. The SW requests the data itself.\n                    const res = yield this.fetchAndCacheOnce(this.adapter.newRequest(req.url));\n                    // If this is successful, the response needs to be cloned as it might be used to respond to\n                    // multiple fetch operations at the same time.\n                    return res.clone();\n                }\n                else {\n                    return null;\n                }\n            });\n        }\n        /**\n         * Some resources are cached without a hash, meaning that their expiration is controlled\n         * by HTTP caching headers. Check whether the given request/response pair is still valid\n         * per the caching headers.\n         */\n        needToRevalidate(req, res) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Three different strategies apply here:\n                // 1) The request has a Cache-Control header, and thus expiration needs to be based on its age.\n                // 2) The request has an Expires header, and expiration is based on the current timestamp.\n                // 3) The request has no applicable caching headers, and must be revalidated.\n                if (res.headers.has('Cache-Control')) {\n                    // Figure out if there is a max-age directive in the Cache-Control header.\n                    const cacheControl = res.headers.get('Cache-Control');\n                    const cacheDirectives = cacheControl\n                        // Directives are comma-separated within the Cache-Control header value.\n                        .split(',')\n                        // Make sure each directive doesn't have extraneous whitespace.\n                        .map(v => v.trim())\n                        // Some directives have values (like maxage and s-maxage)\n                        .map(v => v.split('='));\n                    // Lowercase all the directive names.\n                    cacheDirectives.forEach(v => v[0] = v[0].toLowerCase());\n                    // Find the max-age directive, if one exists.\n                    const maxAgeDirective = cacheDirectives.find(v => v[0] === 'max-age');\n                    const cacheAge = maxAgeDirective ? maxAgeDirective[1] : undefined;\n                    if (!cacheAge) {\n                        // No usable TTL defined. Must assume that the response is stale.\n                        return true;\n                    }\n                    try {\n                        const maxAge = 1000 * parseInt(cacheAge);\n                        // Determine the origin time of this request. If the SW has metadata on the request (which\n                        // it\n                        // should), it will have the time the request was added to the cache. If it doesn't for some\n                        // reason, the request may have a Date header which will serve the same purpose.\n                        let ts;\n                        try {\n                            // Check the metadata table. If a timestamp is there, use it.\n                            const metaTable = yield this.metadata;\n                            ts = (yield metaTable.read(req.url)).ts;\n                        }\n                        catch (_a) {\n                            // Otherwise, look for a Date header.\n                            const date = res.headers.get('Date');\n                            if (date === null) {\n                                // Unable to determine when this response was created. Assume that it's stale, and\n                                // revalidate it.\n                                return true;\n                            }\n                            ts = Date.parse(date);\n                        }\n                        const age = this.adapter.time - ts;\n                        return age < 0 || age > maxAge;\n                    }\n                    catch (_b) {\n                        // Assume stale.\n                        return true;\n                    }\n                }\n                else if (res.headers.has('Expires')) {\n                    // Determine if the expiration time has passed.\n                    const expiresStr = res.headers.get('Expires');\n                    try {\n                        // The request needs to be revalidated if the current time is later than the expiration\n                        // time, if it parses correctly.\n                        return this.adapter.time > Date.parse(expiresStr);\n                    }\n                    catch (_c) {\n                        // The expiration date failed to parse, so revalidate as a precaution.\n                        return true;\n                    }\n                }\n                else {\n                    // No way to evaluate staleness, so assume the response is already stale.\n                    return true;\n                }\n            });\n        }\n        /**\n         * Fetch the complete state of a cached resource, or return null if it's not found.\n         */\n        fetchFromCacheOnly(url) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const cache = yield this.cache;\n                const metaTable = yield this.metadata;\n                // Lookup the response in the cache.\n                const request = this.adapter.newRequest(url);\n                const response = yield cache.match(request, this.config.cacheQueryOptions);\n                if (response === undefined) {\n                    // It's not found, return null.\n                    return null;\n                }\n                // Next, lookup the cached metadata.\n                let metadata = undefined;\n                try {\n                    metadata = yield metaTable.read(request.url);\n                }\n                catch (_a) {\n                    // Do nothing, not found. This shouldn't happen, but it can be handled.\n                }\n                // Return both the response and any available metadata.\n                return { response, metadata };\n            });\n        }\n        /**\n         * Lookup all resources currently stored in the cache which have no associated hash.\n         */\n        unhashedResources() {\n            return __awaiter(this, void 0, void 0, function* () {\n                const cache = yield this.cache;\n                // Start with the set of all cached requests.\n                return (yield cache.keys())\n                    // Normalize their URLs.\n                    .map(request => this.adapter.normalizeUrl(request.url))\n                    // Exclude the URLs which have hashes.\n                    .filter(url => !this.hashes.has(url));\n            });\n        }\n        /**\n         * Fetch the given resource from the network, and cache it if able.\n         */\n        fetchAndCacheOnce(req, used = true) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // The `inFlightRequests` map holds information about which caching operations are currently\n                // underway for known resources. If this request appears there, another \"thread\" is already\n                // in the process of caching it, and this work should not be duplicated.\n                if (this.inFlightRequests.has(req.url)) {\n                    // There is a caching operation already in progress for this request. Wait for it to\n                    // complete, and hopefully it will have yielded a useful response.\n                    return this.inFlightRequests.get(req.url);\n                }\n                // No other caching operation is being attempted for this resource, so it will be owned here.\n                // Go to the network and get the correct version.\n                const fetchOp = this.fetchFromNetwork(req);\n                // Save this operation in `inFlightRequests` so any other \"thread\" attempting to cache it\n                // will block on this chain instead of duplicating effort.\n                this.inFlightRequests.set(req.url, fetchOp);\n                // Make sure this attempt is cleaned up properly on failure.\n                try {\n                    // Wait for a response. If this fails, the request will remain in `inFlightRequests`\n                    // indefinitely.\n                    const res = yield fetchOp;\n                    // It's very important that only successful responses are cached. Unsuccessful responses\n                    // should never be cached as this can completely break applications.\n                    if (!res.ok) {\n                        throw new Error(`Response not Ok (fetchAndCacheOnce): request for ${req.url} returned response ${res.status} ${res.statusText}`);\n                    }\n                    try {\n                        // This response is safe to cache (as long as it's cloned). Wait until the cache operation\n                        // is complete.\n                        const cache = yield this.scope.caches.open(`${this.prefix}:${this.config.name}:cache`);\n                        yield cache.put(req, res.clone());\n                        // If the request is not hashed, update its metadata, especially the timestamp. This is\n                        // needed for future determination of whether this cached response is stale or not.\n                        if (!this.hashes.has(this.adapter.normalizeUrl(req.url))) {\n                            // Metadata is tracked for requests that are unhashed.\n                            const meta = { ts: this.adapter.time, used };\n                            const metaTable = yield this.metadata;\n                            yield metaTable.write(req.url, meta);\n                        }\n                        return res;\n                    }\n                    catch (err) {\n                        // Among other cases, this can happen when the user clears all data through the DevTools,\n                        // but the SW is still running and serving another tab. In that case, trying to write to the\n                        // caches throws an `Entry was not found` error.\n                        // If this happens the SW can no longer work correctly. This situation is unrecoverable.\n                        throw new SwCriticalError(`Failed to update the caches for request to '${req.url}' (fetchAndCacheOnce): ${errorToString(err)}`);\n                    }\n                }\n                finally {\n                    // Finally, it can be removed from `inFlightRequests`. This might result in a double-remove\n                    // if some other chain was already making this request too, but that won't hurt anything.\n                    this.inFlightRequests.delete(req.url);\n                }\n            });\n        }\n        fetchFromNetwork(req, redirectLimit = 3) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Make a cache-busted request for the resource.\n                const res = yield this.cacheBustedFetchFromNetwork(req);\n                // Check for redirected responses, and follow the redirects.\n                if (res['redirected'] && !!res.url) {\n                    // If the redirect limit is exhausted, fail with an error.\n                    if (redirectLimit === 0) {\n                        throw new SwCriticalError(`Response hit redirect limit (fetchFromNetwork): request redirected too many times, next is ${res.url}`);\n                    }\n                    // Unwrap the redirect directly.\n                    return this.fetchFromNetwork(this.adapter.newRequest(res.url), redirectLimit - 1);\n                }\n                return res;\n            });\n        }\n        /**\n         * Load a particular asset from the network, accounting for hash validation.\n         */\n        cacheBustedFetchFromNetwork(req) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const url = this.adapter.normalizeUrl(req.url);\n                // If a hash is available for this resource, then compare the fetched version with the\n                // canonical hash. Otherwise, the network version will have to be trusted.\n                if (this.hashes.has(url)) {\n                    // It turns out this resource does have a hash. Look it up. Unless the fetched version\n                    // matches this hash, it's invalid and the whole manifest may need to be thrown out.\n                    const canonicalHash = this.hashes.get(url);\n                    // Ideally, the resource would be requested with cache-busting to guarantee the SW gets\n                    // the freshest version. However, doing this would eliminate any chance of the response\n                    // being in the HTTP cache. Given that the browser has recently actively loaded the page,\n                    // it's likely that many of the responses the SW needs to cache are in the HTTP cache and\n                    // are fresh enough to use. In the future, this could be done by setting cacheMode to\n                    // *only* check the browser cache for a cached version of the resource, when cacheMode is\n                    // fully supported. For now, the resource is fetched directly, without cache-busting, and\n                    // if the hash test fails a cache-busted request is tried before concluding that the\n                    // resource isn't correct. This gives the benefit of acceleration via the HTTP cache\n                    // without the risk of stale data, at the expense of a duplicate request in the event of\n                    // a stale response.\n                    // Fetch the resource from the network (possibly hitting the HTTP cache).\n                    const networkResult = yield this.safeFetch(req);\n                    // Decide whether a cache-busted request is necessary. It might be for two independent\n                    // reasons: either the non-cache-busted request failed (hopefully transiently) or if the\n                    // hash of the content retrieved does not match the canonical hash from the manifest. It's\n                    // only valid to access the content of the first response if the request was successful.\n                    let makeCacheBustedRequest = !networkResult.ok;\n                    if (networkResult.ok) {\n                        // The request was successful. A cache-busted request is only necessary if the hashes\n                        // don't match. Compare them, making sure to clone the response so it can be used later\n                        // if it proves to be valid.\n                        const fetchedHash = sha1Binary(yield networkResult.clone().arrayBuffer());\n                        makeCacheBustedRequest = (fetchedHash !== canonicalHash);\n                    }\n                    // Make a cache busted request to the network, if necessary.\n                    if (makeCacheBustedRequest) {\n                        // Hash failure, the version that was retrieved under the default URL did not have the\n                        // hash expected. This could be because the HTTP cache got in the way and returned stale\n                        // data, or because the version on the server really doesn't match. A cache-busting\n                        // request will differentiate these two situations.\n                        // TODO: handle case where the URL has parameters already (unlikely for assets).\n                        const cacheBustReq = this.adapter.newRequest(this.cacheBust(req.url));\n                        const cacheBustedResult = yield this.safeFetch(cacheBustReq);\n                        // If the response was unsuccessful, there's nothing more that can be done.\n                        if (!cacheBustedResult.ok) {\n                            if (cacheBustedResult.status === 404) {\n                                throw new SwUnrecoverableStateError(`Failed to retrieve hashed resource from the server. (AssetGroup: ${this.config.name} | URL: ${url})`);\n                            }\n                            else {\n                                throw new SwCriticalError(`Response not Ok (cacheBustedFetchFromNetwork): cache busted request for ${req.url} returned response ${cacheBustedResult.status} ${cacheBustedResult.statusText}`);\n                            }\n                        }\n                        // Hash the contents.\n                        const cacheBustedHash = sha1Binary(yield cacheBustedResult.clone().arrayBuffer());\n                        // If the cache-busted version doesn't match, then the manifest is not an accurate\n                        // representation of the server's current set of files, and the SW should give up.\n                        if (canonicalHash !== cacheBustedHash) {\n                            throw new SwCriticalError(`Hash mismatch (cacheBustedFetchFromNetwork): ${req.url}: expected ${canonicalHash}, got ${cacheBustedHash} (after cache busting)`);\n                        }\n                        // If it does match, then use the cache-busted result.\n                        return cacheBustedResult;\n                    }\n                    // Excellent, the version from the network matched on the first try, with no need for\n                    // cache-busting. Use it.\n                    return networkResult;\n                }\n                else {\n                    // This URL doesn't exist in our hash database, so it must be requested directly.\n                    return this.safeFetch(req);\n                }\n            });\n        }\n        /**\n         * Possibly update a resource, if it's expired and needs to be updated. A no-op otherwise.\n         */\n        maybeUpdate(updateFrom, req, cache) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const url = this.adapter.normalizeUrl(req.url);\n                const meta = yield this.metadata;\n                // Check if this resource is hashed and already exists in the cache of a prior version.\n                if (this.hashes.has(url)) {\n                    const hash = this.hashes.get(url);\n                    // Check the caches of prior versions, using the hash to ensure the correct version of\n                    // the resource is loaded.\n                    const res = yield updateFrom.lookupResourceWithHash(url, hash);\n                    // If a previously cached version was available, copy it over to this cache.\n                    if (res !== null) {\n                        // Copy to this cache.\n                        yield cache.put(req, res);\n                        yield meta.write(req.url, { ts: this.adapter.time, used: false });\n                        // No need to do anything further with this resource, it's now cached properly.\n                        return true;\n                    }\n                }\n                // No up-to-date version of this resource could be found.\n                return false;\n            });\n        }\n        /**\n         * Construct a cache-busting URL for a given URL.\n         */\n        cacheBust(url) {\n            return url + (url.indexOf('?') === -1 ? '?' : '&') + 'ngsw-cache-bust=' + Math.random();\n        }\n        safeFetch(req) {\n            return __awaiter(this, void 0, void 0, function* () {\n                try {\n                    return yield this.scope.fetch(req);\n                }\n                catch (_a) {\n                    return this.adapter.newResponse('', {\n                        status: 504,\n                        statusText: 'Gateway Timeout',\n                    });\n                }\n            });\n        }\n    }\n    /**\n     * An `AssetGroup` that prefetches all of its resources during initialization.\n     */\n    class PrefetchAssetGroup extends AssetGroup {\n        initializeFully(updateFrom) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Open the cache which actually holds requests.\n                const cache = yield this.cache;\n                // Cache all known resources serially. As this reduce proceeds, each Promise waits\n                // on the last before starting the fetch/cache operation for the next request. Any\n                // errors cause fall-through to the final Promise which rejects.\n                yield this.urls.reduce((previous, url) => __awaiter(this, void 0, void 0, function* () {\n                    // Wait on all previous operations to complete.\n                    yield previous;\n                    // Construct the Request for this url.\n                    const req = this.adapter.newRequest(url);\n                    // First, check the cache to see if there is already a copy of this resource.\n                    const alreadyCached = (yield cache.match(req, this.config.cacheQueryOptions)) !== undefined;\n                    // If the resource is in the cache already, it can be skipped.\n                    if (alreadyCached) {\n                        return;\n                    }\n                    // If an update source is available.\n                    if (updateFrom !== undefined && (yield this.maybeUpdate(updateFrom, req, cache))) {\n                        return;\n                    }\n                    // Otherwise, go to the network and hopefully cache the response (if successful).\n                    yield this.fetchAndCacheOnce(req, false);\n                }), Promise.resolve());\n                // Handle updating of unknown (unhashed) resources. This is only possible if there's\n                // a source to update from.\n                if (updateFrom !== undefined) {\n                    const metaTable = yield this.metadata;\n                    // Select all of the previously cached resources. These are cached unhashed resources\n                    // from previous versions of the app, in any asset group.\n                    yield (yield updateFrom.previouslyCachedResources())\n                        // First, narrow down the set of resources to those which are handled by this group.\n                        // Either it's a known URL, or it matches a given pattern.\n                        .filter(url => this.urls.indexOf(url) !== -1 || this.patterns.some(pattern => pattern.test(url)))\n                        // Finally, process each resource in turn.\n                        .reduce((previous, url) => __awaiter(this, void 0, void 0, function* () {\n                        yield previous;\n                        const req = this.adapter.newRequest(url);\n                        // It's possible that the resource in question is already cached. If so,\n                        // continue to the next one.\n                        const alreadyCached = ((yield cache.match(req, this.config.cacheQueryOptions)) !== undefined);\n                        if (alreadyCached) {\n                            return;\n                        }\n                        // Get the most recent old version of the resource.\n                        const res = yield updateFrom.lookupResourceWithoutHash(url);\n                        if (res === null || res.metadata === undefined) {\n                            // Unexpected, but not harmful.\n                            return;\n                        }\n                        // Write it into the cache. It may already be expired, but it can still serve\n                        // traffic until it's updated (stale-while-revalidate approach).\n                        yield cache.put(req, res.response);\n                        yield metaTable.write(req.url, Object.assign(Object.assign({}, res.metadata), { used: false }));\n                    }), Promise.resolve());\n                }\n            });\n        }\n    }\n    class LazyAssetGroup extends AssetGroup {\n        initializeFully(updateFrom) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // No action necessary if no update source is available - resources managed in this group\n                // are all lazily loaded, so there's nothing to initialize.\n                if (updateFrom === undefined) {\n                    return;\n                }\n                // Open the cache which actually holds requests.\n                const cache = yield this.cache;\n                // Loop through the listed resources, caching any which are available.\n                yield this.urls.reduce((previous, url) => __awaiter(this, void 0, void 0, function* () {\n                    // Wait on all previous operations to complete.\n                    yield previous;\n                    // Construct the Request for this url.\n                    const req = this.adapter.newRequest(url);\n                    // First, check the cache to see if there is already a copy of this resource.\n                    const alreadyCached = (yield cache.match(req, this.config.cacheQueryOptions)) !== undefined;\n                    // If the resource is in the cache already, it can be skipped.\n                    if (alreadyCached) {\n                        return;\n                    }\n                    const updated = yield this.maybeUpdate(updateFrom, req, cache);\n                    if (this.config.updateMode === 'prefetch' && !updated) {\n                        // If the resource was not updated, either it was not cached before or\n                        // the previously cached version didn't match the updated hash. In that\n                        // case, prefetch update mode dictates that the resource will be updated,\n                        // except if it was not previously utilized. Check the status of the\n                        // cached resource to see.\n                        const cacheStatus = yield updateFrom.recentCacheStatus(url);\n                        // If the resource is not cached, or was cached but unused, then it will be\n                        // loaded lazily.\n                        if (cacheStatus !== UpdateCacheStatus.CACHED) {\n                            return;\n                        }\n                        // Update from the network.\n                        yield this.fetchAndCacheOnce(req, false);\n                    }\n                }), Promise.resolve());\n            });\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    /**\n     * Manages an instance of `LruState` and moves URLs to the head of the\n     * chain when requested.\n     */\n    class LruList {\n        constructor(state) {\n            if (state === undefined) {\n                state = {\n                    head: null,\n                    tail: null,\n                    map: {},\n                    count: 0,\n                };\n            }\n            this.state = state;\n        }\n        /**\n         * The current count of URLs in the list.\n         */\n        get size() {\n            return this.state.count;\n        }\n        /**\n         * Remove the tail.\n         */\n        pop() {\n            // If there is no tail, return null.\n            if (this.state.tail === null) {\n                return null;\n            }\n            const url = this.state.tail;\n            this.remove(url);\n            // This URL has been successfully evicted.\n            return url;\n        }\n        remove(url) {\n            const node = this.state.map[url];\n            if (node === undefined) {\n                return false;\n            }\n            // Special case if removing the current head.\n            if (this.state.head === url) {\n                // The node is the current head. Special case the removal.\n                if (node.next === null) {\n                    // This is the only node. Reset the cache to be empty.\n                    this.state.head = null;\n                    this.state.tail = null;\n                    this.state.map = {};\n                    this.state.count = 0;\n                    return true;\n                }\n                // There is at least one other node. Make the next node the new head.\n                const next = this.state.map[node.next];\n                next.previous = null;\n                this.state.head = next.url;\n                node.next = null;\n                delete this.state.map[url];\n                this.state.count--;\n                return true;\n            }\n            // The node is not the head, so it has a previous. It may or may not be the tail.\n            // If it is not, then it has a next. First, grab the previous node.\n            const previous = this.state.map[node.previous];\n            // Fix the forward pointer to skip over node and go directly to node.next.\n            previous.next = node.next;\n            // node.next may or may not be set. If it is, fix the back pointer to skip over node.\n            // If it's not set, then this node happened to be the tail, and the tail needs to be\n            // updated to point to the previous node (removing the tail).\n            if (node.next !== null) {\n                // There is a next node, fix its back pointer to skip this node.\n                this.state.map[node.next].previous = node.previous;\n            }\n            else {\n                // There is no next node - the accessed node must be the tail. Move the tail pointer.\n                this.state.tail = node.previous;\n            }\n            node.next = null;\n            node.previous = null;\n            delete this.state.map[url];\n            // Count the removal.\n            this.state.count--;\n            return true;\n        }\n        accessed(url) {\n            // When a URL is accessed, its node needs to be moved to the head of the chain.\n            // This is accomplished in two steps:\n            //\n            // 1) remove the node from its position within the chain.\n            // 2) insert the node as the new head.\n            //\n            // Sometimes, a URL is accessed which has not been seen before. In this case, step 1 can\n            // be skipped completely (which will grow the chain by one). Of course, if the node is\n            // already the head, this whole operation can be skipped.\n            if (this.state.head === url) {\n                // The URL is already in the head position, accessing it is a no-op.\n                return;\n            }\n            // Look up the node in the map, and construct a new entry if it's\n            const node = this.state.map[url] || { url, next: null, previous: null };\n            // Step 1: remove the node from its position within the chain, if it is in the chain.\n            if (this.state.map[url] !== undefined) {\n                this.remove(url);\n            }\n            // Step 2: insert the node at the head of the chain.\n            // First, check if there's an existing head node. If there is, it has previous: null.\n            // Its previous pointer should be set to the node we're inserting.\n            if (this.state.head !== null) {\n                this.state.map[this.state.head].previous = url;\n            }\n            // The next pointer of the node being inserted gets set to the old head, before the head\n            // pointer is updated to this node.\n            node.next = this.state.head;\n            // The new head is the new node.\n            this.state.head = url;\n            // If there is no tail, then this is the first node, and is both the head and the tail.\n            if (this.state.tail === null) {\n                this.state.tail = url;\n            }\n            // Set the node in the map of nodes (if the URL has been seen before, this is a no-op)\n            // and count the insertion.\n            this.state.map[url] = node;\n            this.state.count++;\n        }\n    }\n    /**\n     * A group of cached resources determined by a set of URL patterns which follow a LRU policy\n     * for caching.\n     */\n    class DataGroup {\n        constructor(scope, adapter, config, db, debugHandler, prefix) {\n            this.scope = scope;\n            this.adapter = adapter;\n            this.config = config;\n            this.db = db;\n            this.debugHandler = debugHandler;\n            this.prefix = prefix;\n            /**\n             * Tracks the LRU state of resources in this cache.\n             */\n            this._lru = null;\n            this.patterns = this.config.patterns.map(pattern => new RegExp(pattern));\n            this.cache = this.scope.caches.open(`${this.prefix}:dynamic:${this.config.name}:cache`);\n            this.lruTable = this.db.open(`${this.prefix}:dynamic:${this.config.name}:lru`, this.config.cacheQueryOptions);\n            this.ageTable = this.db.open(`${this.prefix}:dynamic:${this.config.name}:age`, this.config.cacheQueryOptions);\n        }\n        /**\n         * Lazily initialize/load the LRU chain.\n         */\n        lru() {\n            return __awaiter(this, void 0, void 0, function* () {\n                if (this._lru === null) {\n                    const table = yield this.lruTable;\n                    try {\n                        this._lru = new LruList(yield table.read('lru'));\n                    }\n                    catch (_a) {\n                        this._lru = new LruList();\n                    }\n                }\n                return this._lru;\n            });\n        }\n        /**\n         * Sync the LRU chain to non-volatile storage.\n         */\n        syncLru() {\n            return __awaiter(this, void 0, void 0, function* () {\n                if (this._lru === null) {\n                    return;\n                }\n                const table = yield this.lruTable;\n                try {\n                    return table.write('lru', this._lru.state);\n                }\n                catch (err) {\n                    // Writing lru cache table failed. This could be a result of a full storage.\n                    // Continue serving clients as usual.\n                    this.debugHandler.log(err, `DataGroup(${this.config.name}@${this.config.version}).syncLru()`);\n                    // TODO: Better detect/handle full storage; e.g. using\n                    // [navigator.storage](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorStorage/storage).\n                }\n            });\n        }\n        /**\n         * Process a fetch event and return a `Response` if the resource is covered by this group,\n         * or `null` otherwise.\n         */\n        handleFetch(req, ctx) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Do nothing\n                if (!this.patterns.some(pattern => pattern.test(req.url))) {\n                    return null;\n                }\n                // Lazily initialize the LRU cache.\n                const lru = yield this.lru();\n                // The URL matches this cache. First, check whether this is a mutating request or not.\n                switch (req.method) {\n                    case 'OPTIONS':\n                        // Don't try to cache this - it's non-mutating, but is part of a mutating request.\n                        // Most likely SWs don't even see this, but this guard is here just in case.\n                        return null;\n                    case 'GET':\n                    case 'HEAD':\n                        // Handle the request with whatever strategy was selected.\n                        switch (this.config.strategy) {\n                            case 'freshness':\n                                return this.handleFetchWithFreshness(req, ctx, lru);\n                            case 'performance':\n                                return this.handleFetchWithPerformance(req, ctx, lru);\n                            default:\n                                throw new Error(`Unknown strategy: ${this.config.strategy}`);\n                        }\n                    default:\n                        // This was a mutating request. Assume the cache for this URL is no longer valid.\n                        const wasCached = lru.remove(req.url);\n                        // If there was a cached entry, remove it.\n                        if (wasCached) {\n                            yield this.clearCacheForUrl(req.url);\n                        }\n                        // Sync the LRU chain to non-volatile storage.\n                        yield this.syncLru();\n                        // Finally, fall back on the network.\n                        return this.safeFetch(req);\n                }\n            });\n        }\n        handleFetchWithPerformance(req, ctx, lru) {\n            return __awaiter(this, void 0, void 0, function* () {\n                let res = null;\n                // Check the cache first. If the resource exists there (and is not expired), the cached\n                // version can be used.\n                const fromCache = yield this.loadFromCache(req, lru);\n                if (fromCache !== null) {\n                    res = fromCache.res;\n                    // Check the age of the resource.\n                    if (this.config.refreshAheadMs !== undefined && fromCache.age >= this.config.refreshAheadMs) {\n                        ctx.waitUntil(this.safeCacheResponse(req, this.safeFetch(req), lru));\n                    }\n                }\n                if (res !== null) {\n                    return res;\n                }\n                // No match from the cache. Go to the network. Note that this is not an 'await'\n                // call, networkFetch is the actual Promise. This is due to timeout handling.\n                const [timeoutFetch, networkFetch] = this.networkFetchWithTimeout(req);\n                res = yield timeoutFetch;\n                // Since fetch() will always return a response, undefined indicates a timeout.\n                if (res === undefined) {\n                    // The request timed out. Return a Gateway Timeout error.\n                    res = this.adapter.newResponse(null, { status: 504, statusText: 'Gateway Timeout' });\n                    // Cache the network response eventually.\n                    ctx.waitUntil(this.safeCacheResponse(req, networkFetch, lru));\n                }\n                else {\n                    // The request completed in time, so cache it inline with the response flow.\n                    yield this.safeCacheResponse(req, res, lru);\n                }\n                return res;\n            });\n        }\n        handleFetchWithFreshness(req, ctx, lru) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Start with a network fetch.\n                const [timeoutFetch, networkFetch] = this.networkFetchWithTimeout(req);\n                let res;\n                // If that fetch errors, treat it as a timed out request.\n                try {\n                    res = yield timeoutFetch;\n                }\n                catch (_a) {\n                    res = undefined;\n                }\n                // If the network fetch times out or errors, fall back on the cache.\n                if (res === undefined) {\n                    ctx.waitUntil(this.safeCacheResponse(req, networkFetch, lru, true));\n                    // Ignore the age, the network response will be cached anyway due to the\n                    // behavior of freshness.\n                    const fromCache = yield this.loadFromCache(req, lru);\n                    res = (fromCache !== null) ? fromCache.res : null;\n                }\n                else {\n                    yield this.safeCacheResponse(req, res, lru, true);\n                }\n                // Either the network fetch didn't time out, or the cache yielded a usable response.\n                // In either case, use it.\n                if (res !== null) {\n                    return res;\n                }\n                // No response in the cache. No choice but to fall back on the full network fetch.\n                return networkFetch;\n            });\n        }\n        networkFetchWithTimeout(req) {\n            // If there is a timeout configured, race a timeout Promise with the network fetch.\n            // Otherwise, just fetch from the network directly.\n            if (this.config.timeoutMs !== undefined) {\n                const networkFetch = this.scope.fetch(req);\n                const safeNetworkFetch = (() => __awaiter(this, void 0, void 0, function* () {\n                    try {\n                        return yield networkFetch;\n                    }\n                    catch (_a) {\n                        return this.adapter.newResponse(null, {\n                            status: 504,\n                            statusText: 'Gateway Timeout',\n                        });\n                    }\n                }))();\n                const networkFetchUndefinedError = (() => __awaiter(this, void 0, void 0, function* () {\n                    try {\n                        return yield networkFetch;\n                    }\n                    catch (_b) {\n                        return undefined;\n                    }\n                }))();\n                // Construct a Promise<undefined> for the timeout.\n                const timeout = this.adapter.timeout(this.config.timeoutMs);\n                // Race that with the network fetch. This will either be a Response, or `undefined`\n                // in the event that the request errored or timed out.\n                return [Promise.race([networkFetchUndefinedError, timeout]), safeNetworkFetch];\n            }\n            else {\n                const networkFetch = this.safeFetch(req);\n                // Do a plain fetch.\n                return [networkFetch, networkFetch];\n            }\n        }\n        safeCacheResponse(req, resOrPromise, lru, okToCacheOpaque) {\n            return __awaiter(this, void 0, void 0, function* () {\n                try {\n                    const res = yield resOrPromise;\n                    try {\n                        yield this.cacheResponse(req, res, lru, okToCacheOpaque);\n                    }\n                    catch (err) {\n                        // Saving the API response failed. This could be a result of a full storage.\n                        // Since this data is cached lazily and temporarily, continue serving clients as usual.\n                        this.debugHandler.log(err, `DataGroup(${this.config.name}@${this.config.version}).safeCacheResponse(${req.url}, status: ${res.status})`);\n                        // TODO: Better detect/handle full storage; e.g. using\n                        // [navigator.storage](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorStorage/storage).\n                    }\n                }\n                catch (_a) {\n                    // Request failed\n                    // TODO: Handle this error somehow?\n                }\n            });\n        }\n        loadFromCache(req, lru) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Look for a response in the cache. If one exists, return it.\n                const cache = yield this.cache;\n                let res = yield cache.match(req, this.config.cacheQueryOptions);\n                if (res !== undefined) {\n                    // A response was found in the cache, but its age is not yet known. Look it up.\n                    try {\n                        const ageTable = yield this.ageTable;\n                        const age = this.adapter.time - (yield ageTable.read(req.url)).age;\n                        // If the response is young enough, use it.\n                        if (age <= this.config.maxAge) {\n                            // Successful match from the cache. Use the response, after marking it as having\n                            // been accessed.\n                            lru.accessed(req.url);\n                            return { res, age };\n                        }\n                        // Otherwise, or if there was an error, assume the response is expired, and evict it.\n                    }\n                    catch (_a) {\n                        // Some error getting the age for the response. Assume it's expired.\n                    }\n                    lru.remove(req.url);\n                    yield this.clearCacheForUrl(req.url);\n                    // TODO: avoid duplicate in event of network timeout, maybe.\n                    yield this.syncLru();\n                }\n                return null;\n            });\n        }\n        /**\n         * Operation for caching the response from the server. This has to happen all\n         * at once, so that the cache and LRU tracking remain in sync. If the network request\n         * completes before the timeout, this logic will be run inline with the response flow.\n         * If the request times out on the server, an error will be returned but the real network\n         * request will still be running in the background, to be cached when it completes.\n         */\n        cacheResponse(req, res, lru, okToCacheOpaque = false) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Only cache successful responses.\n                if (!(res.ok || (okToCacheOpaque && res.type === 'opaque'))) {\n                    return;\n                }\n                // If caching this response would make the cache exceed its maximum size, evict something\n                // first.\n                if (lru.size >= this.config.maxSize) {\n                    // The cache is too big, evict something.\n                    const evictedUrl = lru.pop();\n                    if (evictedUrl !== null) {\n                        yield this.clearCacheForUrl(evictedUrl);\n                    }\n                }\n                // TODO: evaluate for possible race conditions during flaky network periods.\n                // Mark this resource as having been accessed recently. This ensures it won't be evicted\n                // until enough other resources are requested that it falls off the end of the LRU chain.\n                lru.accessed(req.url);\n                // Store the response in the cache (cloning because the browser will consume\n                // the body during the caching operation).\n                yield (yield this.cache).put(req, res.clone());\n                // Store the age of the cache.\n                const ageTable = yield this.ageTable;\n                yield ageTable.write(req.url, { age: this.adapter.time });\n                // Sync the LRU chain to non-volatile storage.\n                yield this.syncLru();\n            });\n        }\n        /**\n         * Delete all of the saved state which this group uses to track resources.\n         */\n        cleanup() {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Remove both the cache and the database entries which track LRU stats.\n                yield Promise.all([\n                    this.scope.caches.delete(`${this.prefix}:dynamic:${this.config.name}:cache`),\n                    this.db.delete(`${this.prefix}:dynamic:${this.config.name}:age`),\n                    this.db.delete(`${this.prefix}:dynamic:${this.config.name}:lru`),\n                ]);\n            });\n        }\n        /**\n         * Clear the state of the cache for a particular resource.\n         *\n         * This doesn't remove the resource from the LRU table, that is assumed to have\n         * been done already. This clears the GET and HEAD versions of the request from\n         * the cache itself, as well as the metadata stored in the age table.\n         */\n        clearCacheForUrl(url) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const [cache, ageTable] = yield Promise.all([this.cache, this.ageTable]);\n                yield Promise.all([\n                    cache.delete(this.adapter.newRequest(url, { method: 'GET' }), this.config.cacheQueryOptions),\n                    cache.delete(this.adapter.newRequest(url, { method: 'HEAD' }), this.config.cacheQueryOptions),\n                    ageTable.delete(url),\n                ]);\n            });\n        }\n        safeFetch(req) {\n            return __awaiter(this, void 0, void 0, function* () {\n                try {\n                    return this.scope.fetch(req);\n                }\n                catch (_a) {\n                    return this.adapter.newResponse(null, {\n                        status: 504,\n                        statusText: 'Gateway Timeout',\n                    });\n                }\n            });\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    const BACKWARDS_COMPATIBILITY_NAVIGATION_URLS = [\n        { positive: true, regex: '^/.*$' },\n        { positive: false, regex: '^/.*\\\\.[^/]*$' },\n        { positive: false, regex: '^/.*__' },\n    ];\n    /**\n     * A specific version of the application, identified by a unique manifest\n     * as determined by its hash.\n     *\n     * Each `AppVersion` can be thought of as a published version of the app\n     * that can be installed as an update to any previously installed versions.\n     */\n    class AppVersion {\n        constructor(scope, adapter, database, idle, debugHandler, manifest, manifestHash) {\n            this.scope = scope;\n            this.adapter = adapter;\n            this.database = database;\n            this.idle = idle;\n            this.debugHandler = debugHandler;\n            this.manifest = manifest;\n            this.manifestHash = manifestHash;\n            /**\n             * A Map of absolute URL paths (`/foo.txt`) to the known hash of their contents (if available).\n             */\n            this.hashTable = new Map();\n            /**\n             * The normalized URL to the file that serves as the index page to satisfy navigation requests.\n             * Usually this is `/index.html`.\n             */\n            this.indexUrl = this.adapter.normalizeUrl(this.manifest.index);\n            /**\n             * Tracks whether the manifest has encountered any inconsistencies.\n             */\n            this._okay = true;\n            // The hashTable within the manifest is an Object - convert it to a Map for easier lookups.\n            Object.keys(this.manifest.hashTable).forEach(url => {\n                this.hashTable.set(adapter.normalizeUrl(url), this.manifest.hashTable[url]);\n            });\n            // Process each `AssetGroup` declared in the manifest. Each declared group gets an `AssetGroup`\n            // instance\n            // created for it, of a type that depends on the configuration mode.\n            this.assetGroups = (manifest.assetGroups || []).map(config => {\n                // Every asset group has a cache that's prefixed by the manifest hash and the name of the\n                // group.\n                const prefix = `${adapter.cacheNamePrefix}:${this.manifestHash}:assets`;\n                // Check the caching mode, which determines when resources will be fetched/updated.\n                switch (config.installMode) {\n                    case 'prefetch':\n                        return new PrefetchAssetGroup(this.scope, this.adapter, this.idle, config, this.hashTable, this.database, prefix);\n                    case 'lazy':\n                        return new LazyAssetGroup(this.scope, this.adapter, this.idle, config, this.hashTable, this.database, prefix);\n                }\n            });\n            // Process each `DataGroup` declared in the manifest.\n            this.dataGroups =\n                (manifest.dataGroups || [])\n                    .map(config => new DataGroup(this.scope, this.adapter, config, this.database, this.debugHandler, `${adapter.cacheNamePrefix}:${config.version}:data`));\n            // This keeps backwards compatibility with app versions without navigation urls.\n            // Fix: https://github.com/angular/angular/issues/27209\n            manifest.navigationUrls = manifest.navigationUrls || BACKWARDS_COMPATIBILITY_NAVIGATION_URLS;\n            // Create `include`/`exclude` RegExps for the `navigationUrls` declared in the manifest.\n            const includeUrls = manifest.navigationUrls.filter(spec => spec.positive);\n            const excludeUrls = manifest.navigationUrls.filter(spec => !spec.positive);\n            this.navigationUrls = {\n                include: includeUrls.map(spec => new RegExp(spec.regex)),\n                exclude: excludeUrls.map(spec => new RegExp(spec.regex)),\n            };\n        }\n        get okay() {\n            return this._okay;\n        }\n        /**\n         * Fully initialize this version of the application. If this Promise resolves successfully, all\n         * required\n         * data has been safely downloaded.\n         */\n        initializeFully(updateFrom) {\n            return __awaiter(this, void 0, void 0, function* () {\n                try {\n                    // Fully initialize each asset group, in series. Starts with an empty Promise,\n                    // and waits for the previous groups to have been initialized before initializing\n                    // the next one in turn.\n                    yield this.assetGroups.reduce((previous, group) => __awaiter(this, void 0, void 0, function* () {\n                        // Wait for the previous groups to complete initialization. If there is a\n                        // failure, this will throw, and each subsequent group will throw, until the\n                        // whole sequence fails.\n                        yield previous;\n                        // Initialize this group.\n                        return group.initializeFully(updateFrom);\n                    }), Promise.resolve());\n                }\n                catch (err) {\n                    this._okay = false;\n                    throw err;\n                }\n            });\n        }\n        handleFetch(req, context) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Check the request against each `AssetGroup` in sequence. If an `AssetGroup` can't handle the\n                // request,\n                // it will return `null`. Thus, the first non-null response is the SW's answer to the request.\n                // So reduce\n                // the group list, keeping track of a possible response. If there is one, it gets passed\n                // through, and if\n                // not the next group is consulted to produce a candidate response.\n                const asset = yield this.assetGroups.reduce((potentialResponse, group) => __awaiter(this, void 0, void 0, function* () {\n                    // Wait on the previous potential response. If it's not null, it should just be passed\n                    // through.\n                    const resp = yield potentialResponse;\n                    if (resp !== null) {\n                        return resp;\n                    }\n                    // No response has been found yet. Maybe this group will have one.\n                    return group.handleFetch(req, context);\n                }), Promise.resolve(null));\n                // The result of the above is the asset response, if there is any, or null otherwise. Return the\n                // asset\n                // response if there was one. If not, check with the data caching groups.\n                if (asset !== null) {\n                    return asset;\n                }\n                // Perform the same reduction operation as above, but this time processing\n                // the data caching groups.\n                const data = yield this.dataGroups.reduce((potentialResponse, group) => __awaiter(this, void 0, void 0, function* () {\n                    const resp = yield potentialResponse;\n                    if (resp !== null) {\n                        return resp;\n                    }\n                    return group.handleFetch(req, context);\n                }), Promise.resolve(null));\n                // If the data caching group returned a response, go with it.\n                if (data !== null) {\n                    return data;\n                }\n                // Next, check if this is a navigation request for a route. Detect circular\n                // navigations by checking if the request URL is the same as the index URL.\n                if (this.adapter.normalizeUrl(req.url) !== this.indexUrl && this.isNavigationRequest(req)) {\n                    if (this.manifest.navigationRequestStrategy === 'freshness') {\n                        // For navigation requests the freshness was configured. The request will always go trough\n                        // the network and fallback to default `handleFetch` behavior in case of failure.\n                        try {\n                            return yield this.scope.fetch(req);\n                        }\n                        catch (_a) {\n                            // Navigation request failed - application is likely offline.\n                            // Proceed forward to the default `handleFetch` behavior, where\n                            // `indexUrl` will be requested and it should be available in the cache.\n                        }\n                    }\n                    // This was a navigation request. Re-enter `handleFetch` with a request for\n                    // the URL.\n                    return this.handleFetch(this.adapter.newRequest(this.indexUrl), context);\n                }\n                return null;\n            });\n        }\n        /**\n         * Determine whether the request is a navigation request.\n         * Takes into account: Request mode, `Accept` header, `navigationUrls` patterns.\n         */\n        isNavigationRequest(req) {\n            if (req.mode !== 'navigate') {\n                return false;\n            }\n            if (!this.acceptsTextHtml(req)) {\n                return false;\n            }\n            const urlPrefix = this.scope.registration.scope.replace(/\\/$/, '');\n            const url = req.url.startsWith(urlPrefix) ? req.url.substr(urlPrefix.length) : req.url;\n            const urlWithoutQueryOrHash = url.replace(/[?#].*$/, '');\n            return this.navigationUrls.include.some(regex => regex.test(urlWithoutQueryOrHash)) &&\n                !this.navigationUrls.exclude.some(regex => regex.test(urlWithoutQueryOrHash));\n        }\n        /**\n         * Check this version for a given resource with a particular hash.\n         */\n        lookupResourceWithHash(url, hash) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Verify that this version has the requested resource cached. If not,\n                // there's no point in trying.\n                if (!this.hashTable.has(url)) {\n                    return null;\n                }\n                // Next, check whether the resource has the correct hash. If not, any cached\n                // response isn't usable.\n                if (this.hashTable.get(url) !== hash) {\n                    return null;\n                }\n                const cacheState = yield this.lookupResourceWithoutHash(url);\n                return cacheState && cacheState.response;\n            });\n        }\n        /**\n         * Check this version for a given resource regardless of its hash.\n         */\n        lookupResourceWithoutHash(url) {\n            // Limit the search to asset groups, and only scan the cache, don't\n            // load resources from the network.\n            return this.assetGroups.reduce((potentialResponse, group) => __awaiter(this, void 0, void 0, function* () {\n                const resp = yield potentialResponse;\n                if (resp !== null) {\n                    return resp;\n                }\n                // fetchFromCacheOnly() avoids any network fetches, and returns the\n                // full set of cache data, not just the Response.\n                return group.fetchFromCacheOnly(url);\n            }), Promise.resolve(null));\n        }\n        /**\n         * List all unhashed resources from all asset groups.\n         */\n        previouslyCachedResources() {\n            return this.assetGroups.reduce((resources, group) => __awaiter(this, void 0, void 0, function* () { return (yield resources).concat(yield group.unhashedResources()); }), Promise.resolve([]));\n        }\n        recentCacheStatus(url) {\n            return __awaiter(this, void 0, void 0, function* () {\n                return this.assetGroups.reduce((current, group) => __awaiter(this, void 0, void 0, function* () {\n                    const status = yield current;\n                    if (status === UpdateCacheStatus.CACHED) {\n                        return status;\n                    }\n                    const groupStatus = yield group.cacheStatus(url);\n                    if (groupStatus === UpdateCacheStatus.NOT_CACHED) {\n                        return status;\n                    }\n                    return groupStatus;\n                }), Promise.resolve(UpdateCacheStatus.NOT_CACHED));\n            });\n        }\n        /**\n         * Erase this application version, by cleaning up all the caches.\n         */\n        cleanup() {\n            return __awaiter(this, void 0, void 0, function* () {\n                yield Promise.all(this.assetGroups.map(group => group.cleanup()));\n                yield Promise.all(this.dataGroups.map(group => group.cleanup()));\n            });\n        }\n        /**\n         * Get the opaque application data which was provided with the manifest.\n         */\n        get appData() {\n            return this.manifest.appData || null;\n        }\n        /**\n         * Check whether a request accepts `text/html` (based on the `Accept` header).\n         */\n        acceptsTextHtml(req) {\n            const accept = req.headers.get('Accept');\n            if (accept === null) {\n                return false;\n            }\n            const values = accept.split(',');\n            return values.some(value => value.trim().toLowerCase() === 'text/html');\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    const DEBUG_LOG_BUFFER_SIZE = 100;\n    class DebugHandler {\n        constructor(driver, adapter) {\n            this.driver = driver;\n            this.adapter = adapter;\n            // There are two debug log message arrays. debugLogA records new debugging messages.\n            // Once it reaches DEBUG_LOG_BUFFER_SIZE, the array is moved to debugLogB and a new\n            // array is assigned to debugLogA. This ensures that insertion to the debug log is\n            // always O(1) no matter the number of logged messages, and that the total number\n            // of messages in the log never exceeds 2 * DEBUG_LOG_BUFFER_SIZE.\n            this.debugLogA = [];\n            this.debugLogB = [];\n        }\n        handleFetch(req) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const [state, versions, idle] = yield Promise.all([\n                    this.driver.debugState(),\n                    this.driver.debugVersions(),\n                    this.driver.debugIdleState(),\n                ]);\n                const msgState = `NGSW Debug Info:\n\nDriver state: ${state.state} (${state.why})\nLatest manifest hash: ${state.latestHash || 'none'}\nLast update check: ${this.since(state.lastUpdateCheck)}`;\n                const msgVersions = versions\n                    .map(version => `=== Version ${version.hash} ===\n\nClients: ${version.clients.join(', ')}`)\n                    .join('\\n\\n');\n                const msgIdle = `=== Idle Task Queue ===\nLast update tick: ${this.since(idle.lastTrigger)}\nLast update run: ${this.since(idle.lastRun)}\nTask queue:\n${idle.queue.map(v => ' * ' + v).join('\\n')}\n\nDebug log:\n${this.formatDebugLog(this.debugLogB)}\n${this.formatDebugLog(this.debugLogA)}\n`;\n                return this.adapter.newResponse(`${msgState}\n\n${msgVersions}\n\n${msgIdle}`, { headers: this.adapter.newHeaders({ 'Content-Type': 'text/plain' }) });\n            });\n        }\n        since(time) {\n            if (time === null) {\n                return 'never';\n            }\n            let age = this.adapter.time - time;\n            const days = Math.floor(age / 86400000);\n            age = age % 86400000;\n            const hours = Math.floor(age / 3600000);\n            age = age % 3600000;\n            const minutes = Math.floor(age / 60000);\n            age = age % 60000;\n            const seconds = Math.floor(age / 1000);\n            const millis = age % 1000;\n            return '' + (days > 0 ? `${days}d` : '') + (hours > 0 ? `${hours}h` : '') +\n                (minutes > 0 ? `${minutes}m` : '') + (seconds > 0 ? `${seconds}s` : '') +\n                (millis > 0 ? `${millis}u` : '');\n        }\n        log(value, context = '') {\n            // Rotate the buffers if debugLogA has grown too large.\n            if (this.debugLogA.length === DEBUG_LOG_BUFFER_SIZE) {\n                this.debugLogB = this.debugLogA;\n                this.debugLogA = [];\n            }\n            // Convert errors to string for logging.\n            if (typeof value !== 'string') {\n                value = this.errorToString(value);\n            }\n            // Log the message.\n            this.debugLogA.push({ value, time: this.adapter.time, context });\n        }\n        errorToString(err) {\n            return `${err.name}(${err.message}, ${err.stack})`;\n        }\n        formatDebugLog(log) {\n            return log.map(entry => `[${this.since(entry.time)}] ${entry.value} ${entry.context}`)\n                .join('\\n');\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    class IdleScheduler {\n        constructor(adapter, threshold, debug) {\n            this.adapter = adapter;\n            this.threshold = threshold;\n            this.debug = debug;\n            this.queue = [];\n            this.scheduled = null;\n            this.empty = Promise.resolve();\n            this.emptyResolve = null;\n            this.lastTrigger = null;\n            this.lastRun = null;\n        }\n        trigger() {\n            return __awaiter(this, void 0, void 0, function* () {\n                this.lastTrigger = this.adapter.time;\n                if (this.queue.length === 0) {\n                    return;\n                }\n                if (this.scheduled !== null) {\n                    this.scheduled.cancel = true;\n                }\n                const scheduled = {\n                    cancel: false,\n                };\n                this.scheduled = scheduled;\n                yield this.adapter.timeout(this.threshold);\n                if (scheduled.cancel) {\n                    return;\n                }\n                this.scheduled = null;\n                yield this.execute();\n            });\n        }\n        execute() {\n            return __awaiter(this, void 0, void 0, function* () {\n                this.lastRun = this.adapter.time;\n                while (this.queue.length > 0) {\n                    const queue = this.queue;\n                    this.queue = [];\n                    yield queue.reduce((previous, task) => __awaiter(this, void 0, void 0, function* () {\n                        yield previous;\n                        try {\n                            yield task.run();\n                        }\n                        catch (err) {\n                            this.debug.log(err, `while running idle task ${task.desc}`);\n                        }\n                    }), Promise.resolve());\n                }\n                if (this.emptyResolve !== null) {\n                    this.emptyResolve();\n                    this.emptyResolve = null;\n                }\n                this.empty = Promise.resolve();\n            });\n        }\n        schedule(desc, run) {\n            this.queue.push({ desc, run });\n            if (this.emptyResolve === null) {\n                this.empty = new Promise(resolve => {\n                    this.emptyResolve = resolve;\n                });\n            }\n        }\n        get size() {\n            return this.queue.length;\n        }\n        get taskDescriptions() {\n            return this.queue.map(task => task.desc);\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    function hashManifest(manifest) {\n        return sha1(JSON.stringify(manifest));\n    }\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    function isMsgCheckForUpdates(msg) {\n        return msg.action === 'CHECK_FOR_UPDATES';\n    }\n    function isMsgActivateUpdate(msg) {\n        return msg.action === 'ACTIVATE_UPDATE';\n    }\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    const IDLE_THRESHOLD = 5000;\n    const SUPPORTED_CONFIG_VERSION = 1;\n    const NOTIFICATION_OPTION_NAMES = [\n        'actions', 'badge', 'body', 'data', 'dir', 'icon', 'image', 'lang', 'renotify',\n        'requireInteraction', 'silent', 'tag', 'timestamp', 'title', 'vibrate'\n    ];\n    var DriverReadyState = /*@__PURE__*/ (function (DriverReadyState) {\n        // The SW is operating in a normal mode, responding to all traffic.\n        DriverReadyState[DriverReadyState[\"NORMAL\"] = 0] = \"NORMAL\";\n        // The SW does not have a clean installation of the latest version of the app, but older\n        // cached versions are safe to use so long as they don't try to fetch new dependencies.\n        // This is a degraded state.\n        DriverReadyState[DriverReadyState[\"EXISTING_CLIENTS_ONLY\"] = 1] = \"EXISTING_CLIENTS_ONLY\";\n        // The SW has decided that caching is completely unreliable, and is forgoing request\n        // handling until the next restart.\n        DriverReadyState[DriverReadyState[\"SAFE_MODE\"] = 2] = \"SAFE_MODE\";\n        return DriverReadyState;\n    })({});\n    class Driver {\n        constructor(scope, adapter, db) {\n            // Set up all the event handlers that the SW needs.\n            this.scope = scope;\n            this.adapter = adapter;\n            this.db = db;\n            /**\n             * Tracks the current readiness condition under which the SW is operating. This controls\n             * whether the SW attempts to respond to some or all requests.\n             */\n            this.state = DriverReadyState.NORMAL;\n            this.stateMessage = '(nominal)';\n            /**\n             * Tracks whether the SW is in an initialized state or not. Before initialization,\n             * it's not legal to respond to requests.\n             */\n            this.initialized = null;\n            /**\n             * Maps client IDs to the manifest hash of the application version being used to serve\n             * them. If a client ID is not present here, it has not yet been assigned a version.\n             *\n             * If a ManifestHash appears here, it is also present in the `versions` map below.\n             */\n            this.clientVersionMap = new Map();\n            /**\n             * Maps manifest hashes to instances of `AppVersion` for those manifests.\n             */\n            this.versions = new Map();\n            /**\n             * The latest version fetched from the server.\n             *\n             * Valid after initialization has completed.\n             */\n            this.latestHash = null;\n            this.lastUpdateCheck = null;\n            /**\n             * Whether there is a check for updates currently scheduled due to navigation.\n             */\n            this.scheduledNavUpdateCheck = false;\n            /**\n             * Keep track of whether we have logged an invalid `only-if-cached` request.\n             * (See `.onFetch()` for details.)\n             */\n            this.loggedInvalidOnlyIfCachedRequest = false;\n            this.ngswStatePath = this.adapter.parseUrl('ngsw/state', this.scope.registration.scope).path;\n            // The install event is triggered when the service worker is first installed.\n            this.scope.addEventListener('install', (event) => {\n                // SW code updates are separate from application updates, so code updates are\n                // almost as straightforward as restarting the SW. Because of this, it's always\n                // safe to skip waiting until application tabs are closed, and activate the new\n                // SW version immediately.\n                event.waitUntil(this.scope.skipWaiting());\n            });\n            // The activate event is triggered when this version of the service worker is\n            // first activated.\n            this.scope.addEventListener('activate', (event) => {\n                event.waitUntil((() => __awaiter(this, void 0, void 0, function* () {\n                    // As above, it's safe to take over from existing clients immediately, since the new SW\n                    // version will continue to serve the old application.\n                    yield this.scope.clients.claim();\n                    // Once all clients have been taken over, we can delete caches used by old versions of\n                    // `@angular/service-worker`, which are no longer needed. This can happen in the background.\n                    this.idle.schedule('activate: cleanup-old-sw-caches', () => __awaiter(this, void 0, void 0, function* () {\n                        try {\n                            yield this.cleanupOldSwCaches();\n                        }\n                        catch (err) {\n                            // Nothing to do - cleanup failed. Just log it.\n                            this.debugger.log(err, 'cleanupOldSwCaches @ activate: cleanup-old-sw-caches');\n                        }\n                    }));\n                }))());\n                // Rather than wait for the first fetch event, which may not arrive until\n                // the next time the application is loaded, the SW takes advantage of the\n                // activation event to schedule initialization. However, if this were run\n                // in the context of the 'activate' event, waitUntil() here would cause fetch\n                // events to block until initialization completed. Thus, the SW does a\n                // postMessage() to itself, to schedule a new event loop iteration with an\n                // entirely separate event context. The SW will be kept alive by waitUntil()\n                // within that separate context while initialization proceeds, while at the\n                // same time the activation event is allowed to resolve and traffic starts\n                // being served.\n                if (this.scope.registration.active !== null) {\n                    this.scope.registration.active.postMessage({ action: 'INITIALIZE' });\n                }\n            });\n            // Handle the fetch, message, and push events.\n            this.scope.addEventListener('fetch', (event) => this.onFetch(event));\n            this.scope.addEventListener('message', (event) => this.onMessage(event));\n            this.scope.addEventListener('push', (event) => this.onPush(event));\n            this.scope.addEventListener('notificationclick', (event) => this.onClick(event));\n            // The debugger generates debug pages in response to debugging requests.\n            this.debugger = new DebugHandler(this, this.adapter);\n            // The IdleScheduler will execute idle tasks after a given delay.\n            this.idle = new IdleScheduler(this.adapter, IDLE_THRESHOLD, this.debugger);\n        }\n        /**\n         * The handler for fetch events.\n         *\n         * This is the transition point between the synchronous event handler and the\n         * asynchronous execution that eventually resolves for respondWith() and waitUntil().\n         */\n        onFetch(event) {\n            const req = event.request;\n            const scopeUrl = this.scope.registration.scope;\n            const requestUrlObj = this.adapter.parseUrl(req.url, scopeUrl);\n            if (req.headers.has('ngsw-bypass') || /[?&]ngsw-bypass(?:[=&]|$)/i.test(requestUrlObj.search)) {\n                return;\n            }\n            // The only thing that is served unconditionally is the debug page.\n            if (requestUrlObj.path === this.ngswStatePath) {\n                // Allow the debugger to handle the request, but don't affect SW state in any other way.\n                event.respondWith(this.debugger.handleFetch(req));\n                return;\n            }\n            // If the SW is in a broken state where it's not safe to handle requests at all,\n            // returning causes the request to fall back on the network. This is preferred over\n            // `respondWith(fetch(req))` because the latter still shows in DevTools that the\n            // request was handled by the SW.\n            if (this.state === DriverReadyState.SAFE_MODE) {\n                // Even though the worker is in safe mode, idle tasks still need to happen so\n                // things like update checks, etc. can take place.\n                event.waitUntil(this.idle.trigger());\n                return;\n            }\n            // Although \"passive mixed content\" (like images) only produces a warning without a\n            // ServiceWorker, fetching it via a ServiceWorker results in an error. Let such requests be\n            // handled by the browser, since handling with the ServiceWorker would fail anyway.\n            // See https://github.com/angular/angular/issues/23012#issuecomment-376430187 for more details.\n            if (requestUrlObj.origin.startsWith('http:') && scopeUrl.startsWith('https:')) {\n                // Still, log the incident for debugging purposes.\n                this.debugger.log(`Ignoring passive mixed content request: Driver.fetch(${req.url})`);\n                return;\n            }\n            // When opening DevTools in Chrome, a request is made for the current URL (and possibly related\n            // resources, e.g. scripts) with `cache: 'only-if-cached'` and `mode: 'no-cors'`. These request\n            // will eventually fail, because `only-if-cached` is only allowed to be used with\n            // `mode: 'same-origin'`.\n            // This is likely a bug in Chrome DevTools. Avoid handling such requests.\n            // (See also https://github.com/angular/angular/issues/22362.)\n            // TODO(gkalpak): Remove once no longer necessary (i.e. fixed in Chrome DevTools).\n            if (req.cache === 'only-if-cached' && req.mode !== 'same-origin') {\n                // Log the incident only the first time it happens, to avoid spamming the logs.\n                if (!this.loggedInvalidOnlyIfCachedRequest) {\n                    this.loggedInvalidOnlyIfCachedRequest = true;\n                    this.debugger.log(`Ignoring invalid request: 'only-if-cached' can be set only with 'same-origin' mode`, `Driver.fetch(${req.url}, cache: ${req.cache}, mode: ${req.mode})`);\n                }\n                return;\n            }\n            // Past this point, the SW commits to handling the request itself. This could still\n            // fail (and result in `state` being set to `SAFE_MODE`), but even in that case the\n            // SW will still deliver a response.\n            event.respondWith(this.handleFetch(event));\n        }\n        /**\n         * The handler for message events.\n         */\n        onMessage(event) {\n            // Ignore message events when the SW is in safe mode, for now.\n            if (this.state === DriverReadyState.SAFE_MODE) {\n                return;\n            }\n            // If the message doesn't have the expected signature, ignore it.\n            const data = event.data;\n            if (!data || !data.action) {\n                return;\n            }\n            event.waitUntil((() => __awaiter(this, void 0, void 0, function* () {\n                // Initialization is the only event which is sent directly from the SW to itself, and thus\n                // `event.source` is not a `Client`. Handle it here, before the check for `Client` sources.\n                if (data.action === 'INITIALIZE') {\n                    return this.ensureInitialized(event);\n                }\n                // Only messages from true clients are accepted past this point.\n                // This is essentially a typecast.\n                if (!this.adapter.isClient(event.source)) {\n                    return;\n                }\n                // Handle the message and keep the SW alive until it's handled.\n                yield this.ensureInitialized(event);\n                yield this.handleMessage(data, event.source);\n            }))());\n        }\n        onPush(msg) {\n            // Push notifications without data have no effect.\n            if (!msg.data) {\n                return;\n            }\n            // Handle the push and keep the SW alive until it's handled.\n            msg.waitUntil(this.handlePush(msg.data.json()));\n        }\n        onClick(event) {\n            // Handle the click event and keep the SW alive until it's handled.\n            event.waitUntil(this.handleClick(event.notification, event.action));\n        }\n        ensureInitialized(event) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Since the SW may have just been started, it may or may not have been initialized already.\n                // `this.initialized` will be `null` if initialization has not yet been attempted, or will be a\n                // `Promise` which will resolve (successfully or unsuccessfully) if it has.\n                if (this.initialized !== null) {\n                    return this.initialized;\n                }\n                // Initialization has not yet been attempted, so attempt it. This should only ever happen once\n                // per SW instantiation.\n                try {\n                    this.initialized = this.initialize();\n                    yield this.initialized;\n                }\n                catch (error) {\n                    // If initialization fails, the SW needs to enter a safe state, where it declines to respond\n                    // to network requests.\n                    this.state = DriverReadyState.SAFE_MODE;\n                    this.stateMessage = `Initialization failed due to error: ${errorToString(error)}`;\n                    throw error;\n                }\n                finally {\n                    // Regardless if initialization succeeded, background tasks still need to happen.\n                    event.waitUntil(this.idle.trigger());\n                }\n            });\n        }\n        handleMessage(msg, from) {\n            return __awaiter(this, void 0, void 0, function* () {\n                if (isMsgCheckForUpdates(msg)) {\n                    const action = (() => __awaiter(this, void 0, void 0, function* () {\n                        yield this.checkForUpdate();\n                    }))();\n                    yield this.reportStatus(from, action, msg.statusNonce);\n                }\n                else if (isMsgActivateUpdate(msg)) {\n                    yield this.reportStatus(from, this.updateClient(from), msg.statusNonce);\n                }\n            });\n        }\n        handlePush(data) {\n            return __awaiter(this, void 0, void 0, function* () {\n                yield this.broadcast({\n                    type: 'PUSH',\n                    data,\n                });\n                if (!data.notification || !data.notification.title) {\n                    return;\n                }\n                const desc = data.notification;\n                let options = {};\n                NOTIFICATION_OPTION_NAMES.filter(name => desc.hasOwnProperty(name))\n                    .forEach(name => options[name] = desc[name]);\n                yield this.scope.registration.showNotification(desc['title'], options);\n            });\n        }\n        handleClick(notification, action) {\n            return __awaiter(this, void 0, void 0, function* () {\n                notification.close();\n                const options = {};\n                // The filter uses `name in notification` because the properties are on the prototype so\n                // hasOwnProperty does not work here\n                NOTIFICATION_OPTION_NAMES.filter(name => name in notification)\n                    .forEach(name => options[name] = notification[name]);\n                yield this.broadcast({\n                    type: 'NOTIFICATION_CLICK',\n                    data: { action, notification: options },\n                });\n            });\n        }\n        reportStatus(client, promise, nonce) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const response = { type: 'STATUS', nonce, status: true };\n                try {\n                    yield promise;\n                    client.postMessage(response);\n                }\n                catch (e) {\n                    client.postMessage(Object.assign(Object.assign({}, response), { status: false, error: e.toString() }));\n                }\n            });\n        }\n        updateClient(client) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Figure out which version the client is on. If it's not on the latest,\n                // it needs to be moved.\n                const existing = this.clientVersionMap.get(client.id);\n                if (existing === this.latestHash) {\n                    // Nothing to do, this client is already on the latest version.\n                    return;\n                }\n                // Switch the client over.\n                let previous = undefined;\n                // Look up the application data associated with the existing version. If there\n                // isn't any, fall back on using the hash.\n                if (existing !== undefined) {\n                    const existingVersion = this.versions.get(existing);\n                    previous = this.mergeHashWithAppData(existingVersion.manifest, existing);\n                }\n                // Set the current version used by the client, and sync the mapping to disk.\n                this.clientVersionMap.set(client.id, this.latestHash);\n                yield this.sync();\n                // Notify the client about this activation.\n                const current = this.versions.get(this.latestHash);\n                const notice = {\n                    type: 'UPDATE_ACTIVATED',\n                    previous,\n                    current: this.mergeHashWithAppData(current.manifest, this.latestHash),\n                };\n                client.postMessage(notice);\n            });\n        }\n        handleFetch(event) {\n            return __awaiter(this, void 0, void 0, function* () {\n                try {\n                    // Ensure the SW instance has been initialized.\n                    yield this.ensureInitialized(event);\n                }\n                catch (_a) {\n                    // Since the SW is already committed to responding to the currently active request,\n                    // respond with a network fetch.\n                    return this.safeFetch(event.request);\n                }\n                // On navigation requests, check for new updates.\n                if (event.request.mode === 'navigate' && !this.scheduledNavUpdateCheck) {\n                    this.scheduledNavUpdateCheck = true;\n                    this.idle.schedule('check-updates-on-navigation', () => __awaiter(this, void 0, void 0, function* () {\n                        this.scheduledNavUpdateCheck = false;\n                        yield this.checkForUpdate();\n                    }));\n                }\n                // Decide which version of the app to use to serve this request. This is asynchronous as in\n                // some cases, a record will need to be written to disk about the assignment that is made.\n                const appVersion = yield this.assignVersion(event);\n                // Bail out\n                if (appVersion === null) {\n                    event.waitUntil(this.idle.trigger());\n                    return this.safeFetch(event.request);\n                }\n                let res = null;\n                try {\n                    // Handle the request. First try the AppVersion. If that doesn't work, fall back on the\n                    // network.\n                    res = yield appVersion.handleFetch(event.request, event);\n                }\n                catch (err) {\n                    if (err.isUnrecoverableState) {\n                        yield this.notifyClientsAboutUnrecoverableState(appVersion, err.message);\n                    }\n                    if (err.isCritical) {\n                        // Something went wrong with the activation of this version.\n                        yield this.versionFailed(appVersion, err);\n                        event.waitUntil(this.idle.trigger());\n                        return this.safeFetch(event.request);\n                    }\n                    throw err;\n                }\n                // The AppVersion will only return null if the manifest doesn't specify what to do about this\n                // request. In that case, just fall back on the network.\n                if (res === null) {\n                    event.waitUntil(this.idle.trigger());\n                    return this.safeFetch(event.request);\n                }\n                // Trigger the idle scheduling system. The Promise returned by trigger() will resolve after\n                // a specific amount of time has passed. If trigger() hasn't been called again by then (e.g.\n                // on a subsequent request), the idle task queue will be drained and the Promise won't resolve\n                // until that operation is complete as well.\n                event.waitUntil(this.idle.trigger());\n                // The AppVersion returned a usable response, so return it.\n                return res;\n            });\n        }\n        /**\n         * Attempt to quickly reach a state where it's safe to serve responses.\n         */\n        initialize() {\n            return __awaiter(this, void 0, void 0, function* () {\n                // On initialization, all of the serialized state is read out of the 'control'\n                // table. This includes:\n                // - map of hashes to manifests of currently loaded application versions\n                // - map of client IDs to their pinned versions\n                // - record of the most recently fetched manifest hash\n                //\n                // If these values don't exist in the DB, then this is the either the first time\n                // the SW has run or the DB state has been wiped or is inconsistent. In that case,\n                // load a fresh copy of the manifest and reset the state from scratch.\n                // Open up the DB table.\n                const table = yield this.db.open('control');\n                // Attempt to load the needed state from the DB. If this fails, the catch {} block\n                // will populate these variables with freshly constructed values.\n                let manifests, assignments, latest;\n                try {\n                    // Read them from the DB simultaneously.\n                    [manifests, assignments, latest] = yield Promise.all([\n                        table.read('manifests'),\n                        table.read('assignments'),\n                        table.read('latest'),\n                    ]);\n                    // Make sure latest manifest is correctly installed. If not (e.g. corrupted data),\n                    // it could stay locked in EXISTING_CLIENTS_ONLY or SAFE_MODE state.\n                    if (!this.versions.has(latest.latest) && !manifests.hasOwnProperty(latest.latest)) {\n                        this.debugger.log(`Missing manifest for latest version hash ${latest.latest}`, 'initialize: read from DB');\n                        throw new Error(`Missing manifest for latest hash ${latest.latest}`);\n                    }\n                    // Successfully loaded from saved state. This implies a manifest exists, so\n                    // the update check needs to happen in the background.\n                    this.idle.schedule('init post-load (update, cleanup)', () => __awaiter(this, void 0, void 0, function* () {\n                        yield this.checkForUpdate();\n                        try {\n                            yield this.cleanupCaches();\n                        }\n                        catch (err) {\n                            // Nothing to do - cleanup failed. Just log it.\n                            this.debugger.log(err, 'cleanupCaches @ init post-load');\n                        }\n                    }));\n                }\n                catch (_) {\n                    // Something went wrong. Try to start over by fetching a new manifest from the\n                    // server and building up an empty initial state.\n                    const manifest = yield this.fetchLatestManifest();\n                    const hash = hashManifest(manifest);\n                    manifests = {};\n                    manifests[hash] = manifest;\n                    assignments = {};\n                    latest = { latest: hash };\n                    // Save the initial state to the DB.\n                    yield Promise.all([\n                        table.write('manifests', manifests),\n                        table.write('assignments', assignments),\n                        table.write('latest', latest),\n                    ]);\n                }\n                // At this point, either the state has been loaded successfully, or fresh state\n                // with a new copy of the manifest has been produced. At this point, the `Driver`\n                // can have its internals hydrated from the state.\n                // Initialize the `versions` map by setting each hash to a new `AppVersion` instance\n                // for that manifest.\n                Object.keys(manifests).forEach((hash) => {\n                    const manifest = manifests[hash];\n                    // If the manifest is newly initialized, an AppVersion may have already been\n                    // created for it.\n                    if (!this.versions.has(hash)) {\n                        this.versions.set(hash, new AppVersion(this.scope, this.adapter, this.db, this.idle, this.debugger, manifest, hash));\n                    }\n                });\n                // Map each client ID to its associated hash. Along the way, verify that the hash\n                // is still valid for that client ID. It should not be possible for a client to\n                // still be associated with a hash that was since removed from the state.\n                Object.keys(assignments).forEach((clientId) => {\n                    const hash = assignments[clientId];\n                    if (this.versions.has(hash)) {\n                        this.clientVersionMap.set(clientId, hash);\n                    }\n                    else {\n                        this.clientVersionMap.set(clientId, latest.latest);\n                        this.debugger.log(`Unknown version ${hash} mapped for client ${clientId}, using latest instead`, `initialize: map assignments`);\n                    }\n                });\n                // Set the latest version.\n                this.latestHash = latest.latest;\n                // Finally, assert that the latest version is in fact loaded.\n                if (!this.versions.has(latest.latest)) {\n                    throw new Error(`Invariant violated (initialize): latest hash ${latest.latest} has no known manifest`);\n                }\n                // Finally, wait for the scheduling of initialization of all versions in the\n                // manifest. Ordinarily this just schedules the initializations to happen during\n                // the next idle period, but in development mode this might actually wait for the\n                // full initialization.\n                // If any of these initializations fail, versionFailed() will be called either\n                // synchronously or asynchronously to handle the failure and re-map clients.\n                yield Promise.all(Object.keys(manifests).map((hash) => __awaiter(this, void 0, void 0, function* () {\n                    try {\n                        // Attempt to schedule or initialize this version. If this operation is\n                        // successful, then initialization either succeeded or was scheduled. If\n                        // it fails, then full initialization was attempted and failed.\n                        yield this.scheduleInitialization(this.versions.get(hash));\n                    }\n                    catch (err) {\n                        this.debugger.log(err, `initialize: schedule init of ${hash}`);\n                        return false;\n                    }\n                })));\n            });\n        }\n        lookupVersionByHash(hash, debugName = 'lookupVersionByHash') {\n            // The version should exist, but check just in case.\n            if (!this.versions.has(hash)) {\n                throw new Error(`Invariant violated (${debugName}): want AppVersion for ${hash} but not loaded`);\n            }\n            return this.versions.get(hash);\n        }\n        /**\n         * Decide which version of the manifest to use for the event.\n         */\n        assignVersion(event) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // First, check whether the event has a (non empty) client ID. If it does, the version may\n                // already be associated.\n                const clientId = event.clientId;\n                if (clientId) {\n                    // Check if there is an assigned client id.\n                    if (this.clientVersionMap.has(clientId)) {\n                        // There is an assignment for this client already.\n                        const hash = this.clientVersionMap.get(clientId);\n                        let appVersion = this.lookupVersionByHash(hash, 'assignVersion');\n                        // Ordinarily, this client would be served from its assigned version. But, if this\n                        // request is a navigation request, this client can be updated to the latest\n                        // version immediately.\n                        if (this.state === DriverReadyState.NORMAL && hash !== this.latestHash &&\n                            appVersion.isNavigationRequest(event.request)) {\n                            // Update this client to the latest version immediately.\n                            if (this.latestHash === null) {\n                                throw new Error(`Invariant violated (assignVersion): latestHash was null`);\n                            }\n                            const client = yield this.scope.clients.get(clientId);\n                            yield this.updateClient(client);\n                            appVersion = this.lookupVersionByHash(this.latestHash, 'assignVersion');\n                        }\n                        // TODO: make sure the version is valid.\n                        return appVersion;\n                    }\n                    else {\n                        // This is the first time this client ID has been seen. Whether the SW is in a\n                        // state to handle new clients depends on the current readiness state, so check\n                        // that first.\n                        if (this.state !== DriverReadyState.NORMAL) {\n                            // It's not safe to serve new clients in the current state. It's possible that\n                            // this is an existing client which has not been mapped yet (see below) but\n                            // even if that is the case, it's invalid to make an assignment to a known\n                            // invalid version, even if that assignment was previously implicit. Return\n                            // undefined here to let the caller know that no assignment is possible at\n                            // this time.\n                            return null;\n                        }\n                        // It's safe to handle this request. Two cases apply. Either:\n                        // 1) the browser assigned a client ID at the time of the navigation request, and\n                        //    this is truly the first time seeing this client, or\n                        // 2) a navigation request came previously from the same client, but with no client\n                        //    ID attached. Browsers do this to avoid creating a client under the origin in\n                        //    the event the navigation request is just redirected.\n                        //\n                        // In case 1, the latest version can safely be used.\n                        // In case 2, the latest version can be used, with the assumption that the previous\n                        // navigation request was answered under the same version. This assumption relies\n                        // on the fact that it's unlikely an update will come in between the navigation\n                        // request and requests for subsequent resources on that page.\n                        // First validate the current state.\n                        if (this.latestHash === null) {\n                            throw new Error(`Invariant violated (assignVersion): latestHash was null`);\n                        }\n                        // Pin this client ID to the current latest version, indefinitely.\n                        this.clientVersionMap.set(clientId, this.latestHash);\n                        yield this.sync();\n                        // Return the latest `AppVersion`.\n                        return this.lookupVersionByHash(this.latestHash, 'assignVersion');\n                    }\n                }\n                else {\n                    // No client ID was associated with the request. This must be a navigation request\n                    // for a new client. First check that the SW is accepting new clients.\n                    if (this.state !== DriverReadyState.NORMAL) {\n                        return null;\n                    }\n                    // Serve it with the latest version, and assume that the client will actually get\n                    // associated with that version on the next request.\n                    // First validate the current state.\n                    if (this.latestHash === null) {\n                        throw new Error(`Invariant violated (assignVersion): latestHash was null`);\n                    }\n                    // Return the latest `AppVersion`.\n                    return this.lookupVersionByHash(this.latestHash, 'assignVersion');\n                }\n            });\n        }\n        fetchLatestManifest(ignoreOfflineError = false) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const res = yield this.safeFetch(this.adapter.newRequest('ngsw.json?ngsw-cache-bust=' + Math.random()));\n                if (!res.ok) {\n                    if (res.status === 404) {\n                        yield this.deleteAllCaches();\n                        yield this.scope.registration.unregister();\n                    }\n                    else if ((res.status === 503 || res.status === 504) && ignoreOfflineError) {\n                        return null;\n                    }\n                    throw new Error(`Manifest fetch failed! (status: ${res.status})`);\n                }\n                this.lastUpdateCheck = this.adapter.time;\n                return res.json();\n            });\n        }\n        deleteAllCaches() {\n            return __awaiter(this, void 0, void 0, function* () {\n                yield (yield this.scope.caches.keys())\n                    // The Chrome debugger is not able to render the syntax properly when the\n                    // code contains backticks. This is a known issue in Chrome and they have an\n                    // open [issue](https://bugs.chromium.org/p/chromium/issues/detail?id=659515) for that.\n                    // As a work-around for the time being, we can use \\\\ ` at the end of the line.\n                    .filter(key => key.startsWith(`${this.adapter.cacheNamePrefix}:`)) // `\n                    .reduce((previous, key) => __awaiter(this, void 0, void 0, function* () {\n                    yield Promise.all([\n                        previous,\n                        this.scope.caches.delete(key),\n                    ]);\n                }), Promise.resolve());\n            });\n        }\n        /**\n         * Schedule the SW's attempt to reach a fully prefetched state for the given AppVersion\n         * when the SW is not busy and has connectivity. This returns a Promise which must be\n         * awaited, as under some conditions the AppVersion might be initialized immediately.\n         */\n        scheduleInitialization(appVersion) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const initialize = () => __awaiter(this, void 0, void 0, function* () {\n                    try {\n                        yield appVersion.initializeFully();\n                    }\n                    catch (err) {\n                        this.debugger.log(err, `initializeFully for ${appVersion.manifestHash}`);\n                        yield this.versionFailed(appVersion, err);\n                    }\n                });\n                // TODO: better logic for detecting localhost.\n                if (this.scope.registration.scope.indexOf('://localhost') > -1) {\n                    return initialize();\n                }\n                this.idle.schedule(`initialization(${appVersion.manifestHash})`, initialize);\n            });\n        }\n        versionFailed(appVersion, err) {\n            return __awaiter(this, void 0, void 0, function* () {\n                // This particular AppVersion is broken. First, find the manifest hash.\n                const broken = Array.from(this.versions.entries()).find(([hash, version]) => version === appVersion);\n                if (broken === undefined) {\n                    // This version is no longer in use anyway, so nobody cares.\n                    return;\n                }\n                const brokenHash = broken[0];\n                const affectedClients = Array.from(this.clientVersionMap.entries())\n                    .filter(([clientId, hash]) => hash === brokenHash)\n                    .map(([clientId]) => clientId);\n                // TODO: notify affected apps.\n                // The action taken depends on whether the broken manifest is the active (latest) or not.\n                // If so, the SW cannot accept new clients, but can continue to service old ones.\n                if (this.latestHash === brokenHash) {\n                    // The latest manifest is broken. This means that new clients are at the mercy of the\n                    // network, but caches continue to be valid for previous versions. This is\n                    // unfortunate but unavoidable.\n                    this.state = DriverReadyState.EXISTING_CLIENTS_ONLY;\n                    this.stateMessage = `Degraded due to: ${errorToString(err)}`;\n                    // Cancel the binding for the affected clients.\n                    affectedClients.forEach(clientId => this.clientVersionMap.delete(clientId));\n                }\n                else {\n                    // The latest version is viable, but this older version isn't. The only\n                    // possible remedy is to stop serving the older version and go to the network.\n                    // Put the affected clients on the latest version.\n                    affectedClients.forEach(clientId => this.clientVersionMap.set(clientId, this.latestHash));\n                }\n                try {\n                    yield this.sync();\n                }\n                catch (err2) {\n                    // We are already in a bad state. No need to make things worse.\n                    // Just log the error and move on.\n                    this.debugger.log(err2, `Driver.versionFailed(${err.message || err})`);\n                }\n            });\n        }\n        setupUpdate(manifest, hash) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const newVersion = new AppVersion(this.scope, this.adapter, this.db, this.idle, this.debugger, manifest, hash);\n                // Firstly, check if the manifest version is correct.\n                if (manifest.configVersion !== SUPPORTED_CONFIG_VERSION) {\n                    yield this.deleteAllCaches();\n                    yield this.scope.registration.unregister();\n                    throw new Error(`Invalid config version: expected ${SUPPORTED_CONFIG_VERSION}, got ${manifest.configVersion}.`);\n                }\n                // Cause the new version to become fully initialized. If this fails, then the\n                // version will not be available for use.\n                yield newVersion.initializeFully(this);\n                // Install this as an active version of the app.\n                this.versions.set(hash, newVersion);\n                // Future new clients will use this hash as the latest version.\n                this.latestHash = hash;\n                // If we are in `EXISTING_CLIENTS_ONLY` mode (meaning we didn't have a clean copy of the last\n                // latest version), we can now recover to `NORMAL` mode and start accepting new clients.\n                if (this.state === DriverReadyState.EXISTING_CLIENTS_ONLY) {\n                    this.state = DriverReadyState.NORMAL;\n                    this.stateMessage = '(nominal)';\n                }\n                yield this.sync();\n                yield this.notifyClientsAboutUpdate(newVersion);\n            });\n        }\n        checkForUpdate() {\n            return __awaiter(this, void 0, void 0, function* () {\n                let hash = '(unknown)';\n                try {\n                    const manifest = yield this.fetchLatestManifest(true);\n                    if (manifest === null) {\n                        // Client or server offline. Unable to check for updates at this time.\n                        // Continue to service clients (existing and new).\n                        this.debugger.log('Check for update aborted. (Client or server offline.)');\n                        return false;\n                    }\n                    hash = hashManifest(manifest);\n                    // Check whether this is really an update.\n                    if (this.versions.has(hash)) {\n                        return false;\n                    }\n                    yield this.setupUpdate(manifest, hash);\n                    return true;\n                }\n                catch (err) {\n                    this.debugger.log(err, `Error occurred while updating to manifest ${hash}`);\n                    this.state = DriverReadyState.EXISTING_CLIENTS_ONLY;\n                    this.stateMessage = `Degraded due to failed initialization: ${errorToString(err)}`;\n                    return false;\n                }\n            });\n        }\n        /**\n         * Synchronize the existing state to the underlying database.\n         */\n        sync() {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Open up the DB table.\n                const table = yield this.db.open('control');\n                // Construct a serializable map of hashes to manifests.\n                const manifests = {};\n                this.versions.forEach((version, hash) => {\n                    manifests[hash] = version.manifest;\n                });\n                // Construct a serializable map of client ids to version hashes.\n                const assignments = {};\n                this.clientVersionMap.forEach((hash, clientId) => {\n                    assignments[clientId] = hash;\n                });\n                // Record the latest entry. Since this is a sync which is necessarily happening after\n                // initialization, latestHash should always be valid.\n                const latest = {\n                    latest: this.latestHash,\n                };\n                // Synchronize all of these.\n                yield Promise.all([\n                    table.write('manifests', manifests),\n                    table.write('assignments', assignments),\n                    table.write('latest', latest),\n                ]);\n            });\n        }\n        cleanupCaches() {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Query for all currently active clients, and list the client ids. This may skip\n                // some clients in the browser back-forward cache, but not much can be done about\n                // that.\n                const activeClients = (yield this.scope.clients.matchAll()).map(client => client.id);\n                // A simple list of client ids that the SW has kept track of. Subtracting\n                // activeClients from this list will result in the set of client ids which are\n                // being tracked but are no longer used in the browser, and thus can be cleaned up.\n                const knownClients = Array.from(this.clientVersionMap.keys());\n                // Remove clients in the clientVersionMap that are no longer active.\n                knownClients.filter(id => activeClients.indexOf(id) === -1)\n                    .forEach(id => this.clientVersionMap.delete(id));\n                // Next, determine the set of versions which are still used. All others can be\n                // removed.\n                const usedVersions = new Set();\n                this.clientVersionMap.forEach((version, _) => usedVersions.add(version));\n                // Collect all obsolete versions by filtering out used versions from the set of all versions.\n                const obsoleteVersions = Array.from(this.versions.keys())\n                    .filter(version => !usedVersions.has(version) && version !== this.latestHash);\n                // Remove all the versions which are no longer used.\n                yield obsoleteVersions.reduce((previous, version) => __awaiter(this, void 0, void 0, function* () {\n                    // Wait for the other cleanup operations to complete.\n                    yield previous;\n                    // Try to get past the failure of one particular version to clean up (this\n                    // shouldn't happen, but handle it just in case).\n                    try {\n                        // Get ahold of the AppVersion for this particular hash.\n                        const instance = this.versions.get(version);\n                        // Delete it from the canonical map.\n                        this.versions.delete(version);\n                        // Clean it up.\n                        yield instance.cleanup();\n                    }\n                    catch (err) {\n                        // Oh well? Not much that can be done here. These caches will be removed when\n                        // the SW revs its format version, which happens from time to time.\n                        this.debugger.log(err, `cleanupCaches - cleanup ${version}`);\n                    }\n                }), Promise.resolve());\n                // Commit all the changes to the saved state.\n                yield this.sync();\n            });\n        }\n        /**\n         * Delete caches that were used by older versions of `@angular/service-worker` to avoid running\n         * into storage quota limitations imposed by browsers.\n         * (Since at this point the SW has claimed all clients, it is safe to remove those caches.)\n         */\n        cleanupOldSwCaches() {\n            return __awaiter(this, void 0, void 0, function* () {\n                const cacheNames = yield this.scope.caches.keys();\n                const oldSwCacheNames = cacheNames.filter(name => /^ngsw:(?!\\/)/.test(name));\n                yield Promise.all(oldSwCacheNames.map(name => this.scope.caches.delete(name)));\n            });\n        }\n        /**\n         * Determine if a specific version of the given resource is cached anywhere within the SW,\n         * and fetch it if so.\n         */\n        lookupResourceWithHash(url, hash) {\n            return Array\n                // Scan through the set of all cached versions, valid or otherwise. It's safe to do such\n                // lookups even for invalid versions as the cached version of a resource will have the\n                // same hash regardless.\n                .from(this.versions.values())\n                // Reduce the set of versions to a single potential result. At any point along the\n                // reduction, if a response has already been identified, then pass it through, as no\n                // future operation could change the response. If no response has been found yet, keep\n                // checking versions until one is or until all versions have been exhausted.\n                .reduce((prev, version) => __awaiter(this, void 0, void 0, function* () {\n                // First, check the previous result. If a non-null result has been found already, just\n                // return it.\n                if ((yield prev) !== null) {\n                    return prev;\n                }\n                // No result has been found yet. Try the next `AppVersion`.\n                return version.lookupResourceWithHash(url, hash);\n            }), Promise.resolve(null));\n        }\n        lookupResourceWithoutHash(url) {\n            return __awaiter(this, void 0, void 0, function* () {\n                yield this.initialized;\n                const version = this.versions.get(this.latestHash);\n                return version ? version.lookupResourceWithoutHash(url) : null;\n            });\n        }\n        previouslyCachedResources() {\n            return __awaiter(this, void 0, void 0, function* () {\n                yield this.initialized;\n                const version = this.versions.get(this.latestHash);\n                return version ? version.previouslyCachedResources() : [];\n            });\n        }\n        recentCacheStatus(url) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const version = this.versions.get(this.latestHash);\n                return version ? version.recentCacheStatus(url) : UpdateCacheStatus.NOT_CACHED;\n            });\n        }\n        mergeHashWithAppData(manifest, hash) {\n            return {\n                hash,\n                appData: manifest.appData,\n            };\n        }\n        notifyClientsAboutUnrecoverableState(appVersion, reason) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const broken = Array.from(this.versions.entries()).find(([hash, version]) => version === appVersion);\n                if (broken === undefined) {\n                    // This version is no longer in use anyway, so nobody cares.\n                    return;\n                }\n                const brokenHash = broken[0];\n                const affectedClients = Array.from(this.clientVersionMap.entries())\n                    .filter(([clientId, hash]) => hash === brokenHash)\n                    .map(([clientId]) => clientId);\n                affectedClients.forEach((clientId) => __awaiter(this, void 0, void 0, function* () {\n                    const client = yield this.scope.clients.get(clientId);\n                    client.postMessage({ type: 'UNRECOVERABLE_STATE', reason });\n                }));\n            });\n        }\n        notifyClientsAboutUpdate(next) {\n            return __awaiter(this, void 0, void 0, function* () {\n                yield this.initialized;\n                const clients = yield this.scope.clients.matchAll();\n                yield clients.reduce((previous, client) => __awaiter(this, void 0, void 0, function* () {\n                    yield previous;\n                    // Firstly, determine which version this client is on.\n                    const version = this.clientVersionMap.get(client.id);\n                    if (version === undefined) {\n                        // Unmapped client - assume it's the latest.\n                        return;\n                    }\n                    if (version === this.latestHash) {\n                        // Client is already on the latest version, no need for a notification.\n                        return;\n                    }\n                    const current = this.versions.get(version);\n                    // Send a notice.\n                    const notice = {\n                        type: 'UPDATE_AVAILABLE',\n                        current: this.mergeHashWithAppData(current.manifest, version),\n                        available: this.mergeHashWithAppData(next.manifest, this.latestHash),\n                    };\n                    client.postMessage(notice);\n                }), Promise.resolve());\n            });\n        }\n        broadcast(msg) {\n            return __awaiter(this, void 0, void 0, function* () {\n                const clients = yield this.scope.clients.matchAll();\n                clients.forEach(client => {\n                    client.postMessage(msg);\n                });\n            });\n        }\n        debugState() {\n            return __awaiter(this, void 0, void 0, function* () {\n                return {\n                    state: DriverReadyState[this.state],\n                    why: this.stateMessage,\n                    latestHash: this.latestHash,\n                    lastUpdateCheck: this.lastUpdateCheck,\n                };\n            });\n        }\n        debugVersions() {\n            return __awaiter(this, void 0, void 0, function* () {\n                // Build list of versions.\n                return Array.from(this.versions.keys()).map(hash => {\n                    const version = this.versions.get(hash);\n                    const clients = Array.from(this.clientVersionMap.entries())\n                        .filter(([clientId, version]) => version === hash)\n                        .map(([clientId, version]) => clientId);\n                    return {\n                        hash,\n                        manifest: version.manifest,\n                        clients,\n                        status: '',\n                    };\n                });\n            });\n        }\n        debugIdleState() {\n            return __awaiter(this, void 0, void 0, function* () {\n                return {\n                    queue: this.idle.taskDescriptions,\n                    lastTrigger: this.idle.lastTrigger,\n                    lastRun: this.idle.lastRun,\n                };\n            });\n        }\n        safeFetch(req) {\n            return __awaiter(this, void 0, void 0, function* () {\n                try {\n                    return yield this.scope.fetch(req);\n                }\n                catch (err) {\n                    this.debugger.log(err, `Driver.fetch(${req.url})`);\n                    return this.adapter.newResponse(null, {\n                        status: 504,\n                        statusText: 'Gateway Timeout',\n                    });\n                }\n            });\n        }\n    }\n\n    /**\n     * @license\n     * Copyright Google LLC All Rights Reserved.\n     *\n     * Use of this source code is governed by an MIT-style license that can be\n     * found in the LICENSE file at https://angular.io/license\n     */\n    const scope = self;\n    const adapter = new Adapter(scope.registration.scope);\n    const driver = new Driver(scope, adapter, new CacheDatabase(scope, adapter));\n\n}());\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/dist/SportsStore/ngsw.json",
    "content": "{\n  \"configVersion\": 1,\n  \"timestamp\": 1606394111257,\n  \"index\": \"/index.html\",\n  \"assetGroups\": [\n    {\n      \"name\": \"app\",\n      \"installMode\": \"prefetch\",\n      \"updateMode\": \"prefetch\",\n      \"cacheQueryOptions\": {\n        \"ignoreVary\": true\n      },\n      \"urls\": [\n        \"/4.31e080808fcb56f7ac65.js\",\n        \"/favicon.ico\",\n        \"/index.html\",\n        \"/main.51b6248b65201a3b0124.js\",\n        \"/manifest.webmanifest\",\n        \"/polyfills.bf99d438b005d57b2b31.js\",\n        \"/runtime.f31414a4bbd349807336.js\",\n        \"/styles.e64f6c6459bd207237f5.css\"\n      ],\n      \"patterns\": []\n    },\n    {\n      \"name\": \"assets\",\n      \"installMode\": \"lazy\",\n      \"updateMode\": \"prefetch\",\n      \"cacheQueryOptions\": {\n        \"ignoreVary\": true\n      },\n      \"urls\": [\n        \"/assets/icons/icon-128x128.png\",\n        \"/assets/icons/icon-144x144.png\",\n        \"/assets/icons/icon-152x152.png\",\n        \"/assets/icons/icon-192x192.png\",\n        \"/assets/icons/icon-384x384.png\",\n        \"/assets/icons/icon-512x512.png\",\n        \"/assets/icons/icon-72x72.png\",\n        \"/assets/icons/icon-96x96.png\",\n        \"/fa-brands-400.1437eef49e3db661f92c.ttf\",\n        \"/fa-brands-400.3825c40fd00d9bbb76b7.eot\",\n        \"/fa-brands-400.55faa7ef298ebafcc322.svg\",\n        \"/fa-brands-400.9a01a31d6767f82529dc.woff2\",\n        \"/fa-brands-400.e1c1a88e6228f902435e.woff\",\n        \"/fa-regular-400.5fab4ed5c3745c12c7e1.woff2\",\n        \"/fa-regular-400.814c2c571f030686e71c.ttf\",\n        \"/fa-regular-400.acdccc059cdf7b4063e9.woff\",\n        \"/fa-regular-400.eb99d5076e8ce45ccfa1.eot\",\n        \"/fa-regular-400.fa5f132deb163050a148.svg\",\n        \"/fa-solid-900.0f27e9b933cc50abbbba.woff2\",\n        \"/fa-solid-900.8618686494a5c8092120.ttf\",\n        \"/fa-solid-900.a0b3c6d0d774520787d8.eot\",\n        \"/fa-solid-900.a84653d4fe0072d182b6.svg\",\n        \"/fa-solid-900.afbdcbccd6861d9cdc38.woff\"\n      ],\n      \"patterns\": []\n    }\n  ],\n  \"dataGroups\": [\n    {\n      \"name\": \"api-product\",\n      \"patterns\": [\n        \"\\\\/api\\\\/products\"\n      ],\n      \"strategy\": \"performance\",\n      \"maxSize\": 100,\n      \"maxAge\": 432000000,\n      \"cacheQueryOptions\": {\n        \"ignoreVary\": true\n      },\n      \"version\": 1\n    }\n  ],\n  \"hashTable\": {\n    \"/4.31e080808fcb56f7ac65.js\": \"dca69536be8b3292a1413d4f4ac3d5f42004e6d0\",\n    \"/assets/icons/icon-128x128.png\": \"dae3b6ed49bdaf4327b92531d4b5b4a5d30c7532\",\n    \"/assets/icons/icon-144x144.png\": \"b0bd89982e08f9bd2b642928f5391915b74799a7\",\n    \"/assets/icons/icon-152x152.png\": \"7479a9477815dfd9668d60f8b3b2fba709b91310\",\n    \"/assets/icons/icon-192x192.png\": \"1abd80d431a237a853ce38147d8c63752f10933b\",\n    \"/assets/icons/icon-384x384.png\": \"329749cd6393768d3131ed6304c136b1ca05f2fd\",\n    \"/assets/icons/icon-512x512.png\": \"559d9c4318b45a1f2b10596bbb4c960fe521dbcc\",\n    \"/assets/icons/icon-72x72.png\": \"c457e56089a36952cd67156f9996bc4ce54a5ed9\",\n    \"/assets/icons/icon-96x96.png\": \"3914125a4b445bf111c5627875fc190f560daa41\",\n    \"/fa-brands-400.1437eef49e3db661f92c.ttf\": \"d9b2f287f46c950737c434e4153777968a73cecc\",\n    \"/fa-brands-400.3825c40fd00d9bbb76b7.eot\": \"e6feaa7a93ad42acb348529c9a684a0cf5cbf2ee\",\n    \"/fa-brands-400.55faa7ef298ebafcc322.svg\": \"8730dd14f32b5c64c935b7d0d583589703fc6dd7\",\n    \"/fa-brands-400.9a01a31d6767f82529dc.woff2\": \"3a175545f961094f3614f208f2166187b642355f\",\n    \"/fa-brands-400.e1c1a88e6228f902435e.woff\": \"3023db69a482111f7a17f29cee621a933cc5f4b9\",\n    \"/fa-regular-400.5fab4ed5c3745c12c7e1.woff2\": \"37b761c26708037d19664cebea70416852487087\",\n    \"/fa-regular-400.814c2c571f030686e71c.ttf\": \"bb89a35e00d0ba8a5382cc66809abe3d5cd3e932\",\n    \"/fa-regular-400.acdccc059cdf7b4063e9.woff\": \"dc2741902e041fc638697d76733b6252c68f1f99\",\n    \"/fa-regular-400.eb99d5076e8ce45ccfa1.eot\": \"af1d634a307219795957412a586abaf626f4829b\",\n    \"/fa-regular-400.fa5f132deb163050a148.svg\": \"53983550b89268aff9bbe00cbde3ef423c00716f\",\n    \"/fa-solid-900.0f27e9b933cc50abbbba.woff2\": \"af776f52d579da211590e0691d554b88a69dfe61\",\n    \"/fa-solid-900.8618686494a5c8092120.ttf\": \"481530e4da272092a90415b3403b4e533416e295\",\n    \"/fa-solid-900.a0b3c6d0d774520787d8.eot\": \"e13aaeda706af85d9382d7c39f5a3f79d612cd31\",\n    \"/fa-solid-900.a84653d4fe0072d182b6.svg\": \"cae06b2de99cc3f05225d54eb630352dc40dc6ef\",\n    \"/fa-solid-900.afbdcbccd6861d9cdc38.woff\": \"120dab7a8a93da819ab3025da6a9f3d3ccd65cce\",\n    \"/favicon.ico\": \"22f6a4a3bcaafafb0254e0f2fa4ceb89e505e8b2\",\n    \"/index.html\": \"bd0641bc5713bf53ce67d5b228f981c5943be0f5\",\n    \"/main.51b6248b65201a3b0124.js\": \"21f14fbc1f54d918ffb1be7c9eff539b33844011\",\n    \"/manifest.webmanifest\": \"328bbeae8cffe1ff408cfe4ef3104fb37fb4a126\",\n    \"/polyfills.bf99d438b005d57b2b31.js\": \"763cd3b34dfa4600ebb9d9588ec7116988e98920\",\n    \"/runtime.f31414a4bbd349807336.js\": \"c7f0b84c275f61cf76b9cb6f80a64bb0c61d52a7\",\n    \"/styles.e64f6c6459bd207237f5.css\": \"1017185550980471b59fcf89d9a2f85fc6bb2f26\"\n  },\n  \"navigationUrls\": [\n    {\n      \"positive\": true,\n      \"regex\": \"^\\\\/.*$\"\n    }\n  ],\n  \"navigationRequestStrategy\": \"performance\"\n}"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/dist/SportsStore/polyfills.bf99d438b005d57b2b31.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{1:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const i=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(i||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class a{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==C.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=a.current;for(;e.parent;)e=e.parent;return e}static get current(){return z.zone}static get currentTask(){return j}static __load_patch(t,r){if(C.hasOwnProperty(t)){if(i)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),C[t]=r(e,a,O),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){z={parent:z,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{z=z.parent}}runGuarded(e,t=null,n,o){z={parent:z,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{z=z.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,T),e.runCount++;const r=j;j=e,z={parent:z,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(T,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),z=z.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(b,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,b,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==b&&e._transitionTo(T,b),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,T,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}a.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new a(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");k(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,i){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=i,!o)throw new Error(\"callback is not defined\");this.callback=o;const a=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,a,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,b)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],_=!1;function k(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!_){for(_=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){O.onUnhandledError(e)}}}O.microtaskDrainDone(),_=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",b=\"scheduling\",T=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",C={},O={symbol:s,currentZoneFrame:()=>z,onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:k,showUncaughtError:()=>!a[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:N,patchMethod:()=>N,bindArguments:()=>[],patchThen:()=>N,patchMacroTask:()=>N,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>N,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>N,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>N,wrapWithCurrentZone:()=>N,filterProperties:()=>[],attachOriginToPatched:()=>N,_redefineProperty:()=>N,patchCallbacks:()=>N};let z={parent:null,zone:new a(null,null)},j=null,I=0;function N(){}o(\"Zone\",\"Zone\"),e.Zone=a}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,i=[],a=!0===e[s(\"DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION\")],c=s(\"Promise\"),l=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;i.length;){const t=i.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){h(e)}}};const u=s(\"unhandledPromiseRejectionHandler\");function h(e){n.onUnhandledError(e);try{const n=t[u];\"function\"==typeof n&&n.call(this,e)}catch(o){}}function p(e){return e&&e.then}function f(e){return e}function d(e){return O.reject(e)}const g=s(\"state\"),_=s(\"value\"),k=s(\"finally\"),m=s(\"parentPromiseValue\"),y=s(\"parentPromiseState\"),v=null,b=!0,T=!1;function E(e,t){return n=>{try{Z(e,t,n)}catch(o){Z(e,!1,o)}}}const w=s(\"currentTaskTrace\");function Z(e,o,s){const c=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(e[g]===v){let h=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(h=s&&s.then)}catch(u){return c(()=>{Z(e,!1,u)})(),e}if(o!==T&&s instanceof O&&s.hasOwnProperty(g)&&s.hasOwnProperty(_)&&s[g]!==v)D(s),Z(e,s[g],s[_]);else if(o!==T&&\"function\"==typeof h)try{h.call(s,c(E(e,o)),c(E(e,!1)))}catch(u){c(()=>{Z(e,!1,u)})()}else{e[g]=o;const c=e[_];if(e[_]=s,e[k]===k&&o===b&&(e[g]=e[y],e[_]=e[m]),o===T&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,w,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<c.length;)P(e,c[t++],c[t++],c[t++],c[t++]);if(0==c.length&&o==T){e[g]=0;let o=s;if(!a)try{throw new Error(\"Uncaught (in promise): \"+((l=s)&&l.toString===Object.prototype.toString?(l.constructor&&l.constructor.name||\"\")+\": \"+JSON.stringify(l):l?l.toString():Object.prototype.toString.call(l))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(u){o=u}o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,i.push(o),n.scheduleMicroTask()}}}var l;return e}const S=s(\"rejectionHandledHandler\");function D(e){if(0===e[g]){try{const n=t[S];n&&\"function\"==typeof n&&n.call(this,{rejection:e[_],promise:e})}catch(n){}e[g]=T;for(let t=0;t<i.length;t++)e===i[t].promise&&i.splice(t,1)}}function P(e,t,n,o,r){D(e);const s=e[g],i=s?\"function\"==typeof o?o:f:\"function\"==typeof r?r:d;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[_],r=!!n&&k===n[k];r&&(n[m]=o,n[y]=s);const a=t.run(i,void 0,r&&i!==d&&i!==f?[]:[o]);Z(n,!0,a)}catch(o){Z(n,!1,o)}},n)}const C=function(){};class O{static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return Z(new this(null),b,e)}static reject(e){return Z(new this(null),T,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let i of e)p(i)||(i=this.resolve(i)),i.then(r,s);return o}static all(e){return O.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof O?this:O).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,i=0;const a=[];for(let l of e){p(l)||(l=this.resolve(l));const e=i;try{l.then(o=>{a[e]=t?t.thenCallback(o):o,s--,0===s&&n(a)},r=>{t?(a[e]=t.errorCallback(r),s--,0===s&&n(a)):o(r)})}catch(c){o(c)}s++,i++}return s-=2,0===s&&n(a),r}constructor(e){const t=this;if(!(t instanceof O))throw new Error(\"Must be an instanceof Promise.\");t[g]=v,t[_]=[];try{e&&e(E(t,b),E(t,T))}catch(n){Z(t,!1,n)}}get[Symbol.toStringTag](){return\"Promise\"}get[Symbol.species](){return O}then(e,n){let o=this.constructor[Symbol.species];o&&\"function\"==typeof o||(o=this.constructor||O);const r=new o(C),s=t.current;return this[g]==v?this[_].push(s,r,e,n):P(this,s,r,e,n),r}catch(e){return this.then(null,e)}finally(e){let n=this.constructor[Symbol.species];n&&\"function\"==typeof n||(n=O);const o=new n(C);o[k]=k;const r=t.current;return this[g]==v?this[_].push(r,o,e,e):P(this,r,o,e,e),o}}O.resolve=O.resolve,O.reject=O.reject,O.race=O.race,O.all=O.all;const z=e[c]=e.Promise,j=t.__symbol__(\"ZoneAwarePromise\");let I=o(e,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return e[j]?e[j]:e[c]},I.set=function(t){t===O?e[j]=t:(e[c]=t,t.prototype[l]||R(t),n.setNativePromise(t))},r(e,\"Promise\",I)),e.Promise=O;const N=s(\"thenPatched\");function R(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[l]=r,e.prototype.then=function(e,t){return new O((e,t)=>{r.call(this,e,t)}).then(e,t)},e[N]=!0}if(n.patchThen=R,z){R(z);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(x=t,function(){let e=x.apply(this,arguments);if(e instanceof O)return e;let t=e.constructor;return t[N]||R(t),e}))}var x;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=i,O});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=\"addEventListener\",i=\"removeEventListener\",a=Zone.__symbol__(s),c=Zone.__symbol__(i),l=\"true\",u=\"false\",h=Zone.__symbol__(\"\");function p(e,t){return Zone.current.wrap(e,t)}function f(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const d=Zone.__symbol__,g=\"undefined\"!=typeof window,_=g?window:void 0,k=g&&_||\"object\"==typeof self&&self||global,m=[null];function y(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=p(e[n],t+\"_\"+n));return e}function v(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const b=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,T=!(\"nw\"in k)&&void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process),E=!T&&!b&&!(!g||!_.HTMLElement),w=void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process)&&!b&&!(!g||!_.HTMLElement),Z={},S=function(e){if(!(e=e||k.event))return;let t=Z[e.type];t||(t=Z[e.type]=d(\"ON_PROPERTY\"+e.type));const n=this||e.target||k,o=n[t];let r;if(E&&n===_&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function D(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const i=d(\"on\"+o+\"patched\");if(n.hasOwnProperty(i)&&n[i])return;delete s.writable,delete s.value;const a=s.get,c=s.set,l=o.substr(2);let u=Z[l];u||(u=Z[l]=d(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==k||(t=k),t&&(t[u]&&t.removeEventListener(l,S),c&&c.apply(t,m),\"function\"==typeof e?(t[u]=e,t.addEventListener(l,S,!1)):t[u]=null)},s.get=function(){let e=this;if(e||n!==k||(e=k),!e)return null;const t=e[u];if(t)return t;if(a){let t=a&&a.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[i]=!0}function P(e,t,n){if(t)for(let o=0;o<t.length;o++)D(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)D(e,t[o],n)}}const C=d(\"originalInstance\");function O(e){const n=k[e];if(!n)return;k[d(e)]=n,k[e]=function(){const t=y(arguments,e);switch(t.length){case 0:this[C]=new n;break;case 1:this[C]=new n(t[0]);break;case 2:this[C]=new n(t[0],t[1]);break;case 3:this[C]=new n(t[0],t[1],t[2]);break;case 4:this[C]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},I(k[e],n);const o=new n(function(){});let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?k[e].prototype[n]=function(){return this[C][n].apply(this[C],arguments)}:t(k[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[C][n]=p(t,e+\".\"+n),I(this[C][n],t)):this[C][n]=t},get:function(){return this[C][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(k[e][r]=n[r])}function z(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const i=d(o);let a=null;if(s&&!(a=s[i])&&(a=s[i]=s[o],v(s&&e(s,o)))){const e=r(a,i,o);s[o]=function(){return e(this,arguments)},I(s[o],a)}return a}function j(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=z(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?f(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function I(e,t){e[d(\"OriginalDelegate\")]=t}let N=!1,R=!1;function x(){try{const e=_.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function M(){if(N)return R;N=!0;try{const e=_.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(R=!0)}catch(e){}return R}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=d(\"OriginalDelegate\"),o=d(\"Promise\"),r=d(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const i=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":i.call(this)}});let L=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){L=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(he){L=!1}const A={useG:!0},H={},F={},G=new RegExp(\"^\"+h+\"(\\\\w+)(true|false)$\"),B=d(\"propagationStopped\");function q(e,t){const n=(t?t(e):e)+u,o=(t?t(e):e)+l,r=h+n,s=h+o;H[e]={},H[e].false=r,H[e].true=s}function W(e,t,o){const r=o&&o.add||s,a=o&&o.rm||i,c=o&&o.listeners||\"eventListeners\",p=o&&o.rmAll||\"removeAllListeners\",f=d(r),g=\".\"+r+\":\",_=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[a].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},k=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].false];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}},m=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].true];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}};function y(t,o){if(!t)return!1;let s=!0;o&&void 0!==o.useG&&(s=o.useG);const i=o&&o.vh;let _=!0;o&&void 0!==o.chkDup&&(_=o.chkDup);let y=!1;o&&void 0!==o.rt&&(y=o.rt);let v=t;for(;v&&!v.hasOwnProperty(r);)v=n(v);if(!v&&t[r]&&(v=t),!v)return!1;if(v[f])return!1;const b=o&&o.eventNameToString,E={},w=v[f]=v[r],Z=v[d(a)]=v[a],S=v[d(c)]=v[c],D=v[d(p)]=v[p];let P;function C(e,t){return!L&&\"object\"==typeof e&&e?!!e.capture:L&&t?\"boolean\"==typeof e?{capture:e,passive:!0}:e?\"object\"==typeof e&&!1!==e.passive?Object.assign(Object.assign({},e),{passive:!0}):e:{passive:!0}:e}o&&o.prepend&&(P=v[d(o.prepend)]=v[o.prepend]);const O=s?function(e){if(!E.isExisting)return w.call(E.target,E.eventName,E.capture?m:k,E.options)}:function(e){return w.call(E.target,E.eventName,e.invoke,E.options)},z=s?function(e){if(!e.isRemoved){const t=H[e.eventName];let n;t&&(n=t[e.capture?l:u]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return Z.call(e.target,e.eventName,e.capture?m:k,e.options)}:function(e){return Z.call(e.target,e.eventName,e.invoke,e.options)},j=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},N=Zone[d(\"BLACK_LISTED_EVENTS\")],R=e[d(\"PASSIVE_EVENTS\")],x=function(t,n,r,a,c=!1,h=!1){return function(){const p=this||e;let f=arguments[0];o&&o.transferEventName&&(f=o.transferEventName(f));let d=arguments[1];if(!d)return t.apply(this,arguments);if(T&&\"uncaughtException\"===f)return t.apply(this,arguments);let g=!1;if(\"function\"!=typeof d){if(!d.handleEvent)return t.apply(this,arguments);g=!0}if(i&&!i(t,d,p,arguments))return;const k=L&&!!R&&-1!==R.indexOf(f),m=C(arguments[2],k);if(N)for(let e=0;e<N.length;e++)if(f===N[e])return k?t.call(p,f,d,m):t.apply(this,arguments);const y=!!m&&(\"boolean\"==typeof m||m.capture),v=!(!m||\"object\"!=typeof m)&&m.once,w=Zone.current;let Z=H[f];Z||(q(f,b),Z=H[f]);const S=Z[y?l:u];let D,P=p[S],O=!1;if(P){if(O=!0,_)for(let e=0;e<P.length;e++)if(j(P[e],d))return}else P=p[S]=[];const z=p.constructor.name,I=F[z];I&&(D=I[f]),D||(D=z+n+(b?b(f):f)),E.options=m,v&&(E.options.once=!1),E.target=p,E.capture=y,E.eventName=f,E.isExisting=O;const x=s?A:void 0;x&&(x.taskData=E);const M=w.scheduleEventTask(D,d,x,r,a);return E.target=null,x&&(x.taskData=null),v&&(m.once=!0),(L||\"boolean\"!=typeof M.options)&&(M.options=m),M.target=p,M.capture=y,M.eventName=f,g&&(M.originalDelegate=d),h?P.unshift(M):P.push(M),c?p:void 0}};return v[r]=x(w,g,O,z,y),P&&(v.prependListener=x(P,\".prependListener:\",function(e){return P.call(E.target,E.eventName,e.invoke,E.options)},z,y,!0)),v[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2],s=!!r&&(\"boolean\"==typeof r||r.capture),a=arguments[1];if(!a)return Z.apply(this,arguments);if(i&&!i(Z,a,t,arguments))return;const c=H[n];let p;c&&(p=c[s?l:u]);const f=p&&t[p];if(f)for(let e=0;e<f.length;e++){const o=f[e];if(j(o,a))return f.splice(e,1),o.isRemoved=!0,0===f.length&&(o.allRemoved=!0,t[p]=null,\"string\"==typeof n)&&(t[h+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),y?t:void 0}return Z.apply(this,arguments)},v[c]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=U(t,b?b(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},v[p]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=H[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=G.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[p].call(this,o)}this[p].call(this,\"removeListener\")}if(y)return this},I(v[r],w),I(v[a],Z),D&&I(v[p],D),S&&I(v[c],S),!0}let v=[];for(let n=0;n<t.length;n++)v[n]=y(t[n],o);return v}function U(e,t){if(!t){const n=[];for(let o in e){const r=G.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}let n=H[t];n||(q(t),n=H[t]);const o=e[n.false],r=e[n.true];return o?r?o.concat(r):o.slice():r?r.slice():[]}function V(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[B]=!0,e&&e.apply(t,n)})}function $(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const i=t[s]=t[o];t[o]=function(s,a,c){return a&&a.prototype&&r.forEach(function(t){const r=`${n}.${o}::`+t,s=a.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(a.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}),i.call(t,s,a,c)},e.attachOriginToPatched(t[o],i)}const X=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplayconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],J=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],Y=[\"load\"],K=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],Q=[\"bounce\",\"finish\",\"start\"],ee=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],te=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],ne=[\"close\",\"error\",\"open\",\"message\"],oe=[\"error\",\"message\"],re=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],X,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function se(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function ie(e,t,n,o){e&&P(e,se(e,t,n),o)}function ae(e,t){if(T&&!w)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(E){const e=window,t=x?[{target:e,ignoreProperties:[\"error\"]}]:[];ie(e,re.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),ie(Document.prototype,re,r),void 0!==e.SVGElement&&ie(e.SVGElement.prototype,re,r),ie(Element.prototype,re,r),ie(HTMLElement.prototype,re,r),ie(HTMLMediaElement.prototype,J,r),ie(HTMLFrameSetElement.prototype,X.concat(K),r),ie(HTMLBodyElement.prototype,X.concat(K),r),ie(HTMLFrameElement.prototype,Y,r),ie(HTMLIFrameElement.prototype,Y,r);const o=e.HTMLMarqueeElement;o&&ie(o.prototype,Q,r);const s=e.Worker;s&&ie(s.prototype,oe,r)}const s=t.XMLHttpRequest;s&&ie(s.prototype,ee,r);const i=t.XMLHttpRequestEventTarget;i&&ie(i&&i.prototype,ee,r),\"undefined\"!=typeof IDBIndex&&(ie(IDBIndex.prototype,te,r),ie(IDBRequest.prototype,te,r),ie(IDBOpenDBRequest.prototype,te,r),ie(IDBDatabase.prototype,te,r),ie(IDBTransaction.prototype,te,r),ie(IDBCursor.prototype,te,r)),o&&ie(WebSocket.prototype,ne,r)}Zone.__load_patch(\"util\",(n,a,c)=>{c.patchOnProperties=P,c.patchMethod=z,c.bindArguments=y,c.patchMacroTask=j;const f=a.__symbol__(\"BLACK_LISTED_EVENTS\"),d=a.__symbol__(\"UNPATCHED_EVENTS\");n[d]&&(n[f]=n[d]),n[f]&&(a[f]=a[d]=n[f]),c.patchEventPrototype=V,c.patchEventTarget=W,c.isIEOrEdge=M,c.ObjectDefineProperty=t,c.ObjectGetOwnPropertyDescriptor=e,c.ObjectCreate=o,c.ArraySlice=r,c.patchClass=O,c.wrapWithCurrentZone=p,c.filterProperties=se,c.attachOriginToPatched=I,c._redefineProperty=Object.defineProperty,c.patchCallbacks=$,c.getGlobalObjects=()=>({globalSources:F,zoneSymbolEventNames:H,eventNames:re,isBrowser:E,isMix:w,isNode:T,TRUE_STR:l,FALSE_STR:u,ZONE_SYMBOL_PREFIX:h,ADD_EVENT_LISTENER_STR:s,REMOVE_EVENT_LISTENER_STR:i})});const ce=d(\"zoneTask\");function le(e,t,n,o){let r=null,s=null;n+=o;const i={};function a(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete i[n.handleId]:n.handleId&&(n.handleId[ce]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=z(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=f(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},a,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?i[n]=e:n&&(n[ce]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=z(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=i[r]:(s=r&&r[ce],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete i[r]:r&&(r[ce]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function ue(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:i}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=i+(e+s),a=i+(e+r);o[e]={},o[e][s]=t,o[e][r]=a}const a=e.EventTarget;return a&&a.prototype?(t.patchEventTarget(e,[a&&a.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{const t=\"set\",n=\"clear\";le(e,t,n,\"Timeout\"),le(e,t,n,\"Interval\"),le(e,t,n,\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{le(e,\"request\",\"cancel\",\"AnimationFrame\"),le(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),le(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)z(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{(function(e,t){t.patchEventPrototype(e,t)})(e,n),ue(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),O(\"MutationObserver\"),O(\"WebKitMutationObserver\"),O(\"IntersectionObserver\"),O(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ae(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const u=e.XMLHttpRequest;if(!u)return;const h=u.prototype;let p=h[a],g=h[c];if(!p){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;p=e[a],g=e[c]}}const _=\"readystatechange\",k=\"scheduled\";function m(e){const o=e.data,i=o.target;i[s]=!1,i[l]=!1;const u=i[r];p||(p=i[a],g=i[c]),u&&g.call(i,_,u);const h=i[r]=()=>{if(i.readyState===i.DONE)if(!o.aborted&&i[s]&&e.state===k){const n=i[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=i[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||e.state!==k||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==i[s]||(i[l]=!0)};return p.call(i,_,h),i[n]||(i[n]=e),w.apply(i,o.args),i[s]=!0,e}function y(){}function v(e){const t=e.data;return t.aborted=!0,Z.apply(t.target,t.args)}const b=z(h,\"open\",()=>function(e,t){return e[o]=0==t[2],e[i]=t[1],b.apply(e,t)}),T=d(\"fetchTaskAborting\"),E=d(\"fetchTaskScheduling\"),w=z(h,\"send\",()=>function(e,n){if(!0===t.current[E])return w.apply(e,n);if(e[o])return w.apply(e,n);{const t={target:e,url:e[i],isPeriodic:!1,args:n,aborted:!1},o=f(\"XMLHttpRequest.send\",y,t,m,v);e&&!0===e[l]&&!t.aborted&&o.state===k&&o.invoke()}}),Z=z(h,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[T])return Z.apply(e,o)})}(e);const n=d(\"xhrTask\"),o=d(\"xhrSync\"),r=d(\"xhrListener\"),s=d(\"xhrScheduled\"),i=d(\"xhrURL\"),l=d(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],i=t[s];if(i){if(!v(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,y(arguments,o+\".\"+s))};return I(t,e),t})(i)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){U(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[d(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[d(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[1,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/dist/SportsStore/runtime.f31414a4bbd349807336.js",
    "content": "!function(e){function r(r){for(var n,i,a=r[0],c=r[1],l=r[2],p=0,s=[];p<a.length;p++)i=a[p],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(r);s.length;)s.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++)0!==o[t[a]]&&(n=!1);n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={0:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise(function(r,n){t=o[e]=[r,n]});r.push(t[2]=n);var u,a=document.createElement(\"script\");a.charset=\"utf-8\",a.timeout=120,i.nc&&a.setAttribute(\"nonce\",i.nc),a.src=function(e){return i.p+\"\"+({}[e]||e)+\".\"+{4:\"31e080808fcb56f7ac65\"}[e]+\".js\"}(e);var c=new Error;u=function(r){a.onerror=a.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&(\"load\"===r.type?\"missing\":r.type),u=r&&r.target&&r.target.src;c.message=\"Loading chunk \"+e+\" failed.\\n(\"+n+\": \"+u+\")\",c.name=\"ChunkLoadError\",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout(function(){u({type:\"timeout\",target:a})},12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(r)},i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)i.d(t,n,(function(r){return e[r]}).bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,\"a\",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p=\"\",i.oe=function(e){throw console.error(e),e};var a=window.webpackJsonp=window.webpackJsonp||[],c=a.push.bind(a);a.push=r,a=a.slice();for(var l=0;l<a.length;l++)r(a[l]);var f=c;t()}([]);"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/dist/SportsStore/safety-worker.js",
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// tslint:disable:no-console\n\nself.addEventListener('install', event => {\n  self.skipWaiting();\n});\n\nself.addEventListener('activate', event => {\n  event.waitUntil(self.clients.claim());\n  self.registration.unregister().then(() => {\n    console.log('NGSW Safety Worker - unregistered old service worker');\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/dist/SportsStore/styles.e64f6c6459bd207237f5.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:initial}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:initial;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:initial;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:initial;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:initial}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:initial}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:initial}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:initial}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:initial}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:initial}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:initial}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:initial}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:initial;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:initial}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:initial;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:initial;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:initial;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:initial;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:initial;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:initial;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:initial;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:initial;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:initial!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:initial!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{white-space:nowrap}.sr-only-focusable:active,.sr-only-focusable:focus{white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:initial;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}\n/*!\n * Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s linear infinite}.fa-pulse{animation:fa-spin 1s steps(8) infinite}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:\"\\f26e\"}.fa-accessible-icon:before{content:\"\\f368\"}.fa-accusoft:before{content:\"\\f369\"}.fa-acquisitions-incorporated:before{content:\"\\f6af\"}.fa-ad:before{content:\"\\f641\"}.fa-address-book:before{content:\"\\f2b9\"}.fa-address-card:before{content:\"\\f2bb\"}.fa-adjust:before{content:\"\\f042\"}.fa-adn:before{content:\"\\f170\"}.fa-adobe:before{content:\"\\f778\"}.fa-adversal:before{content:\"\\f36a\"}.fa-affiliatetheme:before{content:\"\\f36b\"}.fa-air-freshener:before{content:\"\\f5d0\"}.fa-airbnb:before{content:\"\\f834\"}.fa-algolia:before{content:\"\\f36c\"}.fa-align-center:before{content:\"\\f037\"}.fa-align-justify:before{content:\"\\f039\"}.fa-align-left:before{content:\"\\f036\"}.fa-align-right:before{content:\"\\f038\"}.fa-alipay:before{content:\"\\f642\"}.fa-allergies:before{content:\"\\f461\"}.fa-amazon:before{content:\"\\f270\"}.fa-amazon-pay:before{content:\"\\f42c\"}.fa-ambulance:before{content:\"\\f0f9\"}.fa-american-sign-language-interpreting:before{content:\"\\f2a3\"}.fa-amilia:before{content:\"\\f36d\"}.fa-anchor:before{content:\"\\f13d\"}.fa-android:before{content:\"\\f17b\"}.fa-angellist:before{content:\"\\f209\"}.fa-angle-double-down:before{content:\"\\f103\"}.fa-angle-double-left:before{content:\"\\f100\"}.fa-angle-double-right:before{content:\"\\f101\"}.fa-angle-double-up:before{content:\"\\f102\"}.fa-angle-down:before{content:\"\\f107\"}.fa-angle-left:before{content:\"\\f104\"}.fa-angle-right:before{content:\"\\f105\"}.fa-angle-up:before{content:\"\\f106\"}.fa-angry:before{content:\"\\f556\"}.fa-angrycreative:before{content:\"\\f36e\"}.fa-angular:before{content:\"\\f420\"}.fa-ankh:before{content:\"\\f644\"}.fa-app-store:before{content:\"\\f36f\"}.fa-app-store-ios:before{content:\"\\f370\"}.fa-apper:before{content:\"\\f371\"}.fa-apple:before{content:\"\\f179\"}.fa-apple-alt:before{content:\"\\f5d1\"}.fa-apple-pay:before{content:\"\\f415\"}.fa-archive:before{content:\"\\f187\"}.fa-archway:before{content:\"\\f557\"}.fa-arrow-alt-circle-down:before{content:\"\\f358\"}.fa-arrow-alt-circle-left:before{content:\"\\f359\"}.fa-arrow-alt-circle-right:before{content:\"\\f35a\"}.fa-arrow-alt-circle-up:before{content:\"\\f35b\"}.fa-arrow-circle-down:before{content:\"\\f0ab\"}.fa-arrow-circle-left:before{content:\"\\f0a8\"}.fa-arrow-circle-right:before{content:\"\\f0a9\"}.fa-arrow-circle-up:before{content:\"\\f0aa\"}.fa-arrow-down:before{content:\"\\f063\"}.fa-arrow-left:before{content:\"\\f060\"}.fa-arrow-right:before{content:\"\\f061\"}.fa-arrow-up:before{content:\"\\f062\"}.fa-arrows-alt:before{content:\"\\f0b2\"}.fa-arrows-alt-h:before{content:\"\\f337\"}.fa-arrows-alt-v:before{content:\"\\f338\"}.fa-artstation:before{content:\"\\f77a\"}.fa-assistive-listening-systems:before{content:\"\\f2a2\"}.fa-asterisk:before{content:\"\\f069\"}.fa-asymmetrik:before{content:\"\\f372\"}.fa-at:before{content:\"\\f1fa\"}.fa-atlas:before{content:\"\\f558\"}.fa-atlassian:before{content:\"\\f77b\"}.fa-atom:before{content:\"\\f5d2\"}.fa-audible:before{content:\"\\f373\"}.fa-audio-description:before{content:\"\\f29e\"}.fa-autoprefixer:before{content:\"\\f41c\"}.fa-avianex:before{content:\"\\f374\"}.fa-aviato:before{content:\"\\f421\"}.fa-award:before{content:\"\\f559\"}.fa-aws:before{content:\"\\f375\"}.fa-baby:before{content:\"\\f77c\"}.fa-baby-carriage:before{content:\"\\f77d\"}.fa-backspace:before{content:\"\\f55a\"}.fa-backward:before{content:\"\\f04a\"}.fa-bacon:before{content:\"\\f7e5\"}.fa-bahai:before{content:\"\\f666\"}.fa-balance-scale:before{content:\"\\f24e\"}.fa-balance-scale-left:before{content:\"\\f515\"}.fa-balance-scale-right:before{content:\"\\f516\"}.fa-ban:before{content:\"\\f05e\"}.fa-band-aid:before{content:\"\\f462\"}.fa-bandcamp:before{content:\"\\f2d5\"}.fa-barcode:before{content:\"\\f02a\"}.fa-bars:before{content:\"\\f0c9\"}.fa-baseball-ball:before{content:\"\\f433\"}.fa-basketball-ball:before{content:\"\\f434\"}.fa-bath:before{content:\"\\f2cd\"}.fa-battery-empty:before{content:\"\\f244\"}.fa-battery-full:before{content:\"\\f240\"}.fa-battery-half:before{content:\"\\f242\"}.fa-battery-quarter:before{content:\"\\f243\"}.fa-battery-three-quarters:before{content:\"\\f241\"}.fa-battle-net:before{content:\"\\f835\"}.fa-bed:before{content:\"\\f236\"}.fa-beer:before{content:\"\\f0fc\"}.fa-behance:before{content:\"\\f1b4\"}.fa-behance-square:before{content:\"\\f1b5\"}.fa-bell:before{content:\"\\f0f3\"}.fa-bell-slash:before{content:\"\\f1f6\"}.fa-bezier-curve:before{content:\"\\f55b\"}.fa-bible:before{content:\"\\f647\"}.fa-bicycle:before{content:\"\\f206\"}.fa-biking:before{content:\"\\f84a\"}.fa-bimobject:before{content:\"\\f378\"}.fa-binoculars:before{content:\"\\f1e5\"}.fa-biohazard:before{content:\"\\f780\"}.fa-birthday-cake:before{content:\"\\f1fd\"}.fa-bitbucket:before{content:\"\\f171\"}.fa-bitcoin:before{content:\"\\f379\"}.fa-bity:before{content:\"\\f37a\"}.fa-black-tie:before{content:\"\\f27e\"}.fa-blackberry:before{content:\"\\f37b\"}.fa-blender:before{content:\"\\f517\"}.fa-blender-phone:before{content:\"\\f6b6\"}.fa-blind:before{content:\"\\f29d\"}.fa-blog:before{content:\"\\f781\"}.fa-blogger:before{content:\"\\f37c\"}.fa-blogger-b:before{content:\"\\f37d\"}.fa-bluetooth:before{content:\"\\f293\"}.fa-bluetooth-b:before{content:\"\\f294\"}.fa-bold:before{content:\"\\f032\"}.fa-bolt:before{content:\"\\f0e7\"}.fa-bomb:before{content:\"\\f1e2\"}.fa-bone:before{content:\"\\f5d7\"}.fa-bong:before{content:\"\\f55c\"}.fa-book:before{content:\"\\f02d\"}.fa-book-dead:before{content:\"\\f6b7\"}.fa-book-medical:before{content:\"\\f7e6\"}.fa-book-open:before{content:\"\\f518\"}.fa-book-reader:before{content:\"\\f5da\"}.fa-bookmark:before{content:\"\\f02e\"}.fa-bootstrap:before{content:\"\\f836\"}.fa-border-all:before{content:\"\\f84c\"}.fa-border-none:before{content:\"\\f850\"}.fa-border-style:before{content:\"\\f853\"}.fa-bowling-ball:before{content:\"\\f436\"}.fa-box:before{content:\"\\f466\"}.fa-box-open:before{content:\"\\f49e\"}.fa-boxes:before{content:\"\\f468\"}.fa-braille:before{content:\"\\f2a1\"}.fa-brain:before{content:\"\\f5dc\"}.fa-bread-slice:before{content:\"\\f7ec\"}.fa-briefcase:before{content:\"\\f0b1\"}.fa-briefcase-medical:before{content:\"\\f469\"}.fa-broadcast-tower:before{content:\"\\f519\"}.fa-broom:before{content:\"\\f51a\"}.fa-brush:before{content:\"\\f55d\"}.fa-btc:before{content:\"\\f15a\"}.fa-buffer:before{content:\"\\f837\"}.fa-bug:before{content:\"\\f188\"}.fa-building:before{content:\"\\f1ad\"}.fa-bullhorn:before{content:\"\\f0a1\"}.fa-bullseye:before{content:\"\\f140\"}.fa-burn:before{content:\"\\f46a\"}.fa-buromobelexperte:before{content:\"\\f37f\"}.fa-bus:before{content:\"\\f207\"}.fa-bus-alt:before{content:\"\\f55e\"}.fa-business-time:before{content:\"\\f64a\"}.fa-buy-n-large:before{content:\"\\f8a6\"}.fa-buysellads:before{content:\"\\f20d\"}.fa-calculator:before{content:\"\\f1ec\"}.fa-calendar:before{content:\"\\f133\"}.fa-calendar-alt:before{content:\"\\f073\"}.fa-calendar-check:before{content:\"\\f274\"}.fa-calendar-day:before{content:\"\\f783\"}.fa-calendar-minus:before{content:\"\\f272\"}.fa-calendar-plus:before{content:\"\\f271\"}.fa-calendar-times:before{content:\"\\f273\"}.fa-calendar-week:before{content:\"\\f784\"}.fa-camera:before{content:\"\\f030\"}.fa-camera-retro:before{content:\"\\f083\"}.fa-campground:before{content:\"\\f6bb\"}.fa-canadian-maple-leaf:before{content:\"\\f785\"}.fa-candy-cane:before{content:\"\\f786\"}.fa-cannabis:before{content:\"\\f55f\"}.fa-capsules:before{content:\"\\f46b\"}.fa-car:before{content:\"\\f1b9\"}.fa-car-alt:before{content:\"\\f5de\"}.fa-car-battery:before{content:\"\\f5df\"}.fa-car-crash:before{content:\"\\f5e1\"}.fa-car-side:before{content:\"\\f5e4\"}.fa-caravan:before{content:\"\\f8ff\"}.fa-caret-down:before{content:\"\\f0d7\"}.fa-caret-left:before{content:\"\\f0d9\"}.fa-caret-right:before{content:\"\\f0da\"}.fa-caret-square-down:before{content:\"\\f150\"}.fa-caret-square-left:before{content:\"\\f191\"}.fa-caret-square-right:before{content:\"\\f152\"}.fa-caret-square-up:before{content:\"\\f151\"}.fa-caret-up:before{content:\"\\f0d8\"}.fa-carrot:before{content:\"\\f787\"}.fa-cart-arrow-down:before{content:\"\\f218\"}.fa-cart-plus:before{content:\"\\f217\"}.fa-cash-register:before{content:\"\\f788\"}.fa-cat:before{content:\"\\f6be\"}.fa-cc-amazon-pay:before{content:\"\\f42d\"}.fa-cc-amex:before{content:\"\\f1f3\"}.fa-cc-apple-pay:before{content:\"\\f416\"}.fa-cc-diners-club:before{content:\"\\f24c\"}.fa-cc-discover:before{content:\"\\f1f2\"}.fa-cc-jcb:before{content:\"\\f24b\"}.fa-cc-mastercard:before{content:\"\\f1f1\"}.fa-cc-paypal:before{content:\"\\f1f4\"}.fa-cc-stripe:before{content:\"\\f1f5\"}.fa-cc-visa:before{content:\"\\f1f0\"}.fa-centercode:before{content:\"\\f380\"}.fa-centos:before{content:\"\\f789\"}.fa-certificate:before{content:\"\\f0a3\"}.fa-chair:before{content:\"\\f6c0\"}.fa-chalkboard:before{content:\"\\f51b\"}.fa-chalkboard-teacher:before{content:\"\\f51c\"}.fa-charging-station:before{content:\"\\f5e7\"}.fa-chart-area:before{content:\"\\f1fe\"}.fa-chart-bar:before{content:\"\\f080\"}.fa-chart-line:before{content:\"\\f201\"}.fa-chart-pie:before{content:\"\\f200\"}.fa-check:before{content:\"\\f00c\"}.fa-check-circle:before{content:\"\\f058\"}.fa-check-double:before{content:\"\\f560\"}.fa-check-square:before{content:\"\\f14a\"}.fa-cheese:before{content:\"\\f7ef\"}.fa-chess:before{content:\"\\f439\"}.fa-chess-bishop:before{content:\"\\f43a\"}.fa-chess-board:before{content:\"\\f43c\"}.fa-chess-king:before{content:\"\\f43f\"}.fa-chess-knight:before{content:\"\\f441\"}.fa-chess-pawn:before{content:\"\\f443\"}.fa-chess-queen:before{content:\"\\f445\"}.fa-chess-rook:before{content:\"\\f447\"}.fa-chevron-circle-down:before{content:\"\\f13a\"}.fa-chevron-circle-left:before{content:\"\\f137\"}.fa-chevron-circle-right:before{content:\"\\f138\"}.fa-chevron-circle-up:before{content:\"\\f139\"}.fa-chevron-down:before{content:\"\\f078\"}.fa-chevron-left:before{content:\"\\f053\"}.fa-chevron-right:before{content:\"\\f054\"}.fa-chevron-up:before{content:\"\\f077\"}.fa-child:before{content:\"\\f1ae\"}.fa-chrome:before{content:\"\\f268\"}.fa-chromecast:before{content:\"\\f838\"}.fa-church:before{content:\"\\f51d\"}.fa-circle:before{content:\"\\f111\"}.fa-circle-notch:before{content:\"\\f1ce\"}.fa-city:before{content:\"\\f64f\"}.fa-clinic-medical:before{content:\"\\f7f2\"}.fa-clipboard:before{content:\"\\f328\"}.fa-clipboard-check:before{content:\"\\f46c\"}.fa-clipboard-list:before{content:\"\\f46d\"}.fa-clock:before{content:\"\\f017\"}.fa-clone:before{content:\"\\f24d\"}.fa-closed-captioning:before{content:\"\\f20a\"}.fa-cloud:before{content:\"\\f0c2\"}.fa-cloud-download-alt:before{content:\"\\f381\"}.fa-cloud-meatball:before{content:\"\\f73b\"}.fa-cloud-moon:before{content:\"\\f6c3\"}.fa-cloud-moon-rain:before{content:\"\\f73c\"}.fa-cloud-rain:before{content:\"\\f73d\"}.fa-cloud-showers-heavy:before{content:\"\\f740\"}.fa-cloud-sun:before{content:\"\\f6c4\"}.fa-cloud-sun-rain:before{content:\"\\f743\"}.fa-cloud-upload-alt:before{content:\"\\f382\"}.fa-cloudscale:before{content:\"\\f383\"}.fa-cloudsmith:before{content:\"\\f384\"}.fa-cloudversify:before{content:\"\\f385\"}.fa-cocktail:before{content:\"\\f561\"}.fa-code:before{content:\"\\f121\"}.fa-code-branch:before{content:\"\\f126\"}.fa-codepen:before{content:\"\\f1cb\"}.fa-codiepie:before{content:\"\\f284\"}.fa-coffee:before{content:\"\\f0f4\"}.fa-cog:before{content:\"\\f013\"}.fa-cogs:before{content:\"\\f085\"}.fa-coins:before{content:\"\\f51e\"}.fa-columns:before{content:\"\\f0db\"}.fa-comment:before{content:\"\\f075\"}.fa-comment-alt:before{content:\"\\f27a\"}.fa-comment-dollar:before{content:\"\\f651\"}.fa-comment-dots:before{content:\"\\f4ad\"}.fa-comment-medical:before{content:\"\\f7f5\"}.fa-comment-slash:before{content:\"\\f4b3\"}.fa-comments:before{content:\"\\f086\"}.fa-comments-dollar:before{content:\"\\f653\"}.fa-compact-disc:before{content:\"\\f51f\"}.fa-compass:before{content:\"\\f14e\"}.fa-compress:before{content:\"\\f066\"}.fa-compress-alt:before{content:\"\\f422\"}.fa-compress-arrows-alt:before{content:\"\\f78c\"}.fa-concierge-bell:before{content:\"\\f562\"}.fa-confluence:before{content:\"\\f78d\"}.fa-connectdevelop:before{content:\"\\f20e\"}.fa-contao:before{content:\"\\f26d\"}.fa-cookie:before{content:\"\\f563\"}.fa-cookie-bite:before{content:\"\\f564\"}.fa-copy:before{content:\"\\f0c5\"}.fa-copyright:before{content:\"\\f1f9\"}.fa-cotton-bureau:before{content:\"\\f89e\"}.fa-couch:before{content:\"\\f4b8\"}.fa-cpanel:before{content:\"\\f388\"}.fa-creative-commons:before{content:\"\\f25e\"}.fa-creative-commons-by:before{content:\"\\f4e7\"}.fa-creative-commons-nc:before{content:\"\\f4e8\"}.fa-creative-commons-nc-eu:before{content:\"\\f4e9\"}.fa-creative-commons-nc-jp:before{content:\"\\f4ea\"}.fa-creative-commons-nd:before{content:\"\\f4eb\"}.fa-creative-commons-pd:before{content:\"\\f4ec\"}.fa-creative-commons-pd-alt:before{content:\"\\f4ed\"}.fa-creative-commons-remix:before{content:\"\\f4ee\"}.fa-creative-commons-sa:before{content:\"\\f4ef\"}.fa-creative-commons-sampling:before{content:\"\\f4f0\"}.fa-creative-commons-sampling-plus:before{content:\"\\f4f1\"}.fa-creative-commons-share:before{content:\"\\f4f2\"}.fa-creative-commons-zero:before{content:\"\\f4f3\"}.fa-credit-card:before{content:\"\\f09d\"}.fa-critical-role:before{content:\"\\f6c9\"}.fa-crop:before{content:\"\\f125\"}.fa-crop-alt:before{content:\"\\f565\"}.fa-cross:before{content:\"\\f654\"}.fa-crosshairs:before{content:\"\\f05b\"}.fa-crow:before{content:\"\\f520\"}.fa-crown:before{content:\"\\f521\"}.fa-crutch:before{content:\"\\f7f7\"}.fa-css3:before{content:\"\\f13c\"}.fa-css3-alt:before{content:\"\\f38b\"}.fa-cube:before{content:\"\\f1b2\"}.fa-cubes:before{content:\"\\f1b3\"}.fa-cut:before{content:\"\\f0c4\"}.fa-cuttlefish:before{content:\"\\f38c\"}.fa-d-and-d:before{content:\"\\f38d\"}.fa-d-and-d-beyond:before{content:\"\\f6ca\"}.fa-dailymotion:before{content:\"\\f952\"}.fa-dashcube:before{content:\"\\f210\"}.fa-database:before{content:\"\\f1c0\"}.fa-deaf:before{content:\"\\f2a4\"}.fa-delicious:before{content:\"\\f1a5\"}.fa-democrat:before{content:\"\\f747\"}.fa-deploydog:before{content:\"\\f38e\"}.fa-deskpro:before{content:\"\\f38f\"}.fa-desktop:before{content:\"\\f108\"}.fa-dev:before{content:\"\\f6cc\"}.fa-deviantart:before{content:\"\\f1bd\"}.fa-dharmachakra:before{content:\"\\f655\"}.fa-dhl:before{content:\"\\f790\"}.fa-diagnoses:before{content:\"\\f470\"}.fa-diaspora:before{content:\"\\f791\"}.fa-dice:before{content:\"\\f522\"}.fa-dice-d20:before{content:\"\\f6cf\"}.fa-dice-d6:before{content:\"\\f6d1\"}.fa-dice-five:before{content:\"\\f523\"}.fa-dice-four:before{content:\"\\f524\"}.fa-dice-one:before{content:\"\\f525\"}.fa-dice-six:before{content:\"\\f526\"}.fa-dice-three:before{content:\"\\f527\"}.fa-dice-two:before{content:\"\\f528\"}.fa-digg:before{content:\"\\f1a6\"}.fa-digital-ocean:before{content:\"\\f391\"}.fa-digital-tachograph:before{content:\"\\f566\"}.fa-directions:before{content:\"\\f5eb\"}.fa-discord:before{content:\"\\f392\"}.fa-discourse:before{content:\"\\f393\"}.fa-divide:before{content:\"\\f529\"}.fa-dizzy:before{content:\"\\f567\"}.fa-dna:before{content:\"\\f471\"}.fa-dochub:before{content:\"\\f394\"}.fa-docker:before{content:\"\\f395\"}.fa-dog:before{content:\"\\f6d3\"}.fa-dollar-sign:before{content:\"\\f155\"}.fa-dolly:before{content:\"\\f472\"}.fa-dolly-flatbed:before{content:\"\\f474\"}.fa-donate:before{content:\"\\f4b9\"}.fa-door-closed:before{content:\"\\f52a\"}.fa-door-open:before{content:\"\\f52b\"}.fa-dot-circle:before{content:\"\\f192\"}.fa-dove:before{content:\"\\f4ba\"}.fa-download:before{content:\"\\f019\"}.fa-draft2digital:before{content:\"\\f396\"}.fa-drafting-compass:before{content:\"\\f568\"}.fa-dragon:before{content:\"\\f6d5\"}.fa-draw-polygon:before{content:\"\\f5ee\"}.fa-dribbble:before{content:\"\\f17d\"}.fa-dribbble-square:before{content:\"\\f397\"}.fa-dropbox:before{content:\"\\f16b\"}.fa-drum:before{content:\"\\f569\"}.fa-drum-steelpan:before{content:\"\\f56a\"}.fa-drumstick-bite:before{content:\"\\f6d7\"}.fa-drupal:before{content:\"\\f1a9\"}.fa-dumbbell:before{content:\"\\f44b\"}.fa-dumpster:before{content:\"\\f793\"}.fa-dumpster-fire:before{content:\"\\f794\"}.fa-dungeon:before{content:\"\\f6d9\"}.fa-dyalog:before{content:\"\\f399\"}.fa-earlybirds:before{content:\"\\f39a\"}.fa-ebay:before{content:\"\\f4f4\"}.fa-edge:before{content:\"\\f282\"}.fa-edit:before{content:\"\\f044\"}.fa-egg:before{content:\"\\f7fb\"}.fa-eject:before{content:\"\\f052\"}.fa-elementor:before{content:\"\\f430\"}.fa-ellipsis-h:before{content:\"\\f141\"}.fa-ellipsis-v:before{content:\"\\f142\"}.fa-ello:before{content:\"\\f5f1\"}.fa-ember:before{content:\"\\f423\"}.fa-empire:before{content:\"\\f1d1\"}.fa-envelope:before{content:\"\\f0e0\"}.fa-envelope-open:before{content:\"\\f2b6\"}.fa-envelope-open-text:before{content:\"\\f658\"}.fa-envelope-square:before{content:\"\\f199\"}.fa-envira:before{content:\"\\f299\"}.fa-equals:before{content:\"\\f52c\"}.fa-eraser:before{content:\"\\f12d\"}.fa-erlang:before{content:\"\\f39d\"}.fa-ethereum:before{content:\"\\f42e\"}.fa-ethernet:before{content:\"\\f796\"}.fa-etsy:before{content:\"\\f2d7\"}.fa-euro-sign:before{content:\"\\f153\"}.fa-evernote:before{content:\"\\f839\"}.fa-exchange-alt:before{content:\"\\f362\"}.fa-exclamation:before{content:\"\\f12a\"}.fa-exclamation-circle:before{content:\"\\f06a\"}.fa-exclamation-triangle:before{content:\"\\f071\"}.fa-expand:before{content:\"\\f065\"}.fa-expand-alt:before{content:\"\\f424\"}.fa-expand-arrows-alt:before{content:\"\\f31e\"}.fa-expeditedssl:before{content:\"\\f23e\"}.fa-external-link-alt:before{content:\"\\f35d\"}.fa-external-link-square-alt:before{content:\"\\f360\"}.fa-eye:before{content:\"\\f06e\"}.fa-eye-dropper:before{content:\"\\f1fb\"}.fa-eye-slash:before{content:\"\\f070\"}.fa-facebook:before{content:\"\\f09a\"}.fa-facebook-f:before{content:\"\\f39e\"}.fa-facebook-messenger:before{content:\"\\f39f\"}.fa-facebook-square:before{content:\"\\f082\"}.fa-fan:before{content:\"\\f863\"}.fa-fantasy-flight-games:before{content:\"\\f6dc\"}.fa-fast-backward:before{content:\"\\f049\"}.fa-fast-forward:before{content:\"\\f050\"}.fa-fax:before{content:\"\\f1ac\"}.fa-feather:before{content:\"\\f52d\"}.fa-feather-alt:before{content:\"\\f56b\"}.fa-fedex:before{content:\"\\f797\"}.fa-fedora:before{content:\"\\f798\"}.fa-female:before{content:\"\\f182\"}.fa-fighter-jet:before{content:\"\\f0fb\"}.fa-figma:before{content:\"\\f799\"}.fa-file:before{content:\"\\f15b\"}.fa-file-alt:before{content:\"\\f15c\"}.fa-file-archive:before{content:\"\\f1c6\"}.fa-file-audio:before{content:\"\\f1c7\"}.fa-file-code:before{content:\"\\f1c9\"}.fa-file-contract:before{content:\"\\f56c\"}.fa-file-csv:before{content:\"\\f6dd\"}.fa-file-download:before{content:\"\\f56d\"}.fa-file-excel:before{content:\"\\f1c3\"}.fa-file-export:before{content:\"\\f56e\"}.fa-file-image:before{content:\"\\f1c5\"}.fa-file-import:before{content:\"\\f56f\"}.fa-file-invoice:before{content:\"\\f570\"}.fa-file-invoice-dollar:before{content:\"\\f571\"}.fa-file-medical:before{content:\"\\f477\"}.fa-file-medical-alt:before{content:\"\\f478\"}.fa-file-pdf:before{content:\"\\f1c1\"}.fa-file-powerpoint:before{content:\"\\f1c4\"}.fa-file-prescription:before{content:\"\\f572\"}.fa-file-signature:before{content:\"\\f573\"}.fa-file-upload:before{content:\"\\f574\"}.fa-file-video:before{content:\"\\f1c8\"}.fa-file-word:before{content:\"\\f1c2\"}.fa-fill:before{content:\"\\f575\"}.fa-fill-drip:before{content:\"\\f576\"}.fa-film:before{content:\"\\f008\"}.fa-filter:before{content:\"\\f0b0\"}.fa-fingerprint:before{content:\"\\f577\"}.fa-fire:before{content:\"\\f06d\"}.fa-fire-alt:before{content:\"\\f7e4\"}.fa-fire-extinguisher:before{content:\"\\f134\"}.fa-firefox:before{content:\"\\f269\"}.fa-firefox-browser:before{content:\"\\f907\"}.fa-first-aid:before{content:\"\\f479\"}.fa-first-order:before{content:\"\\f2b0\"}.fa-first-order-alt:before{content:\"\\f50a\"}.fa-firstdraft:before{content:\"\\f3a1\"}.fa-fish:before{content:\"\\f578\"}.fa-fist-raised:before{content:\"\\f6de\"}.fa-flag:before{content:\"\\f024\"}.fa-flag-checkered:before{content:\"\\f11e\"}.fa-flag-usa:before{content:\"\\f74d\"}.fa-flask:before{content:\"\\f0c3\"}.fa-flickr:before{content:\"\\f16e\"}.fa-flipboard:before{content:\"\\f44d\"}.fa-flushed:before{content:\"\\f579\"}.fa-fly:before{content:\"\\f417\"}.fa-folder:before{content:\"\\f07b\"}.fa-folder-minus:before{content:\"\\f65d\"}.fa-folder-open:before{content:\"\\f07c\"}.fa-folder-plus:before{content:\"\\f65e\"}.fa-font:before{content:\"\\f031\"}.fa-font-awesome:before{content:\"\\f2b4\"}.fa-font-awesome-alt:before{content:\"\\f35c\"}.fa-font-awesome-flag:before{content:\"\\f425\"}.fa-font-awesome-logo-full:before{content:\"\\f4e6\"}.fa-fonticons:before{content:\"\\f280\"}.fa-fonticons-fi:before{content:\"\\f3a2\"}.fa-football-ball:before{content:\"\\f44e\"}.fa-fort-awesome:before{content:\"\\f286\"}.fa-fort-awesome-alt:before{content:\"\\f3a3\"}.fa-forumbee:before{content:\"\\f211\"}.fa-forward:before{content:\"\\f04e\"}.fa-foursquare:before{content:\"\\f180\"}.fa-free-code-camp:before{content:\"\\f2c5\"}.fa-freebsd:before{content:\"\\f3a4\"}.fa-frog:before{content:\"\\f52e\"}.fa-frown:before{content:\"\\f119\"}.fa-frown-open:before{content:\"\\f57a\"}.fa-fulcrum:before{content:\"\\f50b\"}.fa-funnel-dollar:before{content:\"\\f662\"}.fa-futbol:before{content:\"\\f1e3\"}.fa-galactic-republic:before{content:\"\\f50c\"}.fa-galactic-senate:before{content:\"\\f50d\"}.fa-gamepad:before{content:\"\\f11b\"}.fa-gas-pump:before{content:\"\\f52f\"}.fa-gavel:before{content:\"\\f0e3\"}.fa-gem:before{content:\"\\f3a5\"}.fa-genderless:before{content:\"\\f22d\"}.fa-get-pocket:before{content:\"\\f265\"}.fa-gg:before{content:\"\\f260\"}.fa-gg-circle:before{content:\"\\f261\"}.fa-ghost:before{content:\"\\f6e2\"}.fa-gift:before{content:\"\\f06b\"}.fa-gifts:before{content:\"\\f79c\"}.fa-git:before{content:\"\\f1d3\"}.fa-git-alt:before{content:\"\\f841\"}.fa-git-square:before{content:\"\\f1d2\"}.fa-github:before{content:\"\\f09b\"}.fa-github-alt:before{content:\"\\f113\"}.fa-github-square:before{content:\"\\f092\"}.fa-gitkraken:before{content:\"\\f3a6\"}.fa-gitlab:before{content:\"\\f296\"}.fa-gitter:before{content:\"\\f426\"}.fa-glass-cheers:before{content:\"\\f79f\"}.fa-glass-martini:before{content:\"\\f000\"}.fa-glass-martini-alt:before{content:\"\\f57b\"}.fa-glass-whiskey:before{content:\"\\f7a0\"}.fa-glasses:before{content:\"\\f530\"}.fa-glide:before{content:\"\\f2a5\"}.fa-glide-g:before{content:\"\\f2a6\"}.fa-globe:before{content:\"\\f0ac\"}.fa-globe-africa:before{content:\"\\f57c\"}.fa-globe-americas:before{content:\"\\f57d\"}.fa-globe-asia:before{content:\"\\f57e\"}.fa-globe-europe:before{content:\"\\f7a2\"}.fa-gofore:before{content:\"\\f3a7\"}.fa-golf-ball:before{content:\"\\f450\"}.fa-goodreads:before{content:\"\\f3a8\"}.fa-goodreads-g:before{content:\"\\f3a9\"}.fa-google:before{content:\"\\f1a0\"}.fa-google-drive:before{content:\"\\f3aa\"}.fa-google-play:before{content:\"\\f3ab\"}.fa-google-plus:before{content:\"\\f2b3\"}.fa-google-plus-g:before{content:\"\\f0d5\"}.fa-google-plus-square:before{content:\"\\f0d4\"}.fa-google-wallet:before{content:\"\\f1ee\"}.fa-gopuram:before{content:\"\\f664\"}.fa-graduation-cap:before{content:\"\\f19d\"}.fa-gratipay:before{content:\"\\f184\"}.fa-grav:before{content:\"\\f2d6\"}.fa-greater-than:before{content:\"\\f531\"}.fa-greater-than-equal:before{content:\"\\f532\"}.fa-grimace:before{content:\"\\f57f\"}.fa-grin:before{content:\"\\f580\"}.fa-grin-alt:before{content:\"\\f581\"}.fa-grin-beam:before{content:\"\\f582\"}.fa-grin-beam-sweat:before{content:\"\\f583\"}.fa-grin-hearts:before{content:\"\\f584\"}.fa-grin-squint:before{content:\"\\f585\"}.fa-grin-squint-tears:before{content:\"\\f586\"}.fa-grin-stars:before{content:\"\\f587\"}.fa-grin-tears:before{content:\"\\f588\"}.fa-grin-tongue:before{content:\"\\f589\"}.fa-grin-tongue-squint:before{content:\"\\f58a\"}.fa-grin-tongue-wink:before{content:\"\\f58b\"}.fa-grin-wink:before{content:\"\\f58c\"}.fa-grip-horizontal:before{content:\"\\f58d\"}.fa-grip-lines:before{content:\"\\f7a4\"}.fa-grip-lines-vertical:before{content:\"\\f7a5\"}.fa-grip-vertical:before{content:\"\\f58e\"}.fa-gripfire:before{content:\"\\f3ac\"}.fa-grunt:before{content:\"\\f3ad\"}.fa-guitar:before{content:\"\\f7a6\"}.fa-gulp:before{content:\"\\f3ae\"}.fa-h-square:before{content:\"\\f0fd\"}.fa-hacker-news:before{content:\"\\f1d4\"}.fa-hacker-news-square:before{content:\"\\f3af\"}.fa-hackerrank:before{content:\"\\f5f7\"}.fa-hamburger:before{content:\"\\f805\"}.fa-hammer:before{content:\"\\f6e3\"}.fa-hamsa:before{content:\"\\f665\"}.fa-hand-holding:before{content:\"\\f4bd\"}.fa-hand-holding-heart:before{content:\"\\f4be\"}.fa-hand-holding-usd:before{content:\"\\f4c0\"}.fa-hand-lizard:before{content:\"\\f258\"}.fa-hand-middle-finger:before{content:\"\\f806\"}.fa-hand-paper:before{content:\"\\f256\"}.fa-hand-peace:before{content:\"\\f25b\"}.fa-hand-point-down:before{content:\"\\f0a7\"}.fa-hand-point-left:before{content:\"\\f0a5\"}.fa-hand-point-right:before{content:\"\\f0a4\"}.fa-hand-point-up:before{content:\"\\f0a6\"}.fa-hand-pointer:before{content:\"\\f25a\"}.fa-hand-rock:before{content:\"\\f255\"}.fa-hand-scissors:before{content:\"\\f257\"}.fa-hand-spock:before{content:\"\\f259\"}.fa-hands:before{content:\"\\f4c2\"}.fa-hands-helping:before{content:\"\\f4c4\"}.fa-handshake:before{content:\"\\f2b5\"}.fa-hanukiah:before{content:\"\\f6e6\"}.fa-hard-hat:before{content:\"\\f807\"}.fa-hashtag:before{content:\"\\f292\"}.fa-hat-cowboy:before{content:\"\\f8c0\"}.fa-hat-cowboy-side:before{content:\"\\f8c1\"}.fa-hat-wizard:before{content:\"\\f6e8\"}.fa-hdd:before{content:\"\\f0a0\"}.fa-heading:before{content:\"\\f1dc\"}.fa-headphones:before{content:\"\\f025\"}.fa-headphones-alt:before{content:\"\\f58f\"}.fa-headset:before{content:\"\\f590\"}.fa-heart:before{content:\"\\f004\"}.fa-heart-broken:before{content:\"\\f7a9\"}.fa-heartbeat:before{content:\"\\f21e\"}.fa-helicopter:before{content:\"\\f533\"}.fa-highlighter:before{content:\"\\f591\"}.fa-hiking:before{content:\"\\f6ec\"}.fa-hippo:before{content:\"\\f6ed\"}.fa-hips:before{content:\"\\f452\"}.fa-hire-a-helper:before{content:\"\\f3b0\"}.fa-history:before{content:\"\\f1da\"}.fa-hockey-puck:before{content:\"\\f453\"}.fa-holly-berry:before{content:\"\\f7aa\"}.fa-home:before{content:\"\\f015\"}.fa-hooli:before{content:\"\\f427\"}.fa-hornbill:before{content:\"\\f592\"}.fa-horse:before{content:\"\\f6f0\"}.fa-horse-head:before{content:\"\\f7ab\"}.fa-hospital:before{content:\"\\f0f8\"}.fa-hospital-alt:before{content:\"\\f47d\"}.fa-hospital-symbol:before{content:\"\\f47e\"}.fa-hot-tub:before{content:\"\\f593\"}.fa-hotdog:before{content:\"\\f80f\"}.fa-hotel:before{content:\"\\f594\"}.fa-hotjar:before{content:\"\\f3b1\"}.fa-hourglass:before{content:\"\\f254\"}.fa-hourglass-end:before{content:\"\\f253\"}.fa-hourglass-half:before{content:\"\\f252\"}.fa-hourglass-start:before{content:\"\\f251\"}.fa-house-damage:before{content:\"\\f6f1\"}.fa-houzz:before{content:\"\\f27c\"}.fa-hryvnia:before{content:\"\\f6f2\"}.fa-html5:before{content:\"\\f13b\"}.fa-hubspot:before{content:\"\\f3b2\"}.fa-i-cursor:before{content:\"\\f246\"}.fa-ice-cream:before{content:\"\\f810\"}.fa-icicles:before{content:\"\\f7ad\"}.fa-icons:before{content:\"\\f86d\"}.fa-id-badge:before{content:\"\\f2c1\"}.fa-id-card:before{content:\"\\f2c2\"}.fa-id-card-alt:before{content:\"\\f47f\"}.fa-ideal:before{content:\"\\f913\"}.fa-igloo:before{content:\"\\f7ae\"}.fa-image:before{content:\"\\f03e\"}.fa-images:before{content:\"\\f302\"}.fa-imdb:before{content:\"\\f2d8\"}.fa-inbox:before{content:\"\\f01c\"}.fa-indent:before{content:\"\\f03c\"}.fa-industry:before{content:\"\\f275\"}.fa-infinity:before{content:\"\\f534\"}.fa-info:before{content:\"\\f129\"}.fa-info-circle:before{content:\"\\f05a\"}.fa-instagram:before{content:\"\\f16d\"}.fa-instagram-square:before{content:\"\\f955\"}.fa-intercom:before{content:\"\\f7af\"}.fa-internet-explorer:before{content:\"\\f26b\"}.fa-invision:before{content:\"\\f7b0\"}.fa-ioxhost:before{content:\"\\f208\"}.fa-italic:before{content:\"\\f033\"}.fa-itch-io:before{content:\"\\f83a\"}.fa-itunes:before{content:\"\\f3b4\"}.fa-itunes-note:before{content:\"\\f3b5\"}.fa-java:before{content:\"\\f4e4\"}.fa-jedi:before{content:\"\\f669\"}.fa-jedi-order:before{content:\"\\f50e\"}.fa-jenkins:before{content:\"\\f3b6\"}.fa-jira:before{content:\"\\f7b1\"}.fa-joget:before{content:\"\\f3b7\"}.fa-joint:before{content:\"\\f595\"}.fa-joomla:before{content:\"\\f1aa\"}.fa-journal-whills:before{content:\"\\f66a\"}.fa-js:before{content:\"\\f3b8\"}.fa-js-square:before{content:\"\\f3b9\"}.fa-jsfiddle:before{content:\"\\f1cc\"}.fa-kaaba:before{content:\"\\f66b\"}.fa-kaggle:before{content:\"\\f5fa\"}.fa-key:before{content:\"\\f084\"}.fa-keybase:before{content:\"\\f4f5\"}.fa-keyboard:before{content:\"\\f11c\"}.fa-keycdn:before{content:\"\\f3ba\"}.fa-khanda:before{content:\"\\f66d\"}.fa-kickstarter:before{content:\"\\f3bb\"}.fa-kickstarter-k:before{content:\"\\f3bc\"}.fa-kiss:before{content:\"\\f596\"}.fa-kiss-beam:before{content:\"\\f597\"}.fa-kiss-wink-heart:before{content:\"\\f598\"}.fa-kiwi-bird:before{content:\"\\f535\"}.fa-korvue:before{content:\"\\f42f\"}.fa-landmark:before{content:\"\\f66f\"}.fa-language:before{content:\"\\f1ab\"}.fa-laptop:before{content:\"\\f109\"}.fa-laptop-code:before{content:\"\\f5fc\"}.fa-laptop-medical:before{content:\"\\f812\"}.fa-laravel:before{content:\"\\f3bd\"}.fa-lastfm:before{content:\"\\f202\"}.fa-lastfm-square:before{content:\"\\f203\"}.fa-laugh:before{content:\"\\f599\"}.fa-laugh-beam:before{content:\"\\f59a\"}.fa-laugh-squint:before{content:\"\\f59b\"}.fa-laugh-wink:before{content:\"\\f59c\"}.fa-layer-group:before{content:\"\\f5fd\"}.fa-leaf:before{content:\"\\f06c\"}.fa-leanpub:before{content:\"\\f212\"}.fa-lemon:before{content:\"\\f094\"}.fa-less:before{content:\"\\f41d\"}.fa-less-than:before{content:\"\\f536\"}.fa-less-than-equal:before{content:\"\\f537\"}.fa-level-down-alt:before{content:\"\\f3be\"}.fa-level-up-alt:before{content:\"\\f3bf\"}.fa-life-ring:before{content:\"\\f1cd\"}.fa-lightbulb:before{content:\"\\f0eb\"}.fa-line:before{content:\"\\f3c0\"}.fa-link:before{content:\"\\f0c1\"}.fa-linkedin:before{content:\"\\f08c\"}.fa-linkedin-in:before{content:\"\\f0e1\"}.fa-linode:before{content:\"\\f2b8\"}.fa-linux:before{content:\"\\f17c\"}.fa-lira-sign:before{content:\"\\f195\"}.fa-list:before{content:\"\\f03a\"}.fa-list-alt:before{content:\"\\f022\"}.fa-list-ol:before{content:\"\\f0cb\"}.fa-list-ul:before{content:\"\\f0ca\"}.fa-location-arrow:before{content:\"\\f124\"}.fa-lock:before{content:\"\\f023\"}.fa-lock-open:before{content:\"\\f3c1\"}.fa-long-arrow-alt-down:before{content:\"\\f309\"}.fa-long-arrow-alt-left:before{content:\"\\f30a\"}.fa-long-arrow-alt-right:before{content:\"\\f30b\"}.fa-long-arrow-alt-up:before{content:\"\\f30c\"}.fa-low-vision:before{content:\"\\f2a8\"}.fa-luggage-cart:before{content:\"\\f59d\"}.fa-lyft:before{content:\"\\f3c3\"}.fa-magento:before{content:\"\\f3c4\"}.fa-magic:before{content:\"\\f0d0\"}.fa-magnet:before{content:\"\\f076\"}.fa-mail-bulk:before{content:\"\\f674\"}.fa-mailchimp:before{content:\"\\f59e\"}.fa-male:before{content:\"\\f183\"}.fa-mandalorian:before{content:\"\\f50f\"}.fa-map:before{content:\"\\f279\"}.fa-map-marked:before{content:\"\\f59f\"}.fa-map-marked-alt:before{content:\"\\f5a0\"}.fa-map-marker:before{content:\"\\f041\"}.fa-map-marker-alt:before{content:\"\\f3c5\"}.fa-map-pin:before{content:\"\\f276\"}.fa-map-signs:before{content:\"\\f277\"}.fa-markdown:before{content:\"\\f60f\"}.fa-marker:before{content:\"\\f5a1\"}.fa-mars:before{content:\"\\f222\"}.fa-mars-double:before{content:\"\\f227\"}.fa-mars-stroke:before{content:\"\\f229\"}.fa-mars-stroke-h:before{content:\"\\f22b\"}.fa-mars-stroke-v:before{content:\"\\f22a\"}.fa-mask:before{content:\"\\f6fa\"}.fa-mastodon:before{content:\"\\f4f6\"}.fa-maxcdn:before{content:\"\\f136\"}.fa-mdb:before{content:\"\\f8ca\"}.fa-medal:before{content:\"\\f5a2\"}.fa-medapps:before{content:\"\\f3c6\"}.fa-medium:before{content:\"\\f23a\"}.fa-medium-m:before{content:\"\\f3c7\"}.fa-medkit:before{content:\"\\f0fa\"}.fa-medrt:before{content:\"\\f3c8\"}.fa-meetup:before{content:\"\\f2e0\"}.fa-megaport:before{content:\"\\f5a3\"}.fa-meh:before{content:\"\\f11a\"}.fa-meh-blank:before{content:\"\\f5a4\"}.fa-meh-rolling-eyes:before{content:\"\\f5a5\"}.fa-memory:before{content:\"\\f538\"}.fa-mendeley:before{content:\"\\f7b3\"}.fa-menorah:before{content:\"\\f676\"}.fa-mercury:before{content:\"\\f223\"}.fa-meteor:before{content:\"\\f753\"}.fa-microblog:before{content:\"\\f91a\"}.fa-microchip:before{content:\"\\f2db\"}.fa-microphone:before{content:\"\\f130\"}.fa-microphone-alt:before{content:\"\\f3c9\"}.fa-microphone-alt-slash:before{content:\"\\f539\"}.fa-microphone-slash:before{content:\"\\f131\"}.fa-microscope:before{content:\"\\f610\"}.fa-microsoft:before{content:\"\\f3ca\"}.fa-minus:before{content:\"\\f068\"}.fa-minus-circle:before{content:\"\\f056\"}.fa-minus-square:before{content:\"\\f146\"}.fa-mitten:before{content:\"\\f7b5\"}.fa-mix:before{content:\"\\f3cb\"}.fa-mixcloud:before{content:\"\\f289\"}.fa-mixer:before{content:\"\\f956\"}.fa-mizuni:before{content:\"\\f3cc\"}.fa-mobile:before{content:\"\\f10b\"}.fa-mobile-alt:before{content:\"\\f3cd\"}.fa-modx:before{content:\"\\f285\"}.fa-monero:before{content:\"\\f3d0\"}.fa-money-bill:before{content:\"\\f0d6\"}.fa-money-bill-alt:before{content:\"\\f3d1\"}.fa-money-bill-wave:before{content:\"\\f53a\"}.fa-money-bill-wave-alt:before{content:\"\\f53b\"}.fa-money-check:before{content:\"\\f53c\"}.fa-money-check-alt:before{content:\"\\f53d\"}.fa-monument:before{content:\"\\f5a6\"}.fa-moon:before{content:\"\\f186\"}.fa-mortar-pestle:before{content:\"\\f5a7\"}.fa-mosque:before{content:\"\\f678\"}.fa-motorcycle:before{content:\"\\f21c\"}.fa-mountain:before{content:\"\\f6fc\"}.fa-mouse:before{content:\"\\f8cc\"}.fa-mouse-pointer:before{content:\"\\f245\"}.fa-mug-hot:before{content:\"\\f7b6\"}.fa-music:before{content:\"\\f001\"}.fa-napster:before{content:\"\\f3d2\"}.fa-neos:before{content:\"\\f612\"}.fa-network-wired:before{content:\"\\f6ff\"}.fa-neuter:before{content:\"\\f22c\"}.fa-newspaper:before{content:\"\\f1ea\"}.fa-nimblr:before{content:\"\\f5a8\"}.fa-node:before{content:\"\\f419\"}.fa-node-js:before{content:\"\\f3d3\"}.fa-not-equal:before{content:\"\\f53e\"}.fa-notes-medical:before{content:\"\\f481\"}.fa-npm:before{content:\"\\f3d4\"}.fa-ns8:before{content:\"\\f3d5\"}.fa-nutritionix:before{content:\"\\f3d6\"}.fa-object-group:before{content:\"\\f247\"}.fa-object-ungroup:before{content:\"\\f248\"}.fa-odnoklassniki:before{content:\"\\f263\"}.fa-odnoklassniki-square:before{content:\"\\f264\"}.fa-oil-can:before{content:\"\\f613\"}.fa-old-republic:before{content:\"\\f510\"}.fa-om:before{content:\"\\f679\"}.fa-opencart:before{content:\"\\f23d\"}.fa-openid:before{content:\"\\f19b\"}.fa-opera:before{content:\"\\f26a\"}.fa-optin-monster:before{content:\"\\f23c\"}.fa-orcid:before{content:\"\\f8d2\"}.fa-osi:before{content:\"\\f41a\"}.fa-otter:before{content:\"\\f700\"}.fa-outdent:before{content:\"\\f03b\"}.fa-page4:before{content:\"\\f3d7\"}.fa-pagelines:before{content:\"\\f18c\"}.fa-pager:before{content:\"\\f815\"}.fa-paint-brush:before{content:\"\\f1fc\"}.fa-paint-roller:before{content:\"\\f5aa\"}.fa-palette:before{content:\"\\f53f\"}.fa-palfed:before{content:\"\\f3d8\"}.fa-pallet:before{content:\"\\f482\"}.fa-paper-plane:before{content:\"\\f1d8\"}.fa-paperclip:before{content:\"\\f0c6\"}.fa-parachute-box:before{content:\"\\f4cd\"}.fa-paragraph:before{content:\"\\f1dd\"}.fa-parking:before{content:\"\\f540\"}.fa-passport:before{content:\"\\f5ab\"}.fa-pastafarianism:before{content:\"\\f67b\"}.fa-paste:before{content:\"\\f0ea\"}.fa-patreon:before{content:\"\\f3d9\"}.fa-pause:before{content:\"\\f04c\"}.fa-pause-circle:before{content:\"\\f28b\"}.fa-paw:before{content:\"\\f1b0\"}.fa-paypal:before{content:\"\\f1ed\"}.fa-peace:before{content:\"\\f67c\"}.fa-pen:before{content:\"\\f304\"}.fa-pen-alt:before{content:\"\\f305\"}.fa-pen-fancy:before{content:\"\\f5ac\"}.fa-pen-nib:before{content:\"\\f5ad\"}.fa-pen-square:before{content:\"\\f14b\"}.fa-pencil-alt:before{content:\"\\f303\"}.fa-pencil-ruler:before{content:\"\\f5ae\"}.fa-penny-arcade:before{content:\"\\f704\"}.fa-people-carry:before{content:\"\\f4ce\"}.fa-pepper-hot:before{content:\"\\f816\"}.fa-percent:before{content:\"\\f295\"}.fa-percentage:before{content:\"\\f541\"}.fa-periscope:before{content:\"\\f3da\"}.fa-person-booth:before{content:\"\\f756\"}.fa-phabricator:before{content:\"\\f3db\"}.fa-phoenix-framework:before{content:\"\\f3dc\"}.fa-phoenix-squadron:before{content:\"\\f511\"}.fa-phone:before{content:\"\\f095\"}.fa-phone-alt:before{content:\"\\f879\"}.fa-phone-slash:before{content:\"\\f3dd\"}.fa-phone-square:before{content:\"\\f098\"}.fa-phone-square-alt:before{content:\"\\f87b\"}.fa-phone-volume:before{content:\"\\f2a0\"}.fa-photo-video:before{content:\"\\f87c\"}.fa-php:before{content:\"\\f457\"}.fa-pied-piper:before{content:\"\\f2ae\"}.fa-pied-piper-alt:before{content:\"\\f1a8\"}.fa-pied-piper-hat:before{content:\"\\f4e5\"}.fa-pied-piper-pp:before{content:\"\\f1a7\"}.fa-pied-piper-square:before{content:\"\\f91e\"}.fa-piggy-bank:before{content:\"\\f4d3\"}.fa-pills:before{content:\"\\f484\"}.fa-pinterest:before{content:\"\\f0d2\"}.fa-pinterest-p:before{content:\"\\f231\"}.fa-pinterest-square:before{content:\"\\f0d3\"}.fa-pizza-slice:before{content:\"\\f818\"}.fa-place-of-worship:before{content:\"\\f67f\"}.fa-plane:before{content:\"\\f072\"}.fa-plane-arrival:before{content:\"\\f5af\"}.fa-plane-departure:before{content:\"\\f5b0\"}.fa-play:before{content:\"\\f04b\"}.fa-play-circle:before{content:\"\\f144\"}.fa-playstation:before{content:\"\\f3df\"}.fa-plug:before{content:\"\\f1e6\"}.fa-plus:before{content:\"\\f067\"}.fa-plus-circle:before{content:\"\\f055\"}.fa-plus-square:before{content:\"\\f0fe\"}.fa-podcast:before{content:\"\\f2ce\"}.fa-poll:before{content:\"\\f681\"}.fa-poll-h:before{content:\"\\f682\"}.fa-poo:before{content:\"\\f2fe\"}.fa-poo-storm:before{content:\"\\f75a\"}.fa-poop:before{content:\"\\f619\"}.fa-portrait:before{content:\"\\f3e0\"}.fa-pound-sign:before{content:\"\\f154\"}.fa-power-off:before{content:\"\\f011\"}.fa-pray:before{content:\"\\f683\"}.fa-praying-hands:before{content:\"\\f684\"}.fa-prescription:before{content:\"\\f5b1\"}.fa-prescription-bottle:before{content:\"\\f485\"}.fa-prescription-bottle-alt:before{content:\"\\f486\"}.fa-print:before{content:\"\\f02f\"}.fa-procedures:before{content:\"\\f487\"}.fa-product-hunt:before{content:\"\\f288\"}.fa-project-diagram:before{content:\"\\f542\"}.fa-pushed:before{content:\"\\f3e1\"}.fa-puzzle-piece:before{content:\"\\f12e\"}.fa-python:before{content:\"\\f3e2\"}.fa-qq:before{content:\"\\f1d6\"}.fa-qrcode:before{content:\"\\f029\"}.fa-question:before{content:\"\\f128\"}.fa-question-circle:before{content:\"\\f059\"}.fa-quidditch:before{content:\"\\f458\"}.fa-quinscape:before{content:\"\\f459\"}.fa-quora:before{content:\"\\f2c4\"}.fa-quote-left:before{content:\"\\f10d\"}.fa-quote-right:before{content:\"\\f10e\"}.fa-quran:before{content:\"\\f687\"}.fa-r-project:before{content:\"\\f4f7\"}.fa-radiation:before{content:\"\\f7b9\"}.fa-radiation-alt:before{content:\"\\f7ba\"}.fa-rainbow:before{content:\"\\f75b\"}.fa-random:before{content:\"\\f074\"}.fa-raspberry-pi:before{content:\"\\f7bb\"}.fa-ravelry:before{content:\"\\f2d9\"}.fa-react:before{content:\"\\f41b\"}.fa-reacteurope:before{content:\"\\f75d\"}.fa-readme:before{content:\"\\f4d5\"}.fa-rebel:before{content:\"\\f1d0\"}.fa-receipt:before{content:\"\\f543\"}.fa-record-vinyl:before{content:\"\\f8d9\"}.fa-recycle:before{content:\"\\f1b8\"}.fa-red-river:before{content:\"\\f3e3\"}.fa-reddit:before{content:\"\\f1a1\"}.fa-reddit-alien:before{content:\"\\f281\"}.fa-reddit-square:before{content:\"\\f1a2\"}.fa-redhat:before{content:\"\\f7bc\"}.fa-redo:before{content:\"\\f01e\"}.fa-redo-alt:before{content:\"\\f2f9\"}.fa-registered:before{content:\"\\f25d\"}.fa-remove-format:before{content:\"\\f87d\"}.fa-renren:before{content:\"\\f18b\"}.fa-reply:before{content:\"\\f3e5\"}.fa-reply-all:before{content:\"\\f122\"}.fa-replyd:before{content:\"\\f3e6\"}.fa-republican:before{content:\"\\f75e\"}.fa-researchgate:before{content:\"\\f4f8\"}.fa-resolving:before{content:\"\\f3e7\"}.fa-restroom:before{content:\"\\f7bd\"}.fa-retweet:before{content:\"\\f079\"}.fa-rev:before{content:\"\\f5b2\"}.fa-ribbon:before{content:\"\\f4d6\"}.fa-ring:before{content:\"\\f70b\"}.fa-road:before{content:\"\\f018\"}.fa-robot:before{content:\"\\f544\"}.fa-rocket:before{content:\"\\f135\"}.fa-rocketchat:before{content:\"\\f3e8\"}.fa-rockrms:before{content:\"\\f3e9\"}.fa-route:before{content:\"\\f4d7\"}.fa-rss:before{content:\"\\f09e\"}.fa-rss-square:before{content:\"\\f143\"}.fa-ruble-sign:before{content:\"\\f158\"}.fa-ruler:before{content:\"\\f545\"}.fa-ruler-combined:before{content:\"\\f546\"}.fa-ruler-horizontal:before{content:\"\\f547\"}.fa-ruler-vertical:before{content:\"\\f548\"}.fa-running:before{content:\"\\f70c\"}.fa-rupee-sign:before{content:\"\\f156\"}.fa-sad-cry:before{content:\"\\f5b3\"}.fa-sad-tear:before{content:\"\\f5b4\"}.fa-safari:before{content:\"\\f267\"}.fa-salesforce:before{content:\"\\f83b\"}.fa-sass:before{content:\"\\f41e\"}.fa-satellite:before{content:\"\\f7bf\"}.fa-satellite-dish:before{content:\"\\f7c0\"}.fa-save:before{content:\"\\f0c7\"}.fa-schlix:before{content:\"\\f3ea\"}.fa-school:before{content:\"\\f549\"}.fa-screwdriver:before{content:\"\\f54a\"}.fa-scribd:before{content:\"\\f28a\"}.fa-scroll:before{content:\"\\f70e\"}.fa-sd-card:before{content:\"\\f7c2\"}.fa-search:before{content:\"\\f002\"}.fa-search-dollar:before{content:\"\\f688\"}.fa-search-location:before{content:\"\\f689\"}.fa-search-minus:before{content:\"\\f010\"}.fa-search-plus:before{content:\"\\f00e\"}.fa-searchengin:before{content:\"\\f3eb\"}.fa-seedling:before{content:\"\\f4d8\"}.fa-sellcast:before{content:\"\\f2da\"}.fa-sellsy:before{content:\"\\f213\"}.fa-server:before{content:\"\\f233\"}.fa-servicestack:before{content:\"\\f3ec\"}.fa-shapes:before{content:\"\\f61f\"}.fa-share:before{content:\"\\f064\"}.fa-share-alt:before{content:\"\\f1e0\"}.fa-share-alt-square:before{content:\"\\f1e1\"}.fa-share-square:before{content:\"\\f14d\"}.fa-shekel-sign:before{content:\"\\f20b\"}.fa-shield-alt:before{content:\"\\f3ed\"}.fa-ship:before{content:\"\\f21a\"}.fa-shipping-fast:before{content:\"\\f48b\"}.fa-shirtsinbulk:before{content:\"\\f214\"}.fa-shoe-prints:before{content:\"\\f54b\"}.fa-shopify:before{content:\"\\f957\"}.fa-shopping-bag:before{content:\"\\f290\"}.fa-shopping-basket:before{content:\"\\f291\"}.fa-shopping-cart:before{content:\"\\f07a\"}.fa-shopware:before{content:\"\\f5b5\"}.fa-shower:before{content:\"\\f2cc\"}.fa-shuttle-van:before{content:\"\\f5b6\"}.fa-sign:before{content:\"\\f4d9\"}.fa-sign-in-alt:before{content:\"\\f2f6\"}.fa-sign-language:before{content:\"\\f2a7\"}.fa-sign-out-alt:before{content:\"\\f2f5\"}.fa-signal:before{content:\"\\f012\"}.fa-signature:before{content:\"\\f5b7\"}.fa-sim-card:before{content:\"\\f7c4\"}.fa-simplybuilt:before{content:\"\\f215\"}.fa-sistrix:before{content:\"\\f3ee\"}.fa-sitemap:before{content:\"\\f0e8\"}.fa-sith:before{content:\"\\f512\"}.fa-skating:before{content:\"\\f7c5\"}.fa-sketch:before{content:\"\\f7c6\"}.fa-skiing:before{content:\"\\f7c9\"}.fa-skiing-nordic:before{content:\"\\f7ca\"}.fa-skull:before{content:\"\\f54c\"}.fa-skull-crossbones:before{content:\"\\f714\"}.fa-skyatlas:before{content:\"\\f216\"}.fa-skype:before{content:\"\\f17e\"}.fa-slack:before{content:\"\\f198\"}.fa-slack-hash:before{content:\"\\f3ef\"}.fa-slash:before{content:\"\\f715\"}.fa-sleigh:before{content:\"\\f7cc\"}.fa-sliders-h:before{content:\"\\f1de\"}.fa-slideshare:before{content:\"\\f1e7\"}.fa-smile:before{content:\"\\f118\"}.fa-smile-beam:before{content:\"\\f5b8\"}.fa-smile-wink:before{content:\"\\f4da\"}.fa-smog:before{content:\"\\f75f\"}.fa-smoking:before{content:\"\\f48d\"}.fa-smoking-ban:before{content:\"\\f54d\"}.fa-sms:before{content:\"\\f7cd\"}.fa-snapchat:before{content:\"\\f2ab\"}.fa-snapchat-ghost:before{content:\"\\f2ac\"}.fa-snapchat-square:before{content:\"\\f2ad\"}.fa-snowboarding:before{content:\"\\f7ce\"}.fa-snowflake:before{content:\"\\f2dc\"}.fa-snowman:before{content:\"\\f7d0\"}.fa-snowplow:before{content:\"\\f7d2\"}.fa-socks:before{content:\"\\f696\"}.fa-solar-panel:before{content:\"\\f5ba\"}.fa-sort:before{content:\"\\f0dc\"}.fa-sort-alpha-down:before{content:\"\\f15d\"}.fa-sort-alpha-down-alt:before{content:\"\\f881\"}.fa-sort-alpha-up:before{content:\"\\f15e\"}.fa-sort-alpha-up-alt:before{content:\"\\f882\"}.fa-sort-amount-down:before{content:\"\\f160\"}.fa-sort-amount-down-alt:before{content:\"\\f884\"}.fa-sort-amount-up:before{content:\"\\f161\"}.fa-sort-amount-up-alt:before{content:\"\\f885\"}.fa-sort-down:before{content:\"\\f0dd\"}.fa-sort-numeric-down:before{content:\"\\f162\"}.fa-sort-numeric-down-alt:before{content:\"\\f886\"}.fa-sort-numeric-up:before{content:\"\\f163\"}.fa-sort-numeric-up-alt:before{content:\"\\f887\"}.fa-sort-up:before{content:\"\\f0de\"}.fa-soundcloud:before{content:\"\\f1be\"}.fa-sourcetree:before{content:\"\\f7d3\"}.fa-spa:before{content:\"\\f5bb\"}.fa-space-shuttle:before{content:\"\\f197\"}.fa-speakap:before{content:\"\\f3f3\"}.fa-speaker-deck:before{content:\"\\f83c\"}.fa-spell-check:before{content:\"\\f891\"}.fa-spider:before{content:\"\\f717\"}.fa-spinner:before{content:\"\\f110\"}.fa-splotch:before{content:\"\\f5bc\"}.fa-spotify:before{content:\"\\f1bc\"}.fa-spray-can:before{content:\"\\f5bd\"}.fa-square:before{content:\"\\f0c8\"}.fa-square-full:before{content:\"\\f45c\"}.fa-square-root-alt:before{content:\"\\f698\"}.fa-squarespace:before{content:\"\\f5be\"}.fa-stack-exchange:before{content:\"\\f18d\"}.fa-stack-overflow:before{content:\"\\f16c\"}.fa-stackpath:before{content:\"\\f842\"}.fa-stamp:before{content:\"\\f5bf\"}.fa-star:before{content:\"\\f005\"}.fa-star-and-crescent:before{content:\"\\f699\"}.fa-star-half:before{content:\"\\f089\"}.fa-star-half-alt:before{content:\"\\f5c0\"}.fa-star-of-david:before{content:\"\\f69a\"}.fa-star-of-life:before{content:\"\\f621\"}.fa-staylinked:before{content:\"\\f3f5\"}.fa-steam:before{content:\"\\f1b6\"}.fa-steam-square:before{content:\"\\f1b7\"}.fa-steam-symbol:before{content:\"\\f3f6\"}.fa-step-backward:before{content:\"\\f048\"}.fa-step-forward:before{content:\"\\f051\"}.fa-stethoscope:before{content:\"\\f0f1\"}.fa-sticker-mule:before{content:\"\\f3f7\"}.fa-sticky-note:before{content:\"\\f249\"}.fa-stop:before{content:\"\\f04d\"}.fa-stop-circle:before{content:\"\\f28d\"}.fa-stopwatch:before{content:\"\\f2f2\"}.fa-store:before{content:\"\\f54e\"}.fa-store-alt:before{content:\"\\f54f\"}.fa-strava:before{content:\"\\f428\"}.fa-stream:before{content:\"\\f550\"}.fa-street-view:before{content:\"\\f21d\"}.fa-strikethrough:before{content:\"\\f0cc\"}.fa-stripe:before{content:\"\\f429\"}.fa-stripe-s:before{content:\"\\f42a\"}.fa-stroopwafel:before{content:\"\\f551\"}.fa-studiovinari:before{content:\"\\f3f8\"}.fa-stumbleupon:before{content:\"\\f1a4\"}.fa-stumbleupon-circle:before{content:\"\\f1a3\"}.fa-subscript:before{content:\"\\f12c\"}.fa-subway:before{content:\"\\f239\"}.fa-suitcase:before{content:\"\\f0f2\"}.fa-suitcase-rolling:before{content:\"\\f5c1\"}.fa-sun:before{content:\"\\f185\"}.fa-superpowers:before{content:\"\\f2dd\"}.fa-superscript:before{content:\"\\f12b\"}.fa-supple:before{content:\"\\f3f9\"}.fa-surprise:before{content:\"\\f5c2\"}.fa-suse:before{content:\"\\f7d6\"}.fa-swatchbook:before{content:\"\\f5c3\"}.fa-swift:before{content:\"\\f8e1\"}.fa-swimmer:before{content:\"\\f5c4\"}.fa-swimming-pool:before{content:\"\\f5c5\"}.fa-symfony:before{content:\"\\f83d\"}.fa-synagogue:before{content:\"\\f69b\"}.fa-sync:before{content:\"\\f021\"}.fa-sync-alt:before{content:\"\\f2f1\"}.fa-syringe:before{content:\"\\f48e\"}.fa-table:before{content:\"\\f0ce\"}.fa-table-tennis:before{content:\"\\f45d\"}.fa-tablet:before{content:\"\\f10a\"}.fa-tablet-alt:before{content:\"\\f3fa\"}.fa-tablets:before{content:\"\\f490\"}.fa-tachometer-alt:before{content:\"\\f3fd\"}.fa-tag:before{content:\"\\f02b\"}.fa-tags:before{content:\"\\f02c\"}.fa-tape:before{content:\"\\f4db\"}.fa-tasks:before{content:\"\\f0ae\"}.fa-taxi:before{content:\"\\f1ba\"}.fa-teamspeak:before{content:\"\\f4f9\"}.fa-teeth:before{content:\"\\f62e\"}.fa-teeth-open:before{content:\"\\f62f\"}.fa-telegram:before{content:\"\\f2c6\"}.fa-telegram-plane:before{content:\"\\f3fe\"}.fa-temperature-high:before{content:\"\\f769\"}.fa-temperature-low:before{content:\"\\f76b\"}.fa-tencent-weibo:before{content:\"\\f1d5\"}.fa-tenge:before{content:\"\\f7d7\"}.fa-terminal:before{content:\"\\f120\"}.fa-text-height:before{content:\"\\f034\"}.fa-text-width:before{content:\"\\f035\"}.fa-th:before{content:\"\\f00a\"}.fa-th-large:before{content:\"\\f009\"}.fa-th-list:before{content:\"\\f00b\"}.fa-the-red-yeti:before{content:\"\\f69d\"}.fa-theater-masks:before{content:\"\\f630\"}.fa-themeco:before{content:\"\\f5c6\"}.fa-themeisle:before{content:\"\\f2b2\"}.fa-thermometer:before{content:\"\\f491\"}.fa-thermometer-empty:before{content:\"\\f2cb\"}.fa-thermometer-full:before{content:\"\\f2c7\"}.fa-thermometer-half:before{content:\"\\f2c9\"}.fa-thermometer-quarter:before{content:\"\\f2ca\"}.fa-thermometer-three-quarters:before{content:\"\\f2c8\"}.fa-think-peaks:before{content:\"\\f731\"}.fa-thumbs-down:before{content:\"\\f165\"}.fa-thumbs-up:before{content:\"\\f164\"}.fa-thumbtack:before{content:\"\\f08d\"}.fa-ticket-alt:before{content:\"\\f3ff\"}.fa-times:before{content:\"\\f00d\"}.fa-times-circle:before{content:\"\\f057\"}.fa-tint:before{content:\"\\f043\"}.fa-tint-slash:before{content:\"\\f5c7\"}.fa-tired:before{content:\"\\f5c8\"}.fa-toggle-off:before{content:\"\\f204\"}.fa-toggle-on:before{content:\"\\f205\"}.fa-toilet:before{content:\"\\f7d8\"}.fa-toilet-paper:before{content:\"\\f71e\"}.fa-toolbox:before{content:\"\\f552\"}.fa-tools:before{content:\"\\f7d9\"}.fa-tooth:before{content:\"\\f5c9\"}.fa-torah:before{content:\"\\f6a0\"}.fa-torii-gate:before{content:\"\\f6a1\"}.fa-tractor:before{content:\"\\f722\"}.fa-trade-federation:before{content:\"\\f513\"}.fa-trademark:before{content:\"\\f25c\"}.fa-traffic-light:before{content:\"\\f637\"}.fa-trailer:before{content:\"\\f941\"}.fa-train:before{content:\"\\f238\"}.fa-tram:before{content:\"\\f7da\"}.fa-transgender:before{content:\"\\f224\"}.fa-transgender-alt:before{content:\"\\f225\"}.fa-trash:before{content:\"\\f1f8\"}.fa-trash-alt:before{content:\"\\f2ed\"}.fa-trash-restore:before{content:\"\\f829\"}.fa-trash-restore-alt:before{content:\"\\f82a\"}.fa-tree:before{content:\"\\f1bb\"}.fa-trello:before{content:\"\\f181\"}.fa-tripadvisor:before{content:\"\\f262\"}.fa-trophy:before{content:\"\\f091\"}.fa-truck:before{content:\"\\f0d1\"}.fa-truck-loading:before{content:\"\\f4de\"}.fa-truck-monster:before{content:\"\\f63b\"}.fa-truck-moving:before{content:\"\\f4df\"}.fa-truck-pickup:before{content:\"\\f63c\"}.fa-tshirt:before{content:\"\\f553\"}.fa-tty:before{content:\"\\f1e4\"}.fa-tumblr:before{content:\"\\f173\"}.fa-tumblr-square:before{content:\"\\f174\"}.fa-tv:before{content:\"\\f26c\"}.fa-twitch:before{content:\"\\f1e8\"}.fa-twitter:before{content:\"\\f099\"}.fa-twitter-square:before{content:\"\\f081\"}.fa-typo3:before{content:\"\\f42b\"}.fa-uber:before{content:\"\\f402\"}.fa-ubuntu:before{content:\"\\f7df\"}.fa-uikit:before{content:\"\\f403\"}.fa-umbraco:before{content:\"\\f8e8\"}.fa-umbrella:before{content:\"\\f0e9\"}.fa-umbrella-beach:before{content:\"\\f5ca\"}.fa-underline:before{content:\"\\f0cd\"}.fa-undo:before{content:\"\\f0e2\"}.fa-undo-alt:before{content:\"\\f2ea\"}.fa-uniregistry:before{content:\"\\f404\"}.fa-unity:before{content:\"\\f949\"}.fa-universal-access:before{content:\"\\f29a\"}.fa-university:before{content:\"\\f19c\"}.fa-unlink:before{content:\"\\f127\"}.fa-unlock:before{content:\"\\f09c\"}.fa-unlock-alt:before{content:\"\\f13e\"}.fa-untappd:before{content:\"\\f405\"}.fa-upload:before{content:\"\\f093\"}.fa-ups:before{content:\"\\f7e0\"}.fa-usb:before{content:\"\\f287\"}.fa-user:before{content:\"\\f007\"}.fa-user-alt:before{content:\"\\f406\"}.fa-user-alt-slash:before{content:\"\\f4fa\"}.fa-user-astronaut:before{content:\"\\f4fb\"}.fa-user-check:before{content:\"\\f4fc\"}.fa-user-circle:before{content:\"\\f2bd\"}.fa-user-clock:before{content:\"\\f4fd\"}.fa-user-cog:before{content:\"\\f4fe\"}.fa-user-edit:before{content:\"\\f4ff\"}.fa-user-friends:before{content:\"\\f500\"}.fa-user-graduate:before{content:\"\\f501\"}.fa-user-injured:before{content:\"\\f728\"}.fa-user-lock:before{content:\"\\f502\"}.fa-user-md:before{content:\"\\f0f0\"}.fa-user-minus:before{content:\"\\f503\"}.fa-user-ninja:before{content:\"\\f504\"}.fa-user-nurse:before{content:\"\\f82f\"}.fa-user-plus:before{content:\"\\f234\"}.fa-user-secret:before{content:\"\\f21b\"}.fa-user-shield:before{content:\"\\f505\"}.fa-user-slash:before{content:\"\\f506\"}.fa-user-tag:before{content:\"\\f507\"}.fa-user-tie:before{content:\"\\f508\"}.fa-user-times:before{content:\"\\f235\"}.fa-users:before{content:\"\\f0c0\"}.fa-users-cog:before{content:\"\\f509\"}.fa-usps:before{content:\"\\f7e1\"}.fa-ussunnah:before{content:\"\\f407\"}.fa-utensil-spoon:before{content:\"\\f2e5\"}.fa-utensils:before{content:\"\\f2e7\"}.fa-vaadin:before{content:\"\\f408\"}.fa-vector-square:before{content:\"\\f5cb\"}.fa-venus:before{content:\"\\f221\"}.fa-venus-double:before{content:\"\\f226\"}.fa-venus-mars:before{content:\"\\f228\"}.fa-viacoin:before{content:\"\\f237\"}.fa-viadeo:before{content:\"\\f2a9\"}.fa-viadeo-square:before{content:\"\\f2aa\"}.fa-vial:before{content:\"\\f492\"}.fa-vials:before{content:\"\\f493\"}.fa-viber:before{content:\"\\f409\"}.fa-video:before{content:\"\\f03d\"}.fa-video-slash:before{content:\"\\f4e2\"}.fa-vihara:before{content:\"\\f6a7\"}.fa-vimeo:before{content:\"\\f40a\"}.fa-vimeo-square:before{content:\"\\f194\"}.fa-vimeo-v:before{content:\"\\f27d\"}.fa-vine:before{content:\"\\f1ca\"}.fa-vk:before{content:\"\\f189\"}.fa-vnv:before{content:\"\\f40b\"}.fa-voicemail:before{content:\"\\f897\"}.fa-volleyball-ball:before{content:\"\\f45f\"}.fa-volume-down:before{content:\"\\f027\"}.fa-volume-mute:before{content:\"\\f6a9\"}.fa-volume-off:before{content:\"\\f026\"}.fa-volume-up:before{content:\"\\f028\"}.fa-vote-yea:before{content:\"\\f772\"}.fa-vr-cardboard:before{content:\"\\f729\"}.fa-vuejs:before{content:\"\\f41f\"}.fa-walking:before{content:\"\\f554\"}.fa-wallet:before{content:\"\\f555\"}.fa-warehouse:before{content:\"\\f494\"}.fa-water:before{content:\"\\f773\"}.fa-wave-square:before{content:\"\\f83e\"}.fa-waze:before{content:\"\\f83f\"}.fa-weebly:before{content:\"\\f5cc\"}.fa-weibo:before{content:\"\\f18a\"}.fa-weight:before{content:\"\\f496\"}.fa-weight-hanging:before{content:\"\\f5cd\"}.fa-weixin:before{content:\"\\f1d7\"}.fa-whatsapp:before{content:\"\\f232\"}.fa-whatsapp-square:before{content:\"\\f40c\"}.fa-wheelchair:before{content:\"\\f193\"}.fa-whmcs:before{content:\"\\f40d\"}.fa-wifi:before{content:\"\\f1eb\"}.fa-wikipedia-w:before{content:\"\\f266\"}.fa-wind:before{content:\"\\f72e\"}.fa-window-close:before{content:\"\\f410\"}.fa-window-maximize:before{content:\"\\f2d0\"}.fa-window-minimize:before{content:\"\\f2d1\"}.fa-window-restore:before{content:\"\\f2d2\"}.fa-windows:before{content:\"\\f17a\"}.fa-wine-bottle:before{content:\"\\f72f\"}.fa-wine-glass:before{content:\"\\f4e3\"}.fa-wine-glass-alt:before{content:\"\\f5ce\"}.fa-wix:before{content:\"\\f5cf\"}.fa-wizards-of-the-coast:before{content:\"\\f730\"}.fa-wolf-pack-battalion:before{content:\"\\f514\"}.fa-won-sign:before{content:\"\\f159\"}.fa-wordpress:before{content:\"\\f19a\"}.fa-wordpress-simple:before{content:\"\\f411\"}.fa-wpbeginner:before{content:\"\\f297\"}.fa-wpexplorer:before{content:\"\\f2de\"}.fa-wpforms:before{content:\"\\f298\"}.fa-wpressr:before{content:\"\\f3e4\"}.fa-wrench:before{content:\"\\f0ad\"}.fa-x-ray:before{content:\"\\f497\"}.fa-xbox:before{content:\"\\f412\"}.fa-xing:before{content:\"\\f168\"}.fa-xing-square:before{content:\"\\f169\"}.fa-y-combinator:before{content:\"\\f23b\"}.fa-yahoo:before{content:\"\\f19e\"}.fa-yammer:before{content:\"\\f840\"}.fa-yandex:before{content:\"\\f413\"}.fa-yandex-international:before{content:\"\\f414\"}.fa-yarn:before{content:\"\\f7e3\"}.fa-yelp:before{content:\"\\f1e9\"}.fa-yen-sign:before{content:\"\\f157\"}.fa-yin-yang:before{content:\"\\f6ad\"}.fa-yoast:before{content:\"\\f2b1\"}.fa-youtube:before{content:\"\\f167\"}.fa-youtube-square:before{content:\"\\f431\"}.fa-zhihu:before{content:\"\\f63f\"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:Font Awesome\\ 5 Brands;font-style:normal;font-weight:400;font-display:auto;src:url(fa-brands-400.3825c40fd00d9bbb76b7.eot);src:url(fa-brands-400.3825c40fd00d9bbb76b7.eot?#iefix) format(\"embedded-opentype\"),url(fa-brands-400.9a01a31d6767f82529dc.woff2) format(\"woff2\"),url(fa-brands-400.e1c1a88e6228f902435e.woff) format(\"woff\"),url(fa-brands-400.1437eef49e3db661f92c.ttf) format(\"truetype\"),url(fa-brands-400.55faa7ef298ebafcc322.svg#fontawesome) format(\"svg\")}.fab{font-family:Font Awesome\\ 5 Brands}@font-face{font-family:Font Awesome\\ 5 Free;font-style:normal;font-weight:400;font-display:auto;src:url(fa-regular-400.eb99d5076e8ce45ccfa1.eot);src:url(fa-regular-400.eb99d5076e8ce45ccfa1.eot?#iefix) format(\"embedded-opentype\"),url(fa-regular-400.5fab4ed5c3745c12c7e1.woff2) format(\"woff2\"),url(fa-regular-400.acdccc059cdf7b4063e9.woff) format(\"woff\"),url(fa-regular-400.814c2c571f030686e71c.ttf) format(\"truetype\"),url(fa-regular-400.fa5f132deb163050a148.svg#fontawesome) format(\"svg\")}.fab,.far{font-weight:400}@font-face{font-family:Font Awesome\\ 5 Free;font-style:normal;font-weight:900;font-display:auto;src:url(fa-solid-900.a0b3c6d0d774520787d8.eot);src:url(fa-solid-900.a0b3c6d0d774520787d8.eot?#iefix) format(\"embedded-opentype\"),url(fa-solid-900.0f27e9b933cc50abbbba.woff2) format(\"woff2\"),url(fa-solid-900.afbdcbccd6861d9cdc38.woff) format(\"woff\"),url(fa-solid-900.8618686494a5c8092120.ttf) format(\"truetype\"),url(fa-solid-900.a84653d4fe0072d182b6.svg#fontawesome) format(\"svg\")}.fa,.far,.fas{font-family:Font Awesome\\ 5 Free}.fa,.fas{font-weight:900}"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('SportsStore app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/SportsStore'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/ngsw-config.json",
    "content": "    {\n    \"$schema\": \"./node_modules/@angular/service-worker/config/schema.json\",\n    \"index\": \"/index.html\",\n    \"assetGroups\": [\n        {\n        \"name\": \"app\",\n        \"installMode\": \"prefetch\",\n        \"resources\": {\n            \"files\": [\n            \"/favicon.ico\",\n            \"/index.html\",\n            \"/manifest.webmanifest\",\n            \"/*.css\",\n            \"/*.js\"\n            ]\n        }\n        }, {\n        \"name\": \"assets\",\n        \"installMode\": \"lazy\",\n        \"updateMode\": \"prefetch\",\n        \"resources\": {\n            \"files\": [\n            \"/assets/**\",\n            \"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)\",\n            \"/font/*\"\n            ]\n        }\n        }\n    ],\n    \"dataGroups\": [\n        {\n            \"name\": \"api-product\",\n            \"urls\": [\"/api/products\"],\n            \"cacheConfig\" : {\n                \"maxSize\": 100,\n                \"maxAge\": \"5d\"\n            }\n        }],\n        \"navigationUrls\": [\n        \"/**\"\n        ]\n    }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/package.json",
    "content": "{\n  \"name\": \"sports-store\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server data.js -p 3500 -m authMiddleware.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"@angular/service-worker\": \"~11.0.1\",\n    \"@fortawesome/fontawesome-free\": \"^5.12.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"connect-history-api-fallback\": \"^1.6.0\",\n    \"express\": \"^4.17.1\",\n    \"https\": \"^1.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"json-server\": \"^0.16.0\",\n    \"jsonwebtoken\": \"^8.5.1\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/server.js",
    "content": "const express = require(\"express\");\nconst https = require(\"https\");\nconst fs = require(\"fs\");\nconst history = require(\"connect-history-api-fallback\");\nconst jsonServer = require(\"json-server\");\nconst bodyParser = require('body-parser');\nconst auth = require(\"./authMiddleware\");\nconst router = jsonServer.router(\"serverdata.json\");\n\nconst enableHttps = false;\n\nconst ssloptions = {}\n\nif (enableHttps) {\n    ssloptions.cert =  fs.readFileSync(\"./ssl/sportsstore.crt\");\n    ssloptions.key = fs.readFileSync(\"./ssl/sportsstore.pem\");\n}\n\nconst app = express();\n\napp.use(bodyParser.json());\napp.use(auth);\napp.use(\"/api\", router);\napp.use(history());\napp.use(\"/\", express.static(\"./dist/SportsStore\"));\n\napp.listen(80,\n    () => console.log(\"HTTP Server running on port 80\"));\n\nif (enableHttps) {\n    https.createServer(ssloptions, app).listen(443,\n        () => console.log(\"HTTPS Server running on port 443\"));\n} else {\n    console.log(\"HTTPS disabled\")\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/serverdata.json",
    "content": "{\n  \"products\": [\n      { \"id\": 1, \"name\": \"Kayak\", \"category\": \"Watersports\",\n          \"description\": \"A boat for one person\", \"price\": 275 },\n      { \"id\": 2, \"name\": \"Lifejacket\", \"category\": \"Watersports\",\n          \"description\": \"Protective and fashionable\", \"price\": 48.95 },\n      { \"id\": 3, \"name\": \"Soccer Ball\", \"category\": \"Soccer\",\n          \"description\": \"FIFA-approved size and weight\", \"price\": 19.50 },\n      { \"id\": 4, \"name\": \"Corner Flags\", \"category\": \"Soccer\",\n          \"description\": \"Give your playing field a professional touch\",\n          \"price\": 34.95 },\n      { \"id\": 5, \"name\": \"Stadium\", \"category\": \"Soccer\",\n          \"description\": \"Flat-packed 35,000-seat stadium\", \"price\": 79500 },\n      { \"id\": 6, \"name\": \"Thinking Cap\", \"category\": \"Chess\",\n          \"description\": \"Improve brain efficiency by 75%\", \"price\": 16 },\n      { \"id\": 7, \"name\": \"Unsteady Chair\", \"category\": \"Chess\",\n          \"description\": \"Secretly give your opponent a disadvantage\",\n          \"price\": 29.95 },\n      { \"id\": 8, \"name\": \"Human Chess Board\", \"category\": \"Chess\",\n          \"description\": \"A fun game for the family\", \"price\": 75 },\n      { \"id\": 9, \"name\": \"Bling Bling King\", \"category\": \"Chess\",\n          \"description\": \"Gold-plated, diamond-studded King\", \"price\": 1200 }\n  ],\n  \"orders\": []\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/admin/admin.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n      <div class=\"col bg-dark text-white\">\n          <a class=\"navbar-brand\">SPORTS STORE</a>\n      </div>\n  </div>\n  <div class=\"row mt-2\">\n      <div class=\"col-3\">\n          <button class=\"btn btn-outline-info btn-block\"\n                  routerLink=\"/admin/main/products\"\n                  routerLinkActive=\"active\">\n              Products\n          </button>\n          <button class=\"btn btn-outline-info btn-block\"\n                  routerLink=\"/admin/main/orders\"\n                  routerLinkActive=\"active\">\n              Orders\n          </button>\n          <button class=\"btn btn-outline-danger btn-block\" (click)=\"logout()\">\n              Logout\n          </button>\n      </div>\n      <div class=\"col-9\">\n          <router-outlet></router-outlet>\n      </div>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/admin/admin.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Component({\n    templateUrl: \"admin.component.html\"\n})\nexport class AdminComponent {\n\n    constructor(private auth: AuthService,\n                private router: Router) { }\n\n    logout() {\n        this.auth.clear();\n        this.router.navigateByUrl(\"/\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/admin/admin.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { RouterModule } from \"@angular/router\";\nimport { AuthComponent } from \"./auth.component\";\nimport { AdminComponent } from \"./admin.component\";\nimport { AuthGuard } from \"./auth.guard\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductEditorComponent } from \"./productEditor.component\";\nimport { OrderTableComponent } from \"./orderTable.component\";\n\nlet routing = RouterModule.forChild([\n    { path: \"auth\", component: AuthComponent },\n    {\n        path: \"main\", component: AdminComponent, canActivate: [AuthGuard],\n        children: [\n            { path: \"products/:mode/:id\", component: ProductEditorComponent },\n            { path: \"products/:mode\", component: ProductEditorComponent },\n            { path: \"products\", component: ProductTableComponent },\n            { path: \"orders\", component: OrderTableComponent },\n            { path: \"**\", redirectTo: \"products\" }\n        ]\n    },\n    { path: \"**\", redirectTo: \"auth\" }\n]);\n\n@NgModule({\n    imports: [CommonModule, FormsModule, routing],\n    providers: [AuthGuard],\n    declarations: [AuthComponent, AdminComponent,\n        ProductTableComponent, ProductEditorComponent, OrderTableComponent]\n})\nexport class AdminModule {}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/admin/auth.component.html",
    "content": "<div class=\"bg-info p-2 text-center text-white\">\n  <h3>SportsStore Admin</h3>\n</div>\n<div class=\"bg-danger mt-2 p-2 text-center text-white\"\n     *ngIf=\"errorMessage != null\">\n  {{errorMessage}}\n</div>\n<div class=\"p-2\">\n  <form novalidate #form=\"ngForm\" (ngSubmit)=\"authenticate(form)\">\n    <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" name=\"username\"\n             [(ngModel)]=\"username\" required />\n    </div>\n    <div class=\"form-group\">\n      <label>Password</label>\n      <input class=\"form-control\" type=\"password\" name=\"password\"\n             [(ngModel)]=\"password\" required />\n    </div>\n    <div class=\"text-center\">\n      <button class=\"btn btn-secondary m-1\" routerLink=\"/\">Go back</button>\n      <button class=\"btn btn-primary m-1\" type=\"submit\">Log In</button>\n    </div>\n  </form>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/admin/auth.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Component({\n    templateUrl: \"auth.component.html\"\n})\nexport class AuthComponent {\n    public username: string;\n    public password: string;\n    public errorMessage: string;\n\n    constructor(private router: Router,\n                private auth: AuthService) { }\n\n    authenticate(form: NgForm) {\n        if (form.valid) {\n            this.auth.authenticate(this.username, this.password)\n                .subscribe(response => {\n                    if (response) {\n                        this.router.navigateByUrl(\"/admin/main\");\n                    }\n                    this.errorMessage = \"Authentication Failed\";\n                })\n        } else {\n            this.errorMessage = \"Form Data Invalid\";\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/admin/auth.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot,\n            Router } from \"@angular/router\";\nimport { AuthService } from \"../model/auth.service\";\n\n@Injectable()\nexport class AuthGuard {\n\n    constructor(private router: Router,\n                private auth: AuthService) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n\n        if (!this.auth.authenticated) {\n            this.router.navigateByUrl(\"/admin/auth\");\n            return false;\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/admin/orderTable.component.html",
    "content": "<div class=\"form-check\">\n  <label class=\"form-check-label\">\n  <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"includeShipped\"/>\n      Display Shipped Orders\n  </label>\n</div>\n<table class=\"table table-sm\">\n  <thead>\n      <tr><th>Name</th><th>Zip</th><th colspan=\"2\">Cart</th><th></th></tr>\n  </thead>\n  <tbody>\n      <tr *ngIf=\"getOrders().length == 0\">\n          <td colspan=\"5\">There are no orders</td>\n      </tr>\n      <ng-template ngFor let-o [ngForOf]=\"getOrders()\">\n          <tr>\n              <td>{{o.name}}</td><td>{{o.zip}}</td>\n              <th>Product</th><th>Quantity</th>\n              <td>\n                  <button class=\"btn btn-warning m-1\" (click)=\"markShipped(o)\">\n                      Ship\n                  </button>\n                  <button class=\"btn btn-danger\" (click)=\"delete(o.id)\">\n                      Delete\n                  </button>\n              </td>\n          </tr>\n          <tr *ngFor=\"let line of o.cart.lines\">\n              <td colspan=\"2\"></td>\n              <td>{{line.product.name}}</td>\n              <td>{{line.quantity}}</td>\n          </tr>\n      </ng-template>\n  </tbody>\n</table>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/admin/orderTable.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Order } from \"../model/order.model\";\nimport { OrderRepository } from \"../model/order.repository\";\n\n@Component({\n    templateUrl: \"orderTable.component.html\"\n})\nexport class OrderTableComponent {\n    includeShipped = false;\n\n    constructor(private repository: OrderRepository) {}\n\n    getOrders(): Order[] {\n        return this.repository.getOrders()\n            .filter(o => this.includeShipped || !o.shipped);\n    }\n\n    markShipped(order: Order) {\n        order.shipped = true;\n        this.repository.updateOrder(order);\n    }\n\n    delete(id: number) {\n        this.repository.deleteOrder(id);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/admin/productEditor.component.html",
    "content": "<div class=\"bg-primary p-2 text-white\" [class.bg-warning]=\"editing\"\n     [class.text-dark]=\"editing\">\n    <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"save(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\" name=\"name\" [(ngModel)]=\"product.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\" [(ngModel)]=\"product.category\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Description</label>\n        <textarea class=\"form-control\" name=\"description\"\n                  [(ngModel)]=\"product.description\">\n        </textarea>\n    </div>\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" [(ngModel)]=\"product.price\" />\n    </div>\n    <button type=\"submit\" class=\"btn btn-primary m-1\" [class.btn-warning]=\"editing\">\n        {{editing ? \"Save\" : \"Create\"}}\n    </button>\n    <button type=\"reset\" class=\"btn btn-secondary\" routerLink=\"/admin/main/products\">\n        Cancel\n    </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/admin/productEditor.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    templateUrl: \"productEditor.component.html\"\n})\nexport class ProductEditorComponent {\n    editing: boolean = false;\n    product: Product = new Product();\n\n    constructor(private repository: ProductRepository,\n                private router: Router,\n                activeRoute: ActivatedRoute) {\n\n        this.editing = activeRoute.snapshot.params[\"mode\"] == \"edit\";\n        if (this.editing) {\n            Object.assign(this.product,\n                repository.getProduct(activeRoute.snapshot.params[\"id\"]));\n        }\n    }\n\n    save(form: NgForm) {\n        this.repository.saveProduct(this.product);\n        this.router.navigateByUrl(\"/admin/main/products\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/admin/productTable.component.html",
    "content": "<table class=\"table table-sm table-striped\">\n  <thead>\n      <tr>\n          <th>ID</th><th>Name</th><th>Category</th><th>Price</th>\n          <th></th>\n      </tr>\n  </thead>\n  <tbody>\n      <tr *ngFor=\"let p of getProducts()\">\n          <td>{{p.id}}</td>\n          <td>{{p.name}}</td>\n          <td>{{p.category}}</td>\n          <td>{{p.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}</td>\n          <td>\n              <button class=\"btn btn-sm btn-warning m-1\"\n                      [routerLink]=\"['/admin/main/products/edit', p.id]\">\n                  Edit\n              </button>\n              <button class=\"btn btn-sm btn-danger\" (click)=\"deleteProduct(p.id)\">\n                  Delete\n              </button>\n          </td>\n      </tr>\n  </tbody>\n</table>\n<button class=\"btn btn-primary\" routerLink=\"/admin/main/products/create\">\n  Create New Product\n</button>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/admin/productTable.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\n\n@Component({\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n\n    constructor(private repository: ProductRepository) { }\n\n    getProducts(): Product[] {\n        return this.repository.getProducts();\n    }\n\n    deleteProduct(id: number) {\n        this.repository.deleteProduct(id);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    template: \"<router-outlet></router-outlet>\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { AppComponent } from \"./app.component\";\nimport { StoreModule } from \"./store/store.module\";\nimport { StoreComponent } from \"./store/store.component\";\nimport { CheckoutComponent } from \"./store/checkout.component\";\nimport { CartDetailComponent } from \"./store/cartDetail.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { StoreFirstGuard } from \"./storeFirst.guard\";\nimport { ServiceWorkerModule } from '@angular/service-worker';\nimport { environment } from '../environments/environment';\n\n@NgModule({\n    imports: [BrowserModule, StoreModule,\n        RouterModule.forRoot([\n            {\n                path: \"store\", component: StoreComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"cart\", component: CartDetailComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"checkout\", component: CheckoutComponent,\n                canActivate: [StoreFirstGuard]\n            },\n            {\n                path: \"admin\",\n                loadChildren: () => import(\"./admin/admin.module\")\n                    .then(m => m.AdminModule),\n                canActivate: [StoreFirstGuard]\n            },\n            { path: \"**\", redirectTo: \"/store\" }\n        ]),\n        ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production })],\n    providers: [StoreFirstGuard],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/model/auth.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class AuthService {\n\n    constructor(private datasource: RestDataSource) {}\n\n    authenticate(username: string, password: string): Observable<boolean> {\n        return this.datasource.authenticate(username, password);\n    }\n\n    get authenticated(): boolean {\n        return this.datasource.auth_token != null;\n    }\n\n    clear() {\n        this.datasource.auth_token = null;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/model/cart.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class Cart {\n    public lines: CartLine[] = [];\n    public itemCount: number = 0;\n    public cartPrice: number = 0;\n\n    addLine(product: Product, quantity: number = 1) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity += quantity;\n        } else {\n            this.lines.push(new CartLine(product, quantity));\n        }\n        this.recalculate();\n    }\n\n    updateQuantity(product: Product, quantity: number) {\n        let line = this.lines.find(line => line.product.id == product.id);\n        if (line != undefined) {\n            line.quantity = Number(quantity);\n        }\n        this.recalculate();\n    }\n\n    removeLine(id: number) {\n        let index = this.lines.findIndex(line => line.product.id == id);\n        this.lines.splice(index, 1);\n        this.recalculate();\n    }\n\n    clear() {\n        this.lines = [];\n        this.itemCount = 0;\n        this.cartPrice = 0;\n    }\n\n    private recalculate() {\n        this.itemCount = 0;\n        this.cartPrice = 0;\n        this.lines.forEach(l => {\n            this.itemCount += l.quantity;\n            this.cartPrice += (l.quantity * l.product.price);\n        })\n    }\n}\n\nexport class CartLine {\n\n    constructor(public product: Product,\n        public quantity: number) {}\n\n    get lineTotal() {\n        return this.quantity * this.product.price;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/model/connection.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable, Subject } from \"rxjs\";\n\n@Injectable()\nexport class ConnectionService {\n    private connEvents: Subject<boolean>;\n\n    constructor() {\n        this.connEvents = new Subject<boolean>();\n        window.addEventListener(\"online\",\n            (e) => this.handleConnectionChange(e));\n        window.addEventListener(\"offline\",\n            (e) => this.handleConnectionChange(e));\n    }\n\n    private handleConnectionChange(event) {\n        this.connEvents.next(this.connected);\n    }\n\n    get connected() : boolean {\n        return window.navigator.onLine;\n    }\n\n    get Changes(): Observable<boolean> {\n        return this.connEvents;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { ProductRepository } from \"./product.repository\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { OrderRepository } from \"./order.repository\";\nimport { RestDataSource } from \"./rest.datasource\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { AuthService } from \"./auth.service\";\nimport { ConnectionService } from \"./connection.service\";\n\n@NgModule({\n  imports: [HttpClientModule],\n  providers: [ProductRepository, Cart, Order, OrderRepository,\n    { provide: StaticDataSource, useClass: RestDataSource },\n    RestDataSource, AuthService, ConnectionService]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/model/order.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Cart } from \"./cart.model\";\n\n@Injectable()\nexport class Order {\n    public id: number;\n    public name: string;\n    public address: string;\n    public city: string;\n    public state: string;\n    public zip: string;\n    public country: string;\n    public shipped: boolean = false;\n\n    constructor(public cart: Cart) { }\n\n    clear() {\n        this.id = null;\n        this.name = this.address = this.city = null;\n        this.state = this.zip = this.country = null;\n        this.shipped = false;\n        this.cart.clear();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/model/order.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { Order } from \"./order.model\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class OrderRepository {\n    private orders: Order[] = [];\n    private loaded: boolean = false;\n\n    constructor(private dataSource: RestDataSource) { }\n\n    loadOrders() {\n        this.loaded = true;\n        this.dataSource.getOrders()\n            .subscribe(orders => this.orders = orders);\n    }\n\n    getOrders(): Order[] {\n        if (!this.loaded) {\n            this.loadOrders();\n        }\n        return this.orders;\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.dataSource.saveOrder(order);\n    }\n\n    updateOrder(order: Order) {\n        this.dataSource.updateOrder(order).subscribe(order => {\n            this.orders.splice(this.orders.\n                findIndex(o => o.id == order.id), 1, order);\n        });\n    }\n\n    deleteOrder(id: number) {\n        this.dataSource.deleteOrder(id).subscribe(order => {\n            this.orders.splice(this.orders.findIndex(o => id == o.id), 1);\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/model/product.model.ts",
    "content": "export class Product {\n\n  constructor(\n      public id?: number,\n      public name?: string,\n      public category?: string,\n      public description?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/model/product.repository.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class ProductRepository {\n    private products: Product[] = [];\n    private categories: string[] = [];\n\n    constructor(private dataSource: RestDataSource) {\n        dataSource.getProducts().subscribe(data => {\n            this.products = data;\n            this.categories = data.map(p => p.category)\n                .filter((c, index, array) => array.indexOf(c) == index).sort();\n        });\n    }\n\n    getProducts(category: string = null): Product[] {\n        return this.products\n            .filter(p => category == null || category == p.category);\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => p.id == id);\n    }\n\n    getCategories(): string[] {\n        return this.categories;\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == null || product.id == 0) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product)\n                .subscribe(p => {\n                    this.products.splice(this.products.\n                        findIndex(p => p.id == product.id), 1, product);\n                });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(p => {\n            this.products.splice(this.products.\n                findIndex(p => p.id == id), 1);\n        })\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/model/rest.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { Cart } from \"./cart.model\";\nimport { Order } from \"./order.model\";\nimport { map } from \"rxjs/operators\";\nimport { HttpHeaders } from '@angular/common/http';\n\nconst PROTOCOL = \"http\";\nconst PORT = 3500;\n\n@Injectable()\nexport class RestDataSource {\n    baseUrl: string;\n    auth_token: string;\n\n    constructor(private http: HttpClient) {\n        //this.baseUrl = `${PROTOCOL}://${location.hostname}:${PORT}/`;\n        this.baseUrl = \"/api/\"\n    }\n\n    getProducts(): Observable<Product[]> {\n        return this.http.get<Product[]>(this.baseUrl + \"products\");\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        return this.http.post<Order>(this.baseUrl + \"orders\", order);\n    }\n\n    authenticate(user: string, pass: string): Observable<boolean> {\n        return this.http.post<any>(this.baseUrl + \"login\", {\n            name: user, password: pass\n        }).pipe(map(response => {\n            this.auth_token = response.success ? response.token : null;\n            return response.success;\n        }));\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.http.post<Product>(this.baseUrl + \"products\",\n            product, this.getOptions());\n    }\n\n    updateProduct(product): Observable<Product> {\n        return this.http.put<Product>(`${this.baseUrl}products/${product.id}`,\n            product, this.getOptions());\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.http.delete<Product>(`${this.baseUrl}products/${id}`,\n            this.getOptions());\n    }\n\n    getOrders(): Observable<Order[]> {\n        return this.http.get<Order[]>(this.baseUrl + \"orders\", this.getOptions());\n    }\n\n    deleteOrder(id: number): Observable<Order> {\n        return this.http.delete<Order>(`${this.baseUrl}orders/${id}`,\n            this.getOptions());\n    }\n\n    updateOrder(order: Order): Observable<Order> {\n        return this.http.put<Order>(`${this.baseUrl}orders/${order.id}`,\n            order, this.getOptions());\n    }\n\n    private getOptions() {\n        return {\n            headers: new HttpHeaders({\n                \"Authorization\": `Bearer<${this.auth_token}>`\n            })\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable, from } from \"rxjs\";\nimport { Order } from \"./order.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private products: Product[] = [\n        new Product(1, \"Product 1\", \"Category 1\", \"Product 1 (Category 1)\", 100),\n        new Product(2, \"Product 2\", \"Category 1\", \"Product 2 (Category 1)\", 100),\n        new Product(3, \"Product 3\", \"Category 1\", \"Product 3 (Category 1)\", 100),\n        new Product(4, \"Product 4\", \"Category 1\", \"Product 4 (Category 1)\", 100),\n        new Product(5, \"Product 5\", \"Category 1\", \"Product 5 (Category 1)\", 100),\n        new Product(6, \"Product 6\", \"Category 2\", \"Product 6 (Category 2)\", 100),\n        new Product(7, \"Product 7\", \"Category 2\", \"Product 7 (Category 2)\", 100),\n        new Product(8, \"Product 8\", \"Category 2\", \"Product 8 (Category 2)\", 100),\n        new Product(9, \"Product 9\", \"Category 2\", \"Product 9 (Category 2)\", 100),\n        new Product(10, \"Product 10\", \"Category 2\", \"Product 10 (Category 2)\", 100),\n        new Product(11, \"Product 11\", \"Category 3\", \"Product 11 (Category 3)\", 100),\n        new Product(12, \"Product 12\", \"Category 3\", \"Product 12 (Category 3)\", 100),\n        new Product(13, \"Product 13\", \"Category 3\", \"Product 13 (Category 3)\", 100),\n        new Product(14, \"Product 14\", \"Category 3\", \"Product 14 (Category 3)\", 100),\n        new Product(15, \"Product 15\", \"Category 3\", \"Product 15 (Category 3)\", 100),\n    ];\n\n    getProducts(): Observable<Product[]> {\n        return from([this.products]);\n    }\n\n    saveOrder(order: Order): Observable<Order> {\n        console.log(JSON.stringify(order));\n        return from([order]);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/store/cartDetail.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col bg-dark text-white\">\n      <a class=\"navbar-brand\">SPORTS STORE</a>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"col mt-2\">\n      <h2 class=\"text-center\">Your Cart</h2>\n      <table class=\"table table-bordered table-striped p-2\">\n        <thead>\n          <tr>\n            <th>Quantity</th>\n            <th>Product</th>\n            <th class=\"text-right\">Price</th>\n            <th class=\"text-right\">Subtotal</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr *ngIf=\"cart.lines.length == 0\">\n            <td colspan=\"4\" class=\"text-center\">\n              Your cart is empty\n            </td>\n          </tr>\n          <tr *ngFor=\"let line of cart.lines\">\n            <td>\n              <input type=\"number\" class=\"form-control-sm\"\n                     style=\"width:5em\"\n                     [value]=\"line.quantity\"\n                     (change)=\"cart.updateQuantity(line.product,\n                                $event.target.value)\" />\n            </td>\n            <td>{{line.product.name}}</td>\n            <td class=\"text-right\">\n                {{line.product.price | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n            </td>\n            <td class=\"text-right\">\n                {{(line.lineTotal) | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n            </td>\n            <td class=\"text-center\">\n              <button class=\"btn btn-sm btn-danger\"\n                      (click)=\"cart.removeLine(line.product.id)\">\n                Remove\n              </button>\n            </td>\n          </tr>\n        </tbody>\n        <tfoot>\n          <tr>\n            <td colspan=\"3\" class=\"text-right\">Total:</td>\n            <td class=\"text-right\">\n              {{cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\"}}\n            </td>\n          </tr>\n        </tfoot>\n      </table>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"col\">\n    <div class=\"text-center\">\n      <button class=\"btn btn-primary m-1\" routerLink=\"/store\">\n          Continue Shopping\n      </button>\n      <button class=\"btn btn-secondary m-1\" routerLink=\"/checkout\"\n          [disabled]=\"cart.lines.length == 0 || !connected\">\n        {{  connected ?  'Checkout' : 'Offline' }}\n      </button>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/store/cartDetail.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\nimport { ConnectionService } from \"../model/connection.service\";\n\n@Component({\n    templateUrl: \"cartDetail.component.html\"\n})\nexport class CartDetailComponent {\n    public connected: boolean = true;\n\n    constructor(public cart: Cart, private connection: ConnectionService) {\n        this.connected = this.connection.connected;\n        connection.Changes.subscribe((state) => this.connected = state);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/store/cartSummary.component.html",
    "content": "<div class=\"float-right\">\n  <small>\n    Your cart:\n    <span *ngIf=\"cart.itemCount > 0\">\n      {{ cart.itemCount }} item(s)\n      {{ cart.cartPrice | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n    </span>\n    <span *ngIf=\"cart.itemCount == 0\">\n      (empty)\n    </span>\n  </small>\n  <button class=\"btn btn-sm bg-dark text-white\"\n      [disabled]=\"cart.itemCount == 0\" routerLink=\"/cart\">\n    <i class=\"fa fa-shopping-cart\"></i>\n  </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/store/cartSummary.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Cart } from \"../model/cart.model\";\n\n@Component({\n    selector: \"cart-summary\",\n    templateUrl: \"cartSummary.component.html\"\n})\nexport class CartSummaryComponent {\n\n    constructor(public cart: Cart) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/store/checkout.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/store/checkout.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col bg-dark text-white\">\n      <a class=\"navbar-brand\">SPORTS STORE</a>\n    </div>\n  </div>\n</div>\n\n<div *ngIf=\"orderSent\" class=\"m-2 text-center\">\n  <h2>Thanks!</h2>\n  <p>Thanks for placing your order.</p>\n  <p>We'll ship your goods as soon as possible.</p>\n  <button class=\"btn btn-primary\" routerLink=\"/store\">Return to Store</button>\n</div>\n<form *ngIf=\"!orderSent\" #form=\"ngForm\" novalidate\n      (ngSubmit)=\"submitOrder(form)\" class=\"m-2\">\n  <div class=\"form-group\">\n    <label>Name</label>\n    <input class=\"form-control\" #name=\"ngModel\" name=\"name\"\n            [(ngModel)]=\"order.name\" required />\n    <span *ngIf=\"submitted && name.invalid\" class=\"text-danger\">\n      Please enter your name\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>Address</label>\n    <input class=\"form-control\" #address=\"ngModel\" name=\"address\"\n            [(ngModel)]=\"order.address\" required />\n    <span *ngIf=\"submitted && address.invalid\" class=\"text-danger\">\n      Please enter your address\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>City</label>\n    <input class=\"form-control\" #city=\"ngModel\" name=\"city\"\n            [(ngModel)]=\"order.city\" required />\n    <span *ngIf=\"submitted && city.invalid\" class=\"text-danger\">\n      Please enter your city\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>State</label>\n    <input class=\"form-control\" #state=\"ngModel\" name=\"state\"\n            [(ngModel)]=\"order.state\" required />\n    <span *ngIf=\"submitted && state.invalid\" class=\"text-danger\">\n      Please enter your state\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>Zip/Postal Code</label>\n    <input class=\"form-control\" #zip=\"ngModel\" name=\"zip\"\n            [(ngModel)]=\"order.zip\" required />\n    <span *ngIf=\"submitted && zip.invalid\" class=\"text-danger\">\n      Please enter your zip/postal code\n    </span>\n  </div>\n  <div class=\"form-group\">\n    <label>Country</label>\n    <input class=\"form-control\" #country=\"ngModel\" name=\"country\"\n            [(ngModel)]=\"order.country\" required />\n    <span *ngIf=\"submitted && country.invalid\" class=\"text-danger\">\n      Please enter your country\n    </span>\n  </div>\n  <div class=\"text-center\">\n    <button class=\"btn btn-secondary m-1\" routerLink=\"/cart\">Back</button>\n    <button class=\"btn btn-primary m-1\" type=\"submit\">Complete Order</button>\n  </div>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/store/checkout.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { OrderRepository } from \"../model/order.repository\";\nimport { Order } from \"../model/order.model\";\n\n@Component({\n    templateUrl: \"checkout.component.html\",\n    styleUrls: [\"checkout.component.css\"]\n})\nexport class CheckoutComponent {\n    orderSent: boolean = false;\n    submitted: boolean = false;\n\n    constructor(public repository: OrderRepository,\n                public order: Order) {}\n\n    submitOrder(form: NgForm) {\n        this.submitted = true;\n        if (form.valid) {\n            this.repository.saveOrder(this.order).subscribe(order => {\n                this.order.clear();\n                this.orderSent = true;\n                this.submitted = false;\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/store/counter.directive.ts",
    "content": "import {\n  Directive, ViewContainerRef, TemplateRef, Input, Attribute, SimpleChanges\n} from \"@angular/core\";\n\n@Directive({\n  selector: \"[counterOf]\"\n})\nexport class CounterDirective {\n\n  constructor(private container: ViewContainerRef,\n      private template: TemplateRef<Object>) {\n  }\n\n  @Input(\"counterOf\")\n  counter: number;\n\n  ngOnChanges(changes: SimpleChanges) {\n      this.container.clear();\n      for (let i = 0; i < this.counter; i++) {\n          this.container.createEmbeddedView(this.template,\n              new CounterDirectiveContext(i + 1));\n      }\n  }\n}\n\nclass CounterDirectiveContext {\n  constructor(public $implicit: any) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/store/serverdata.json",
    "content": "{\n  \"products\": [\n      { \"id\": 1, \"name\": \"Kayak\", \"category\": \"Watersports\",\n          \"description\": \"A boat for one person\", \"price\": 275 },\n      { \"id\": 2, \"name\": \"Lifejacket\", \"category\": \"Watersports\",\n          \"description\": \"Protective and fashionable\", \"price\": 48.95 },\n      { \"id\": 3, \"name\": \"Soccer Ball\", \"category\": \"Soccer\",\n          \"description\": \"FIFA-approved size and weight\", \"price\": 19.50 },\n      { \"id\": 4, \"name\": \"Corner Flags\", \"category\": \"Soccer\",\n          \"description\": \"Give your playing field a professional touch\",\n          \"price\": 34.95 },\n      { \"id\": 5, \"name\": \"Stadium\", \"category\": \"Soccer\",\n          \"description\": \"Flat-packed 35,000-seat stadium\", \"price\": 79500 },\n      { \"id\": 6, \"name\": \"Thinking Cap\", \"category\": \"Chess\",\n          \"description\": \"Improve brain efficiency by 75%\", \"price\": 16 },\n      { \"id\": 7, \"name\": \"Unsteady Chair\", \"category\": \"Chess\",\n          \"description\": \"Secretly give your opponent a disadvantage\",\n          \"price\": 29.95 },\n      { \"id\": 8, \"name\": \"Human Chess Board\", \"category\": \"Chess\",\n          \"description\": \"A fun game for the family\", \"price\": 75 },\n      { \"id\": 9, \"name\": \"Bling Bling King\", \"category\": \"Chess\",\n          \"description\": \"Gold-plated, diamond-studded King\", \"price\": 1200 }\n  ],\n  \"orders\": []\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/store/store.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n    <div class=\"col bg-dark text-white\">\n      <a class=\"navbar-brand\">SPORTS STORE</a>\n      <cart-summary></cart-summary>\n    </div>\n  </div>\n  <div class=\"row\">\n\n    <div class=\"col-3 p-2\">\n      <button class=\"btn btn-block btn-outline-primary\" (click)=\"changeCategory()\">\n        Home\n      </button>\n      <button *ngFor=\"let cat of categories\"\n          class=\"btn btn-outline-primary btn-block\"\n          [class.active]=\"cat == selectedCategory\" (click)=\"changeCategory(cat)\">\n        {{cat}}\n      </button>\n      <button class=\"btn btn-block btn-danger mt-5\" routerLink=\"/admin\">\n        Admin\n      </button>\n    </div>\n\n    <div class=\"col-9 p-2\">\n      <div *ngFor=\"let product of products\" class=\"card m-1 p-1 bg-light\">\n        <h4>\n          {{product.name}}\n          <span class=\"badge badge-pill badge-primary float-right\">\n            {{ product.price | currency:\"USD\":\"symbol\":\"2.2-2\" }}\n          </span>\n        </h4>\n        <div class=\"card-text bg-white p-1\">\n          {{product.description}}\n          <button class=\"btn btn-success btn-sm float-right\"\n                  (click)=\"addProductToCart(product)\">\n            Add To Cart\n          </button>\n        </div>\n      </div>\n\n      <div class=\"form-inline float-left mr-1\">\n        <select class=\"form-control\" [value]=\"productsPerPage\"\n                (change)=\"changePageSize($event.target.value)\">\n          <option value=\"3\">3 per Page</option>\n          <option value=\"4\">4 per Page</option>\n          <option value=\"6\">6 per Page</option>\n          <option value=\"8\">8 per Page</option>\n        </select>\n      </div>\n\n      <div class=\"btn-group float-right\">\n        <button *counter=\"let page of pageCount\" (click)=\"changePage(page)\"\n            class=\"btn btn-outline-primary\" [class.active]=\"page == selectedPage\">\n          {{page}}\n        </button>\n      </div>\n\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/store/store.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { ProductRepository } from \"../model/product.repository\";\nimport { Cart } from \"../model/cart.model\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n    selector: \"store\",\n    templateUrl: \"store.component.html\"\n})\nexport class StoreComponent {\n    public selectedCategory = null;\n    public productsPerPage = 4;\n    public selectedPage = 1;\n\n    constructor(private repository: ProductRepository,\n        private cart: Cart,\n        private router: Router) { }\n\n    get products(): Product[] {\n        let pageIndex = (this.selectedPage - 1) * this.productsPerPage\n        return this.repository.getProducts(this.selectedCategory)\n            .slice(pageIndex, pageIndex + this.productsPerPage);\n    }\n\n    get categories(): string[] {\n        return this.repository.getCategories();\n    }\n\n    changeCategory(newCategory?: string) {\n        this.selectedCategory = newCategory;\n    }\n\n    changePage(newPage: number) {\n        this.selectedPage = newPage;\n    }\n\n    changePageSize(newSize: number) {\n        this.productsPerPage = Number(newSize);\n        this.changePage(1);\n    }\n\n    get pageCount(): number {\n        return Math.ceil(this.repository\n            .getProducts(this.selectedCategory).length / this.productsPerPage)\n    }\n\n    addProductToCart(product: Product) {\n        this.cart.addLine(product);\n        this.router.navigateByUrl(\"/cart\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/store/store.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { StoreComponent } from \"./store.component\";\nimport { CounterDirective } from \"./counter.directive\";\nimport { CartSummaryComponent } from \"./cartSummary.component\";\nimport { CartDetailComponent } from \"./cartDetail.component\";\nimport { CheckoutComponent } from \"./checkout.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [ModelModule, BrowserModule, FormsModule, RouterModule],\n    declarations: [StoreComponent, CounterDirective, CartSummaryComponent,\n        CartDetailComponent, CheckoutComponent],\n    exports: [StoreComponent, CartDetailComponent, CheckoutComponent]\n})\nexport class StoreModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/app/storeFirst.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { StoreComponent } from \"./store/store.component\";\n\n@Injectable()\nexport class StoreFirstGuard {\n    private firstNavigation = true;\n\n    constructor(private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n        if (this.firstNavigation) {\n            this.firstNavigation = false;\n            if (route.component != StoreComponent) {\n                this.router.navigateByUrl(\"/\");\n                return false;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>SportsStore</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n  <link rel=\"manifest\" href=\"manifest.webmanifest\">\n  <meta name=\"theme-color\" content=\"#1976d2\">\n</head>\n<body class=\"m-2\">\n  <app>SportsStore Will Go Here</app>\n  <noscript>Please enable JavaScript to continue using this application.</noscript>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.log(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/manifest.webmanifest",
    "content": "{\n  \"name\": \"SportsStore\",\n  \"short_name\": \"SportsStore\",\n  \"theme_color\": \"#1976d2\",\n  \"background_color\": \"#fafafa\",\n  \"display\": \"standalone\",\n  \"scope\": \"./\",\n  \"start_url\": \"./\",\n  \"icons\": [\n    {\n      \"src\": \"assets/icons/icon-72x72.png\",\n      \"sizes\": \"72x72\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-96x96.png\",\n      \"sizes\": \"96x96\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-128x128.png\",\n      \"sizes\": \"128x128\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-144x144.png\",\n      \"sizes\": \"144x144\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-152x152.png\",\n      \"sizes\": \"152x152\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-192x192.png\",\n      \"sizes\": \"192x192\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-384x384.png\",\n      \"sizes\": \"384x384\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    },\n    {\n      \"src\": \"assets/icons/icon-512x512.png\",\n      \"sizes\": \"512x512\",\n      \"type\": \"image/png\",\n      \"purpose\": \"maskable any\"\n    }\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 10/SportsStore/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncss-loader\nMIT\nCopyright JS Foundation and other contributors\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2020 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.51422a5c94b8290ff190.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime.359d5ee4682f20e936e9.js\" defer></script><script src=\"polyfills.bf99d438b005d57b2b31.js\" defer></script><script src=\"main.f78bdaa2683ef468e3b3.js\" defer></script></body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/dist/example/main.f78bdaa2683ef468e3b3.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(t,e,n){t.exports=n(\"zUnb\")},zUnb:function(t,e,n){\"use strict\";function r(t){return\"function\"==typeof t}n.r(e);let s=!1;const o={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else s&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");s=t},get useDeprecatedSynchronousErrorHandling(){return s}};function i(t){setTimeout(()=>{throw t},0)}const l={closed:!0,next(t){},error(t){if(o.useDeprecatedSynchronousErrorHandling)throw t;i(t)},complete(){}},u=(()=>Array.isArray||(t=>t&&\"number\"==typeof t.length))();function c(t){return null!==t&&\"object\"==typeof t}const a=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();let h=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:s,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(r(o)){s&&(this._unsubscribe=void 0);try{o.call(this)}catch(l){e=l instanceof a?d(l.errors):[l]}}if(u(i)){let t=-1,n=i.length;for(;++t<n;){const n=i[t];if(c(n))try{n.unsubscribe()}catch(l){e=e||[],l instanceof a?e=e.concat(d(l.errors)):e.push(l)}}}if(e)throw new a(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case\"function\":n=new t(e);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error(\"unrecognized teardown \"+e+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof t){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const s=this._subscriptions;return null===s?this._subscriptions=[n]:s.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}return t.EMPTY=function(t){return t.closed=!0,t}(new t),t})();function d(t){return t.reduce((t,e)=>t.concat(e instanceof a?e.errors:e),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!t){this.destination=l;break}if(\"object\"==typeof t){t instanceof p?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,t,e,n)}}[f](){return this}static create(t,e,n){const r=new p(t,e,n);return r.syncErrorThrowable=!1,r}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class _ extends p{constructor(t,e,n,s){let o;super(),this._parentSubscriber=t;let i=this;r(e)?o=e:e&&(o=e.next,n=e.error,s=e.complete,e!==l&&(i=Object.create(e),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=o,this._error=n,this._complete=s}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;o.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:n}=o;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):i(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;i(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);o.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),o.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(t,e,n){if(!o.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{e.call(this._context,n)}catch(r){return o.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=r,t.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const y=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function m(t){return t}let g=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:r}=this,s=function(t,e,n){if(t){if(t instanceof p)return t;if(t[f])return t[f]()}return t||e||n?new p(t,e,n):new p(l)}(t,e,n);if(s.add(r?r.call(s,this.source):this.source||o.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),o.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(t){try{return this._subscribe(t)}catch(e){o.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof p?n:null}return!0}(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=v(e))((e,n)=>{let r;r=this.subscribe(e=>{try{t(e)}catch(s){n(s),r&&r.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[y](){return this}pipe(...t){return 0===t.length?this:(0===(e=t).length?m:1===e.length?e[0]:function(t){return e.reduce((t,e)=>e(t),t)})(this);var e}toPromise(t){return new(t=v(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function v(t){if(t||(t=o.Promise||Promise),!t)throw new Error(\"no Promise impl found\");return t}const b=(()=>{function t(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return t.prototype=Object.create(Error.prototype),t})();class w extends h{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}class C extends p{constructor(t){super(t),this.destination=t}}let E=(()=>{class t extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(t){const e=new x(this,this);return e.operator=t,e}next(t){if(this.closed)throw new b;if(!this.isStopped){const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].next(t)}}error(t){if(this.closed)throw new b;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].error(t);this.observers.length=0}complete(){if(this.closed)throw new b;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let r=0;r<e;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new b;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new b;return this.hasError?(t.error(this.thrownError),h.EMPTY):this.isStopped?(t.complete(),h.EMPTY):(this.observers.push(t),new w(this,t))}asObservable(){const t=new g;return t.source=this,t}}return t.create=(t,e)=>new x(t,e),t})();class x extends E{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):h.EMPTY}}class k{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new T(t,this.project,this.thisArg))}}class T extends p{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}const S=t=>e=>{for(let n=0,r=t.length;n<r&&!e.closed;n++)e.next(t[n]);e.complete()};function I(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const A=I();const O=t=>{if(t&&\"function\"==typeof t[y])return o=t,t=>{const e=o[y]();if(\"function\"!=typeof e.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return e.subscribe(t)};if((e=t)&&\"number\"==typeof e.length&&\"function\"!=typeof e)return S(t);var e,n,r,s,o;if((n=t)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return s=t,t=>(s.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,i),t);if(t&&\"function\"==typeof t[A])return r=t,t=>{const e=r[A]();for(;;){let r;try{r=e.next()}catch(n){return t.error(n),t}if(r.done){t.complete();break}if(t.next(r.value),t.closed)break}return\"function\"==typeof e.return&&t.add(()=>{e.return&&e.return()}),t};{const e=c(t)?\"an invalid object\":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`)}};class D extends p{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class j extends p{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function H(t,e,n=Number.POSITIVE_INFINITY){return\"function\"==typeof e?r=>r.pipe(H((n,r)=>{return(s=t(n,r),s instanceof g?s:new g(O(s))).pipe(function(t,e){return function(e){return e.lift(new k(t,void 0))}}((t,s)=>e(n,t,r,s)));var s},n)):(\"number\"==typeof e&&(n=e),e=>e.lift(new N(t,n)))}class N{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new P(t,this.project,this.concurrent))}}class P extends j{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e)}_innerSub(t){const e=new D(this),n=this.destination;n.add(e);const r=function(t,e){if(!e.closed)return t instanceof g?t.subscribe(e):O(t)(e)}(t,e);r!==e&&n.add(r)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t){this.destination.next(t)}notifyComplete(){const t=this.buffer;this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function R(){return function(t){return t.lift(new M(t))}}class M{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const r=new F(t,n),s=e.subscribe(r);return r.closed||(r.connection=n.connect()),s}}class F extends p{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:n}=this,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new h,t.add(this.source.subscribe(new B(this.getSubject(),this))),t.closed&&(this._connection=null,t=h.EMPTY)),t}refCount(){return R()(this)}}const L=(()=>{const t=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class B extends C{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}function Z(){return new E}function z(t){return{toString:t}.toString()}const $=\"__parameters__\";function U(t,e,n){return z(()=>{const r=function(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}(e);function s(...t){if(this instanceof s)return r.apply(this,t),this;const e=new s(...t);return n.annotation=e,n;function n(t,n,r){const s=t.hasOwnProperty($)?t[$]:Object.defineProperty(t,$,{value:[]})[$];for(;s.length<=r;)s.push(null);return(s[r]=s[r]||[]).push(e),t}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s})}const W=U(\"Inject\",t=>({token:t})),q=U(\"Optional\"),Q=U(\"Self\"),G=U(\"SkipSelf\");function J(t){if(\"string\"==typeof t)return t;if(Array.isArray(t))return\"[\"+t.map(J).join(\", \")+\"]\";if(null==t)return\"\"+t;if(t.overriddenName)return\"\"+t.overriddenName;if(t.name)return\"\"+t.name;const e=t.toString();if(null==e)return\"\"+e;const n=e.indexOf(\"\\n\");return-1===n?e:e.substring(0,n)}function K(t,e){return null==t||\"\"===t?null===e?\"\":e:null==e||\"\"===e?t:t+\" \"+e}function Y(t){for(let e in t)if(t[e]===Y)return e;throw Error(\"Could not find renamed property on target object.\")}function X(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function tt(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function et(t){return nt(t,st)||nt(t,it)}function nt(t,e){return t.hasOwnProperty(e)?t[e]:null}function rt(t){return t&&(t.hasOwnProperty(ot)||t.hasOwnProperty(lt))?t[ot]:null}const st=Y({\"\\u0275prov\":Y}),ot=Y({\"\\u0275inj\":Y}),it=Y({ngInjectableDef:Y}),lt=Y({ngInjectorDef:Y});class ut{constructor(t,e){this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\\u0275prov=X({token:this,providedIn:e.providedIn||\"root\",factory:e.factory}))}toString(){return\"InjectionToken \"+this._desc}}var ct=function(t){return t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\",t}({});const at=\"undefined\"!=typeof globalThis&&globalThis,ht=\"undefined\"!=typeof window&&window,dt=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,ft=\"undefined\"!=typeof global&&global,pt=at||ft||ht||dt,_t=Y({__forward_ref__:Y});function yt(t){return t.__forward_ref__=yt,t.toString=function(){return J(this())},t}function mt(t){return\"function\"==typeof(e=t)&&e.hasOwnProperty(_t)&&e.__forward_ref__===yt?t():t;var e}function gt(t,e){t.forEach(t=>Array.isArray(t)?gt(t,e):e(t))}var vt=function(t){return t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\",t}({});const bt={},wt=[],Ct=Y({\"\\u0275cmp\":Y}),Et=Y({\"\\u0275dir\":Y}),xt=Y({\"\\u0275pipe\":Y}),kt=Y({\"\\u0275mod\":Y}),Tt=Y({\"\\u0275loc\":Y}),St=Y({\"\\u0275fac\":Y}),It=Y({__NG_ELEMENT_ID__:Y});let At=0;function Ot(t){return Pt(t)||function(t){return t[Et]||null}(t)}function Dt(t){return function(t){return t[xt]||null}(t)}const jt={};function Ht(t){const e={type:t.type,bootstrap:t.bootstrap||wt,declarations:t.declarations||wt,imports:t.imports||wt,exports:t.exports||wt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&z(()=>{jt[t.id]=t.type}),e}function Nt(t,e){if(null==t)return bt;const n={};for(const r in t)if(t.hasOwnProperty(r)){let s=t[r],o=s;Array.isArray(s)&&(o=s[1],s=s[0]),n[s]=r,e&&(e[s]=o)}return n}function Pt(t){return t[Ct]||null}function Rt(t,e){const n=t[kt]||null;if(!n&&!0===e)throw new Error(`Type ${J(t)} does not have '\\u0275mod' property.`);return n}function Mt(t){return\"function\"==typeof t?t.name||t.toString():\"object\"==typeof t&&null!=t&&\"function\"==typeof t.type?t.type.name||t.type.toString():function(t){return\"string\"==typeof t?t:null==t?\"\":\"\"+t}(t)}var Ft=function(t){return t[t.Default=0]=\"Default\",t[t.Host=1]=\"Host\",t[t.Self=2]=\"Self\",t[t.SkipSelf=4]=\"SkipSelf\",t[t.Optional=8]=\"Optional\",t}({});let Vt;function Lt(t){const e=Vt;return Vt=t,e}function Bt(t,e,n){const r=et(t);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Ft.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${J(t)}]`)}const Zt={},zt=/\\n/gm,$t=\"__source\",Ut=Y({provide:String,useValue:Y});let Wt=void 0;function qt(t){const e=Wt;return Wt=t,e}function Qt(t,e=Ft.Default){if(void 0===Wt)throw new Error(\"inject() must be called from an injection context\");return null===Wt?Bt(t,void 0,e):Wt.get(t,e&Ft.Optional?null:void 0,e)}function Gt(t,e=Ft.Default){return(Vt||Qt)(mt(t),e)}function Jt(t){const e=[];for(let n=0;n<t.length;n++){const r=mt(t[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let t=void 0,n=Ft.Default;for(let e=0;e<r.length;e++){const s=r[e];s instanceof q||\"Optional\"===s.ngMetadataName||s===q?n|=Ft.Optional:s instanceof G||\"SkipSelf\"===s.ngMetadataName||s===G?n|=Ft.SkipSelf:s instanceof Q||\"Self\"===s.ngMetadataName||s===Q?n|=Ft.Self:t=s instanceof W||s===W?s.token:s}e.push(Gt(t,n))}else e.push(Gt(r))}return e}let Kt=void 0;const Yt=20;function Xt(t){return Array.isArray(t)&&\"object\"==typeof t[1]}function te(t){return Array.isArray(t)&&!0===t[1]}function ee(t){return 0!=(8&t.flags)}function ne(t){return null!==t.template}function re(t){return!!t.listen}const se={createRenderer:(t,e)=>void 0!==Kt?Kt:\"undefined\"!=typeof document?document:void 0};function oe(t){for(;Array.isArray(t);)t=t[0];return t}function ie(t,e){return oe(e[t.index])}function le(t,e){const n=e[t];return Xt(n)?n:n[0]}function ue(t){const e=function(t){return t.__ngContext__||null}(t);return e?Array.isArray(e)?e:e.lView:null}function ce(t){return 128==(128&t[2])}function ae(t,e){return null==e?null:t[e]}function he(t){t[18]=0}function de(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const fe={lFrame:Oe(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function pe(){return fe.bindingsEnabled}function _e(){return fe.lFrame.lView}function ye(){return fe.lFrame.tView}function me(){let t=ge();for(;null!==t&&64===t.type;)t=t.parent;return t}function ge(){return fe.lFrame.currentTNode}function ve(t,e){const n=fe.lFrame;n.currentTNode=t,n.isParent=e}function be(){return fe.lFrame.isParent}function we(){return fe.isInCheckNoChangesMode}function Ce(t){fe.isInCheckNoChangesMode=t}function Ee(t,e){const n=fe.lFrame;n.bindingIndex=n.bindingRootIndex=t,xe(e)}function xe(t){fe.lFrame.currentDirectiveIndex=t}function ke(t){fe.lFrame.currentQueryIndex=t}function Te(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function Se(t,e,n){if(n&Ft.SkipSelf){let r=e,s=t;for(;r=r.parent,!(null!==r||n&Ft.Host||(r=Te(s),null===r)||(s=s[15],10&r.type)););if(null===r)return!1;e=r,t=s}const r=fe.lFrame=Ae();return r.currentTNode=e,r.lView=t,!0}function Ie(t){const e=Ae(),n=t[1];fe.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function Ae(){const t=fe.lFrame,e=null===t?null:t.child;return null===e?Oe(t):e}function Oe(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function De(){const t=fe.lFrame;return fe.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const je=De;function He(){const t=De();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Ne(t){fe.lFrame.selectedIndex=t}let Pe=!0,Re=!1;function Me(){return Re=!0,Pe}function Fe(t,e){return t.hasOwnProperty(St)?t[St]:null}class Ve extends Error{constructor(t,e){super(function(t,e){return`${t?`NG0${t}: `:\"\"}${e}`}(t,e)),this.code=t}}function Le(t,e){const n=e?\" in \"+e:\"\";throw new Ve(\"201\",`No provider for ${Mt(t)} found${n}`)}class Be{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function Ze(){const t=$e(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===bt)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}}function ze(t,e,n,r){const s=$e(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:bt,current:null}),o=s.current||(s.current={}),i=s.previous,l=this.declaredInputs[n],u=i[l];o[l]=new Be(u&&u.currentValue,e,i===bt),t[r]=e}function $e(t){return t.__ngSimpleChanges__||null}function Ue(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n<r;n++){const e=t.data[n].type.prototype,{ngAfterContentInit:r,ngAfterContentChecked:s,ngAfterViewInit:o,ngAfterViewChecked:i,ngOnDestroy:l}=e;r&&(t.contentHooks||(t.contentHooks=[])).push(-n,r),s&&((t.contentHooks||(t.contentHooks=[])).push(n,s),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,s)),o&&(t.viewHooks||(t.viewHooks=[])).push(-n,o),i&&((t.viewHooks||(t.viewHooks=[])).push(n,i),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,i)),null!=l&&(t.destroyHooks||(t.destroyHooks=[])).push(n,l)}}function We(t,e,n){Ge(t,e,3,n)}function qe(t,e,n,r){(3&t[2])===n&&Ge(t,e,n,r)}function Qe(t,e){let n=t[2];(3&n)===e&&(n&=2047,n+=1,t[2]=n)}function Ge(t,e,n,r){const s=null!=r?r:-1;let o=0;for(let i=void 0!==r?65535&t[18]:0;i<e.length;i++)if(\"number\"==typeof e[i+1]){if(o=e[i],null!=r&&o>=r)break}else e[i]<0&&(t[18]+=65536),(o<s||-1==s)&&(Je(t,n,e,i),t[18]=(4294901760&t[18])+i+2),i++}function Je(t,e,n,r){const s=n[r]<0,o=n[r+1],i=t[s?-n[r]:n[r]];s?t[2]>>11<t[18]>>16&&(3&t[2])===e&&(t[2]+=2048,o.call(i)):o.call(i)}const Ke=-1;class Ye{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}function Xe(t,e,n){const r=re(t);let s=0;for(;s<n.length;){const o=n[s];if(\"number\"==typeof o){if(0!==o)break;s++;const i=n[s++],l=n[s++],u=n[s++];r?t.setAttribute(e,l,u,i):e.setAttributeNS(i,l,u)}else{const i=o,l=n[++s];64===i.charCodeAt(0)?r&&t.setProperty(e,i,l):r?t.setAttribute(e,i,l):e.setAttribute(i,l),s++}}return s}function tn(t,e){if(null===e||0===e.length);else if(null===t||0===t.length)t=e.slice();else{let n=-1;for(let r=0;r<e.length;r++){const s=e[r];\"number\"==typeof s?n=s:0===n||en(t,n,s,null,-1===n||2===n?e[++r]:null)}}return t}function en(t,e,n,r,s){let o=0,i=t.length;if(-1===e)i=-1;else for(;o<t.length;){const n=t[o++];if(\"number\"==typeof n){if(n===e){i=-1;break}if(n>e){i=o-1;break}}}for(;o<t.length;){const e=t[o];if(\"number\"==typeof e)break;if(e===n){if(null===r)return void(null!==s&&(t[o+1]=s));if(r===t[o+1])return void(t[o+2]=s)}o++,null!==r&&o++,null!==s&&o++}-1!==i&&(t.splice(i,0,e),o=i+1),t.splice(o++,0,n),null!==r&&t.splice(o++,0,r),null!==s&&t.splice(o++,0,s)}function nn(t){return 32767&t}function rn(t,e){let n=t>>16,r=e;for(;n>0;)r=r[15],n--;return r}let sn=!0;function on(t){const e=sn;return sn=t,e}let ln=0;function un(t,e){const n=an(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,cn(r.data,t),cn(e,null),cn(r.blueprint,null));const s=hn(t,e),o=t.injectorIndex;if(s!==Ke){const t=nn(s),n=rn(s,e),r=n[1].data;for(let s=0;s<8;s++)e[o+s]=n[t+s]|r[t+s]}return e[o+8]=s,o}function cn(t,e){t.push(0,0,0,0,0,0,0,0,e)}function an(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function hn(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,s=e;for(;null!==s;){const t=s[1],e=t.type;if(r=2===e?t.declTNode:1===e?s[6]:null,null===r)return Ke;if(n++,s=s[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return Ke}function dn(t,e,n){!function(t,e,n){let r;\"string\"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(It)&&(r=n[It]),null==r&&(r=n[It]=ln++);const s=255&r,o=1<<s,i=64&s,l=32&s,u=e.data;128&s?i?l?u[t+7]|=o:u[t+6]|=o:l?u[t+5]|=o:u[t+4]|=o:i?l?u[t+3]|=o:u[t+2]|=o:l?u[t+1]|=o:u[t]|=o}(t,e,n)}function fn(t,e,n){if(n&Ft.Optional)return t;Le(e,\"NodeInjector\")}function pn(t,e,n,r){if(n&Ft.Optional&&void 0===r&&(r=null),0==(n&(Ft.Self|Ft.Host))){const s=t[9],o=Lt(void 0);try{return s?s.get(e,r,n&Ft.Optional):Bt(e,r,n&Ft.Optional)}finally{Lt(o)}}return fn(r,e,n)}const _n={};function yn(){return new wn(me(),_e())}function mn(t,e,n,r,s,o){const i=e[1],l=i.data[t+8],u=function(t,e,n,r,s){const o=t.providerIndexes,i=e.data,l=1048575&o,u=t.directiveStart,c=o>>20,a=s?l+c:t.directiveEnd;for(let h=r?l:l+c;h<a;h++){const t=i[h];if(h<u&&n===t||h>=u&&t.type===n)return h}if(s){const t=i[u];if(t&&ne(t)&&t.type===n)return u}return null}(l,i,n,null==r?function(t){return 2==(2&t.flags)}(l)&&sn:r!=i&&0!=(3&l.type),s&Ft.Host&&o===l);return null!==u?gn(e,i,u,l):_n}function gn(t,e,n,r){let s=t[n];const o=e.data;if(s instanceof Ye){const i=s;i.resolving&&function(t,e){throw new Ve(\"200\",\"Circular dependency in DI detected for \"+t)}(Mt(o[n]));const l=on(i.canSeeViewProviders);i.resolving=!0;const u=i.injectImpl?Lt(i.injectImpl):null;Se(t,r,Ft.Default);try{s=t[n]=i.factory(void 0,o,t,r),e.firstCreatePass&&n>=r.directiveStart&&function(t,e,n){const{ngOnChanges:r,ngOnInit:s,ngDoCheck:o}=e.type.prototype;if(r){const r=((i=e).type.prototype.ngOnChanges&&(i.setInput=ze),Ze);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,r)}var i;s&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,s),o&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,o))}(n,o[n],e)}finally{null!==u&&Lt(u),on(l),i.resolving=!1,je()}}return s}function vn(t,e,n){const r=64&t,s=32&t;let o;return o=128&t?r?s?n[e+7]:n[e+6]:s?n[e+5]:n[e+4]:r?s?n[e+3]:n[e+2]:s?n[e+1]:n[e],!!(o&1<<t)}function bn(t,e){return!(t&Ft.Self||t&Ft.Host&&e)}class wn{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return function(t,e,n,r=Ft.Default,s){if(null!==t){const o=function(t){if(\"string\"==typeof t)return t.charCodeAt(0)||0;const e=t.hasOwnProperty(It)?t[It]:void 0;return\"number\"==typeof e?e>=0?255&e:yn:e}(n);if(\"function\"==typeof o){if(!Se(e,t,r))return r&Ft.Host?fn(s,n,r):pn(e,n,r,s);try{const t=o();if(null!=t||r&Ft.Optional)return t;Le(n)}finally{je()}}else if(\"number\"==typeof o){let s=null,i=an(t,e),l=Ke,u=r&Ft.Host?e[16][6]:null;for((-1===i||r&Ft.SkipSelf)&&(l=-1===i?hn(t,e):e[i+8],l!==Ke&&bn(r,!1)?(s=e[1],i=nn(l),e=rn(l,e)):i=-1);-1!==i;){const t=e[1];if(vn(o,i,t.data)){const t=mn(i,e,n,s,r,u);if(t!==_n)return t}l=e[i+8],l!==Ke&&bn(r,e[1].data[i+8]===u)&&vn(o,i,e)?(s=t,i=nn(l),e=rn(l,e)):i=-1}}}return pn(e,n,r,s)}(this._tNode,this._lView,t,void 0,e)}}function Cn(t){return t.ngDebugContext}function En(t){return t.ngOriginalError}function xn(t,...e){t.error(...e)}class kn{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),r=function(t){return t.ngErrorLogger||xn}(t);r(this._console,\"ERROR\",t),e&&r(this._console,\"ORIGINAL ERROR\",e),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(t){return t?Cn(t)?Cn(t):this._findContext(En(t)):null}_findOriginalError(t){let e=En(t);for(;e&&En(e);)e=En(e);return e}}function Tn(t,e){t.__ngContext__=e}const Sn=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(pt))();function In(t){return t instanceof Function?t():t}var An=function(t){return t[t.Important=1]=\"Important\",t[t.DashCase=2]=\"DashCase\",t}({});function On(t,e){return(void 0)(t,e)}function Dn(t){const e=t[3];return te(e)?e[3]:e}function jn(t){return Nn(t[13])}function Hn(t){return Nn(t[4])}function Nn(t){for(;null!==t&&!te(t);)t=t[4];return t}function Pn(t,e,n,r,s){if(null!=r){let o,i=!1;te(r)?o=r:Xt(r)&&(i=!0,r=r[0]);const l=oe(r);0===t&&null!==n?null==s?Vn(e,n,l):Fn(e,n,l,s||null,!0):1===t&&null!==n?Fn(e,n,l,s||null,!0):2===t?function(t,e,n){const r=function(t,e){return re(t)?t.parentNode(e):e.parentNode}(t,e);r&&function(t,e,n,r){re(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,l,i):3===t&&e.destroyNode(l),null!=o&&function(t,e,n,r,s){const o=n[7];o!==oe(n)&&Pn(e,t,r,o,s);for(let i=10;i<n.length;i++){const s=n[i];zn(s[1],s,t,e,r,o)}}(e,t,o,n,s)}}function Rn(t,e,n){return re(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Mn(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r<n.length;r+=2){const t=e[n[r]];if(!(t instanceof Ye)){const e=n[r+1];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)e[n+1].call(t[e[n]]);else e.call(t)}}}(t,e),function(t,e){const n=t.cleanup;if(null!==n){const t=e[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const s=n[r+1],o=\"function\"==typeof s?s(e):oe(e[s]),i=t[n[r+2]],l=n[r+3];\"boolean\"==typeof l?o.removeEventListener(n[r],i,l):l>=0?t[l]():t[-l].unsubscribe(),r+=2}else n[r].call(t[n[r+1]]);e[7]=null}}(t,e),1===e[1].type&&re(e[11])&&e[11].destroy();const n=e[17];if(null!==n&&te(e[3])){n!==e[3]&&function(t,e){const n=t[9],r=n.indexOf(e),s=e[3];1024&e[2]&&(e[2]&=-1025,de(s,-1)),n.splice(r,1)}(n,e);const r=e[19];null!==r&&r.detachView(t)}}}function Fn(t,e,n,r,s){re(t)?t.insertBefore(e,n,r,s):e.insertBefore(n,r,s)}function Vn(t,e,n){re(t)?t.appendChild(e,n):e.appendChild(n)}function Ln(t,e,n,r,s){null!==r?Fn(t,e,n,r,s):Vn(t,e,n)}function Bn(t,e,n,r){const s=function(t,e,n){return function(t,e,n){let r=e;for(;null!==r&&40&r.type;)r=(e=r).parent;if(null===r)return n[0];if(2&r.flags){const e=t.data[r.directiveStart].encapsulation;if(e===vt.None||e===vt.Emulated)return null}return ie(r,n)}(t,e.parent,n)}(t,r,e),o=e[11],i=function(t,e,n){return function(t,e,n){return 40&t.type?ie(t,n):null}(t,0,n)}(r.parent||e[6],0,e);if(null!=s)if(Array.isArray(n))for(let l=0;l<n.length;l++)Ln(o,s,n[l],i,!1);else Ln(o,s,n,i,!1)}function Zn(t,e,n,r,s,o,i){for(;null!=n;){const l=r[n.index],u=n.type;if(i&&0===e&&(l&&Tn(oe(l),r),n.flags|=4),64!=(64&n.flags))if(8&u)Zn(t,e,n.child,r,s,o,!1),Pn(e,t,s,l,o);else if(32&u){const i=On(n,r);let u;for(;u=i();)Pn(e,t,s,u,o);Pn(e,t,s,l,o)}else 16&u?$n(t,e,r,n,s,o):Pn(e,t,s,l,o);n=i?n.projectionNext:n.next}}function zn(t,e,n,r,s,o){Zn(n,r,t.firstChild,e,s,o,!1)}function $n(t,e,n,r,s,o){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)Pn(e,t,s,l[u],o);else Zn(t,e,l,i[3],s,o,!0)}function Un(t,e,n){re(t)?t.setAttribute(e,\"style\",n):e.style.cssText=n}function Wn(t,e,n){re(t)?\"\"===n?t.removeAttribute(e,\"class\"):t.setAttribute(e,\"class\",n):e.className=n}function qn(t,e,n){let r=t.length;for(;;){const s=t.indexOf(e,n);if(-1===s)return s;if(0===s||t.charCodeAt(s-1)<=32){const n=e.length;if(s+n===r||t.charCodeAt(s+n)<=32)return s}n=s+1}}const Qn=\"ng-template\";function Gn(t,e,n){let r=0;for(;r<t.length;){let s=t[r++];if(n&&\"class\"===s){if(s=t[r],-1!==qn(s.toLowerCase(),e,0))return!0}else if(1===s){for(;r<t.length&&\"string\"==typeof(s=t[r++]);)if(s.toLowerCase()===e)return!0;return!1}}return!1}function Jn(t){return 4===t.type&&t.value!==Qn}function Kn(t,e,n){return e===(4!==t.type||n?t.value:Qn)}function Yn(t,e,n){let r=4;const s=t.attrs||[],o=function(t){for(let n=0;n<t.length;n++)if(3===(e=t[n])||4===e||6===e)return n;var e;return t.length}(s);let i=!1;for(let l=0;l<e.length;l++){const u=e[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!Kn(t,u,n)||\"\"===u&&1===e.length){if(Xn(r))return!1;i=!0}}else{const c=8&r?u:e[++l];if(8&r&&null!==t.attrs){if(!Gn(t.attrs,c,n)){if(Xn(r))return!1;i=!0}continue}const a=tr(8&r?\"class\":u,s,Jn(t),n);if(-1===a){if(Xn(r))return!1;i=!0;continue}if(\"\"!==c){let t;t=a>o?\"\":s[a+1].toLowerCase();const e=8&r?t:null;if(e&&-1!==qn(e,c,0)||2&r&&c!==t){if(Xn(r))return!1;i=!0}}}}else{if(!i&&!Xn(r)&&!Xn(u))return!1;if(i&&Xn(u))continue;i=!1,r=u|1&r}}return Xn(r)||i}function Xn(t){return 0==(1&t)}function tr(t,e,n,r){if(null===e)return-1;let s=0;if(r||!n){let n=!1;for(;s<e.length;){const r=e[s];if(r===t)return s;if(3===r||6===r)n=!0;else{if(1===r||2===r){let t=e[++s];for(;\"string\"==typeof t;)t=e[++s];continue}if(4===r)break;if(0===r){s+=4;continue}}s+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){const r=t[n];if(\"number\"==typeof r)return-1;if(r===e)return n;n++}return-1}(e,t)}function er(t,e,n=!1){for(let r=0;r<e.length;r++)if(Yn(t,e[r],n))return!0;return!1}function nr(t,e){return t?\":not(\"+e.trim()+\")\":e}function rr(t){let e=t[0],n=1,r=2,s=\"\",o=!1;for(;n<t.length;){let i=t[n];if(\"string\"==typeof i)if(2&r){const e=t[++n];s+=\"[\"+i+(e.length>0?'=\"'+e+'\"':\"\")+\"]\"}else 8&r?s+=\".\"+i:4&r&&(s+=\" \"+i);else\"\"===s||Xn(i)||(e+=nr(o,s),s=\"\"),r=i,o=o||!Xn(r);n++}return\"\"!==s&&(e+=nr(o,s)),e}const sr={};function or(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const s=n[r],o=n[r+1];if(-1!==o){const n=t.data[o];ke(s),n.contentQueries(2,e[o],o)}}}function ir(t,e,n,r,s,o,i,l,u,c){const a=e.blueprint.slice();return a[0]=s,a[2]=140|r,he(a),a[3]=a[15]=t,a[8]=n,a[10]=i||t&&t[10],a[11]=l||t&&t[11],a[12]=u||t&&t[12]||null,a[9]=c||t&&t[9]||null,a[6]=o,a[16]=2==e.type?t[16]:a,a}function lr(t,e,n,r,s){let o=t.data[e];if(null===o)o=function(t,e,n,r,s){const o=ge(),i=be(),l=t.data[e]=function(t,e,n,r,s,o){return{type:n,index:r,insertBeforeIndex:null,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:s,attrs:o,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,i?o:o&&o.parent,n,e,r,s);return null===t.firstChild&&(t.firstChild=l),null!==o&&(i?null==o.child&&null!==l.parent&&(o.child=l):null===o.next&&(o.next=l)),l}(t,e,n,r,s),fe.lFrame.inI18n&&(o.flags|=64);else if(64&o.type){o.type=n,o.value=r,o.attrs=s;const t=function(){const t=fe.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}();o.injectorIndex=null===t?-1:t.injectorIndex}return ve(o,!0),o}function ur(t,e,n,r){if(0===n)return-1;const s=e.length;for(let o=0;o<n;o++)e.push(r),t.blueprint.push(r),t.data.push(null);return s}function cr(t,e,n){Ie(e);try{const r=t.viewQuery;null!==r&&Dr(1,r,n);const s=t.template;null!==s&&dr(t,e,s,1,n),t.firstCreatePass&&(t.firstCreatePass=!1),t.staticContentQueries&&or(t,e),t.staticViewQueries&&Dr(2,t.viewQuery,n);const o=t.components;null!==o&&function(t,e){for(let n=0;n<e.length;n++)Sr(t,e[n])}(e,o)}catch(r){throw t.firstCreatePass&&(t.incompleteFirstPass=!0),r}finally{e[2]&=-5,He()}}function ar(t,e,n,r){const s=e[2];if(256==(256&s))return;Ie(e);const o=we();try{he(e),fe.lFrame.bindingIndex=t.bindingStartIndex,null!==n&&dr(t,e,n,2,r);const i=3==(3&s);if(!o)if(i){const n=t.preOrderCheckHooks;null!==n&&We(e,n,null)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,null),Qe(e,0)}if(function(t){for(let e=jn(t);null!==e;e=Hn(e)){if(!e[2])continue;const t=e[9];for(let e=0;e<t.length;e++){const n=t[e],r=n[3];0==(1024&n[2])&&de(r,1),n[2]|=1024}}}(e),function(t){for(let e=jn(t);null!==e;e=Hn(e))for(let t=10;t<e.length;t++){const n=e[t],r=n[1];ce(n)&&ar(r,n,r.template,n[8])}}(e),null!==t.contentQueries&&or(t,e),!o)if(i){const n=t.contentCheckHooks;null!==n&&We(e,n)}else{const n=t.contentHooks;null!==n&&qe(e,n,1),Qe(e,1)}!function(t,e){const n=t.hostBindingOpCodes;if(null!==n)try{for(let t=0;t<n.length;t++){const r=n[t];if(r<0)Ne(~r);else{const s=r,o=n[++t],i=n[++t];Ee(o,s),i(2,e[s])}}}finally{Ne(-1)}}(t,e);const l=t.components;null!==l&&function(t,e){for(let n=0;n<e.length;n++)kr(t,e[n])}(e,l);const u=t.viewQuery;if(null!==u&&Dr(2,u,r),!o)if(i){const n=t.viewCheckHooks;null!==n&&We(e,n)}else{const n=t.viewHooks;null!==n&&qe(e,n,2),Qe(e,2)}!0===t.firstUpdatePass&&(t.firstUpdatePass=!1),o||(e[2]&=-73),1024&e[2]&&(e[2]&=-1025,de(e[3],-1))}finally{He()}}function hr(t,e,n,r){const s=e[10],o=!we(),i=4==(4&e[2]);try{o&&!i&&s.begin&&s.begin(),i&&cr(t,e,r),ar(t,e,n,r)}finally{o&&!i&&s.end&&s.end()}}function dr(t,e,n,r,s){const o=fe.lFrame.selectedIndex;try{Ne(-1),2&r&&e.length>Yt&&function(t,e,n,r){if(!r)if(3==(3&e[2])){const n=t.preOrderCheckHooks;null!==n&&We(e,n,20)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,20)}Ne(20)}(t,e,0,we()),n(r,s)}finally{Ne(o)}}function fr(t){const e=t.tView;return null===e||e.incompleteFirstPass?t.tView=pr(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts):e}function pr(t,e,n,r,s,o,i,l,u,c){const a=Yt+r,h=a+s,d=function(t,e){const n=[];for(let r=0;r<e;r++)n.push(r<t?null:sr);return n}(a,h),f=\"function\"==typeof c?c():c;return d[1]={type:t,blueprint:d,template:n,queries:null,viewQuery:l,declTNode:e,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof o?o():o,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:f,incompleteFirstPass:!1}}function _r(t,e,n){for(let r in t)if(t.hasOwnProperty(r)){const s=t[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(e,s):n[r]=[e,s]}return n}function yr(t,e,n,r,s,o){const i=o.hostBindings;if(i){let n=t.hostBindingOpCodes;null===n&&(n=t.hostBindingOpCodes=[]);const o=~e.index;(function(t){let e=t.length;for(;e>0;){const n=t[--e];if(\"number\"==typeof n&&n<0)return n}return 0})(n)!=o&&n.push(o),n.push(r,s,i)}}function mr(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function gr(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function vr(t,e,n){if(n){if(e.exportAs)for(let r=0;r<e.exportAs.length;r++)n[e.exportAs[r]]=t;ne(e)&&(n[\"\"]=t)}}function br(t,e,n){t.flags|=1,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function wr(t,e,n,r,s){t.data[r]=s;const o=s.factory||(s.factory=Fe(s.type)),i=new Ye(o,ne(s),null);t.blueprint[r]=i,n[r]=i,yr(t,e,0,r,ur(t,n,s.hostVars,sr),s)}function Cr(t,e,n){const r=ie(e,t),s=fr(n),o=t[10],i=Ir(t,ir(t,s,null,n.onPush?64:16,r,e,o,o.createRenderer(r,n),null,null));t[e.index]=i}function Er(t,e,n,r,s,o){const i=o[e];if(null!==i){const t=r.setInput;for(let e=0;e<i.length;){const s=i[e++],o=i[e++],l=i[e++];null!==t?r.setInput(n,l,s,o):n[o]=l}}}function xr(t,e){let n=null,r=0;for(;r<e.length;){const s=e[r];if(0!==s)if(5!==s){if(\"number\"==typeof s)break;t.hasOwnProperty(s)&&(null===n&&(n=[]),n.push(s,t[s],e[r+1])),r+=2}else r+=2;else r+=4}return n}function kr(t,e){const n=le(e,t);if(ce(n)){const t=n[1];80&n[2]?ar(t,n,t.template,n[8]):n[5]>0&&Tr(n)}}function Tr(t){for(let n=jn(t);null!==n;n=Hn(n))for(let t=10;t<n.length;t++){const e=n[t];if(1024&e[2]){const t=e[1];ar(t,e,t.template,e[8])}else e[5]>0&&Tr(e)}const e=t[1].components;if(null!==e)for(let n=0;n<e.length;n++){const r=le(e[n],t);ce(r)&&r[5]>0&&Tr(r)}}function Sr(t,e){const n=le(e,t),r=n[1];!function(t,e){for(let n=e.length;n<t.blueprint.length;n++)e.push(t.blueprint[n])}(r,n),cr(r,n,n[8])}function Ir(t,e){return t[13]?t[14][4]=e:t[13]=e,t[14]=e,e}function Ar(t,e,n){const r=e[10];r.begin&&r.begin();try{ar(t,e,t.template,n)}catch(s){throw function(t,e){const n=t[9],r=n?n.get(kn,null):null;r&&r.handleError(e)}(e,s),s}finally{r.end&&r.end()}}function Or(t){!function(t){for(let e=0;e<t.components.length;e++){const n=t.components[e],r=ue(n),s=r[1];hr(s,r,s.template,n)}}(t[8])}function Dr(t,e,n){ke(0),e(t,n)}const jr=(()=>Promise.resolve(null))();function Hr(t,e,n){let r=n?t.styles:null,s=n?t.classes:null,o=0;if(null!==e)for(let i=0;i<e.length;i++){const t=e[i];\"number\"==typeof t?o=t:1==o?s=K(s,t):2==o&&(r=K(r,t+\": \"+e[++i]+\";\"))}n?t.styles=r:t.stylesWithoutHost=r,n?t.classes=s:t.classesWithoutHost=s}const Nr=new ut(\"INJECTOR\",-1);class Pr{get(t,e=Zt){if(e===Zt){const e=new Error(`NullInjectorError: No provider for ${J(t)}!`);throw e.name=\"NullInjectorError\",e}return e}}const Rr=new ut(\"Set Injector scope.\"),Mr={},Fr={},Vr=[];let Lr=void 0;function Br(){return void 0===Lr&&(Lr=new Pr),Lr}function Zr(t,e=null,n=null,r){return new zr(t,n,e||Br(),r)}class zr{constructor(t,e,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];e&&gt(e,n=>this.processProvider(n,t,e)),gt([t],t=>this.processInjectorType(t,[],s)),this.records.set(Nr,Ur(void 0,this));const o=this.records.get(Rr);this.scope=null!=o?o.value:null,this.source=r||(\"object\"==typeof t?null:J(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Zt,n=Ft.Default){this.assertNotDestroyed();const r=qt(this);try{if(!(n&Ft.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=(\"function\"==typeof(s=t)||\"object\"==typeof s&&s instanceof ut)&&et(t);e=n&&this.injectableDefInScope(n)?Ur($r(t),Mr):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(n&Ft.Self?Br():this.parent).get(t,e=n&Ft.Optional&&e===Zt?null:e)}catch(o){if(\"NullInjectorError\"===o.name){if((o.ngTempTokenPath=o.ngTempTokenPath||[]).unshift(J(t)),r)throw o;return function(t,e,n,r){const s=t.ngTempTokenPath;throw e[$t]&&s.unshift(e[$t]),t.message=function(t,e,n,r=null){t=t&&\"\\n\"===t.charAt(0)&&\"\\u0275\"==t.charAt(1)?t.substr(2):t;let s=J(e);if(Array.isArray(e))s=e.map(J).join(\" -> \");else if(\"object\"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];t.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):J(r)))}s=`{${t.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${s}]: ${t.replace(zt,\"\\n  \")}`}(\"\\n\"+t.message,s,n,r),t.ngTokenPath=s,t.ngTempTokenPath=null,t}(o,t,\"R3InjectorError\",this.source)}throw o}finally{qt(r)}var s}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((e,n)=>t.push(J(n))),`R3Injector[${t.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(t,e,n){if(!(t=mt(t)))return!1;let r=rt(t);const s=null==r&&t.ngModule||void 0,o=void 0===s?t:s,i=-1!==n.indexOf(o);if(void 0!==s&&(r=rt(s)),null==r)return!1;if(null!=r.imports&&!i){let t;n.push(o);try{gt(r.imports,r=>{this.processInjectorType(r,e,n)&&(void 0===t&&(t=[]),t.push(r))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:r}=t[e];gt(r,t=>this.processProvider(t,n,r||Vr))}}this.injectorDefTypes.add(o),this.records.set(o,Ur(r.factory,Mr));const l=r.providers;if(null!=l&&!i){const e=t;gt(l,t=>this.processProvider(t,e,l))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,n){let r=qr(t=mt(t))?t:mt(t&&t.provide);const s=function(t,e,n){return Wr(t)?Ur(void 0,t.useValue):Ur(function(t,e,n){let r=void 0;if(qr(t)){const e=mt(t);return Fe(e)||$r(e)}if(Wr(t))r=()=>mt(t.useValue);else if((s=t)&&s.useFactory)r=()=>t.useFactory(...Jt(t.deps||[]));else if(function(t){return!(!t||!t.useExisting)}(t))r=()=>Gt(mt(t.useExisting));else{const e=mt(t&&(t.useClass||t.provide));if(!function(t){return!!t.deps}(t))return Fe(e)||$r(e);r=()=>new e(...Jt(t.deps))}var s;return r}(t),Mr)}(t);if(qr(t)||!0!==t.multi)this.records.get(r);else{let e=this.records.get(r);e||(e=Ur(void 0,Mr,!0),e.factory=()=>Jt(e.multi),this.records.set(r,e)),r=t,e.multi.push(t)}this.records.set(r,s)}hydrate(t,e){var n;return e.value===Mr&&(e.value=Fr,e.value=e.factory()),\"object\"==typeof e.value&&e.value&&null!==(n=e.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&(\"string\"==typeof t.providedIn?\"any\"===t.providedIn||t.providedIn===this.scope:this.injectorDefTypes.has(t.providedIn))}}function $r(t){const e=et(t),n=null!==e?e.factory:Fe(t);if(null!==n)return n;const r=rt(t);if(null!==r)return r.factory;if(t instanceof ut)throw new Error(`Token ${J(t)} is missing a \\u0275prov definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=function(t,e){const n=[];for(let r=0;r<t;r++)n.push(\"?\");return n}(e);throw new Error(`Can't resolve all parameters for ${J(t)}: (${n.join(\", \")}).`)}const n=function(t){const e=t&&(t[st]||t[it]);if(e){const n=function(t){if(t.hasOwnProperty(\"name\"))return t.name;const e=(\"\"+t).match(/^function\\s*([^\\s(]+)/);return null===e?\"\":e[1]}(t);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\nThis will become an error in a future version of Angular. Please add @Injectable() to the \"${n}\" class.`),e}return null}(t);return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error(\"unreachable\")}function Ur(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Wr(t){return null!==t&&\"object\"==typeof t&&Ut in t}function qr(t){return\"function\"==typeof t}const Qr=function(t,e,n){return function(t,e=null,n=null,r){const s=Zr(t,e,n,r);return s._resolveInjectorDefTypes(),s}({name:n},e,t,n)};let Gr=(()=>{class t{static create(t,e){return Array.isArray(t)?Qr(t,e,\"\"):Qr(t.providers,t.parent,t.name||\"\")}}return t.THROW_IF_NOT_FOUND=Zt,t.NULL=new Pr,t.\\u0275prov=X({token:t,providedIn:\"any\",factory:()=>Gt(Nr)}),t.__NG_ELEMENT_ID__=-1,t})();function Jr(t,e){Ue(ue(t)[1],me())}let Kr=null;function Yr(){if(!Kr){const t=pt.Symbol;if(t&&t.iterator)Kr=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Kr=n)}}}return Kr}function Xr(t){return!!ts(t)&&(Array.isArray(t)||!(t instanceof Map)&&Yr()in t)}function ts(t){return null!==t&&(\"function\"==typeof t||\"object\"==typeof t)}function es(t,e,n,r,s){const o=s?\"class\":\"style\";!function(t,e,n,r,s){for(let o=0;o<n.length;){const i=n[o++],l=n[o++],u=e[i],c=t.data[i];null!==c.setInput?c.setInput(u,s,r,l):u[l]=s}}(t,n,e.inputs[o],o,r)}function ns(t,e,n,r){const s=_e(),o=ye(),i=Yt+t,l=s[11],u=s[i]=Rn(l,e,fe.lFrame.currentNamespace),c=o.firstCreatePass?function(t,e,n,r,s,o,i){const l=e.consts,u=lr(e,t,2,s,ae(l,o));return function(t,e,n,r){let s=!1;if(pe()){const o=function(t,e,n){const r=t.directiveRegistry;let s=null;if(r)for(let o=0;o<r.length;o++){const i=r[o];er(n,i.selectors,!1)&&(s||(s=[]),dn(un(n,e),t,i.type),ne(i)?(gr(t,n),s.unshift(i)):s.push(i))}return s}(t,e,n),i=null===r?null:{\"\":-1};if(null!==o){s=!0,br(n,t.data.length,o.length);for(let t=0;t<o.length;t++){const e=o[t];e.providersResolver&&e.providersResolver(e)}let r=!1,l=!1,u=ur(t,e,o.length,null);for(let s=0;s<o.length;s++){const c=o[s];n.mergedAttrs=tn(n.mergedAttrs,c.hostAttrs),wr(t,n,e,u,c),vr(u,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128);const a=c.type.prototype;!r&&(a.ngOnChanges||a.ngOnInit||a.ngDoCheck)&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n.index),r=!0),l||!a.ngOnChanges&&!a.ngDoCheck||((t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n.index),l=!0),u++}!function(t,e){const n=e.directiveEnd,r=t.data,s=e.attrs,o=[];let i=null,l=null;for(let u=e.directiveStart;u<n;u++){const t=r[u],n=t.inputs,c=null===s||Jn(e)?null:xr(n,s);o.push(c),i=_r(n,u,i),l=_r(t.outputs,u,l)}null!==i&&(i.hasOwnProperty(\"class\")&&(e.flags|=16),i.hasOwnProperty(\"style\")&&(e.flags|=32)),e.initialInputs=o,e.inputs=i,e.outputs=l}(t,n)}i&&function(t,e,n){if(e){const r=t.localNames=[];for(let t=0;t<e.length;t+=2){const s=n[e[t+1]];if(null==s)throw new Ve(\"301\",`Export of name '${e[t+1]}' not found!`);r.push(e[t],s)}}}(n,r,i)}n.mergedAttrs=tn(n.mergedAttrs,n.attrs)}(e,n,u,ae(l,i)),null!==u.attrs&&Hr(u,u.attrs,!1),null!==u.mergedAttrs&&Hr(u,u.mergedAttrs,!0),null!==e.queries&&e.queries.elementStart(e,u),u}(i,o,s,0,e,n,r):o.data[i];ve(c,!0);const a=c.mergedAttrs;null!==a&&Xe(l,u,a);const h=c.classes;null!==h&&Wn(l,u,h);const d=c.styles;null!==d&&Un(l,u,d),64!=(64&c.flags)&&Bn(o,s,u,c),0===fe.lFrame.elementDepthCount&&Tn(u,s),fe.lFrame.elementDepthCount++,function(t){return 1==(1&t.flags)}(c)&&(function(t,e,n){pe()&&(function(t,e,n,r){const s=n.directiveStart,o=n.directiveEnd;t.firstCreatePass||un(n,e),Tn(r,e);const i=n.initialInputs;for(let l=s;l<o;l++){const r=t.data[l],o=ne(r);o&&Cr(e,n,r);const u=gn(e,t,l,n);Tn(u,e),null!==i&&Er(0,l-s,u,r,0,i),o&&(le(n.index,e)[8]=u)}}(t,e,n,ie(n,e)),128==(128&n.flags)&&function(t,e,n){const r=n.directiveStart,s=n.directiveEnd,o=n.index,i=fe.lFrame.currentDirectiveIndex;try{Ne(o);for(let n=r;n<s;n++){const r=t.data[n],s=e[n];xe(n),null===r.hostBindings&&0===r.hostVars&&null===r.hostAttrs||mr(r,s)}}finally{Ne(-1),xe(i)}}(t,e,n))}(o,s,c),function(t,e,n){if(ee(e)){const r=e.directiveEnd;for(let s=e.directiveStart;s<r;s++){const e=t.data[s];e.contentQueries&&e.contentQueries(1,n[s],s)}}}(o,c,s)),null!==r&&function(t,e,n=ie){const r=e.localNames;if(null!==r){let s=e.index+1;for(let o=0;o<r.length;o+=2){const i=r[o+1],l=-1===i?n(e,t):t[i];t[s++]=l}}}(s,c)}function rs(t){return!!t&&\"function\"==typeof t.then}const ss=void 0;var os=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],ss],[[\"AM\",\"PM\"],ss,ss],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],ss,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],ss,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",ss,\"{1} 'at' {0}\",ss],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},\"ltr\",function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===e&&0===n?1:5}];let is={};function ls(t){return t in is||(is[t]=pt.ng&&pt.ng.common&&pt.ng.common.locales&&pt.ng.common.locales[t]),is[t]}var us=function(t){return t[t.LocaleId=0]=\"LocaleId\",t[t.DayPeriodsFormat=1]=\"DayPeriodsFormat\",t[t.DayPeriodsStandalone=2]=\"DayPeriodsStandalone\",t[t.DaysFormat=3]=\"DaysFormat\",t[t.DaysStandalone=4]=\"DaysStandalone\",t[t.MonthsFormat=5]=\"MonthsFormat\",t[t.MonthsStandalone=6]=\"MonthsStandalone\",t[t.Eras=7]=\"Eras\",t[t.FirstDayOfWeek=8]=\"FirstDayOfWeek\",t[t.WeekendRange=9]=\"WeekendRange\",t[t.DateFormat=10]=\"DateFormat\",t[t.TimeFormat=11]=\"TimeFormat\",t[t.DateTimeFormat=12]=\"DateTimeFormat\",t[t.NumberSymbols=13]=\"NumberSymbols\",t[t.NumberFormats=14]=\"NumberFormats\",t[t.CurrencyCode=15]=\"CurrencyCode\",t[t.CurrencySymbol=16]=\"CurrencySymbol\",t[t.CurrencyName=17]=\"CurrencyName\",t[t.Currencies=18]=\"Currencies\",t[t.Directionality=19]=\"Directionality\",t[t.PluralCase=20]=\"PluralCase\",t[t.ExtraData=21]=\"ExtraData\",t}({});const cs=\"en-US\";let as=cs;function hs(t){var e,n;n=\"Expected localeId to be defined\",null==(e=t)&&function(t,e,n,r){throw new Error(\"ASSERTION ERROR: \"+t+` [Expected=> null != ${e} <=Actual]`)}(n,e),\"string\"==typeof t&&(as=t.toLowerCase().replace(/_/g,\"-\"))}class ds{}class fs{resolveComponentFactory(t){throw function(t){const e=Error(`No component factory found for ${J(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(t)}}let ps=(()=>{class t{}return t.NULL=new fs,t})();function _s(...t){}function ys(t,e){return new gs(ie(t,e))}const ms=function(){return ys(me(),_e())};let gs=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=ms,t})();class vs{}let bs=(()=>{class t{}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>null}),t})();class ws{constructor(t){this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}}const Cs=new ws(\"11.0.2\");class Es{constructor(){}supports(t){return Xr(t)}create(t){return new ks(t)}}const xs=(t,e)=>e;class ks{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||xs}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,r=0,s=null;for(;e||n;){const o=!n||e&&e.currentIndex<As(n,r,s)?e:n,i=As(o,r,s),l=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(e=e._next,null==o.previousIndex)r++;else{s||(s=[]);const t=i-r,e=l-r;if(t!=e){for(let n=0;n<t;n++){const r=n<s.length?s[n]:s[n]=0,o=r+n;e<=o&&o<t&&(s[n]=r+1)}s[o.previousIndex]=e-t}}i!==l&&t(o,i,l)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!Xr(t))throw new Error(`Error trying to diff '${J(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,r,s=this._itHead,o=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],r=this._trackByFn(e,n),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,n,r,e)),Object.is(s.item,n)||this._addIdentityChange(s,n)):(s=this._mismatch(s,n,r,e),o=!0),s=s._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[Yr()]();let r;for(;!(r=n.next()).done;)e(r.value)}}(t,t=>{r=this._trackByFn(e,t),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,t,r,e)),Object.is(s.item,t)||this._addIdentityChange(s,t)):(s=this._mismatch(s,t,r,e),o=!0),s=s._next,e++}),this.length=e;return this._truncate(s),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):t=this._addAfter(new Ts(e,n),s,r),t}_verifyReinsertion(t,e,n,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Is),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Is),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class Ts{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Ss{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class Is{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new Ss,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function As(t,e,n){const r=t.previousIndex;if(null===r)return r;let s=0;return n&&r<n.length&&(s=n[r]),r+e+s}class Os{constructor(){}supports(t){return t instanceof Map||ts(t)}create(){return new Ds}}class Ds{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||ts(t)))throw new Error(`Error trying to diff '${J(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const n=this._records.get(t);this._maybeAddToChanges(n,e);const r=n._prev,s=n._next;return r&&(r._next=s),s&&(s._prev=r),n._next=null,n._prev=null,n}const n=new js(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(n=>e(t[n],n))}}class js{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let Hs=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Es])}),t})(),Ns=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Os])}),t})();function Ps(t,e,n,r,s=!1){for(;null!==n;){const o=e[n.index];if(null!==o&&r.push(oe(o)),te(o))for(let t=10;t<o.length;t++){const e=o[t],n=e[1].firstChild;null!==n&&Ps(e[1],e,n,r)}const i=n.type;if(8&i)Ps(t,e,n.child,r);else if(32&i){const t=On(n,e);let s;for(;s=t();)r.push(s)}else if(16&i){const t=e[16],s=t[6].projection[n.projection];if(Array.isArray(s))r.push(...s);else{const e=Dn(t);Ps(e[1],e,s,r,!0)}}n=s?n.projectionNext:n.next}return r}class Rs extends class{constructor(t,e){this._lView=t,this._cdRefInjectingView=e,this._appRef=null,this._viewContainerRef=null}get rootNodes(){const t=this._lView,e=t[1];return Ps(e,t,e.firstChild,[])}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}!function(t,e){if(!(256&e[2])){const n=e[11];re(n)&&n.destroyNode&&zn(t,e,n,3,null,null),function(t){let e=t[13];if(!e)return Mn(t[1],t);for(;e;){let n=null;if(Xt(e))n=e[13];else{const t=e[10];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)Xt(e)&&Mn(e[1],e),e=e[3];null===e&&(e=t),Xt(e)&&Mn(e[1],e),n=e&&e[4]}e=n}}(e)}}(this._lView[1],this._lView)}onDestroy(t){!function(t,e,n,r){const s=(o=e)[7]||(o[7]=[]);var o;s.push(null),t.firstCreatePass&&function(t){return t.cleanup||(t.cleanup=[])}(t).push(r,s.length-1)}(this._lView[1],this._lView,0,t)}markForCheck(){!function(t){for(;t;){t[2]|=64;const e=Dn(t);if(0!=(512&t[2])&&!e)return t;t=e}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){Ar(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(t,e,n){Ce(!0);try{Ar(t,e,n)}finally{Ce(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=t}detachFromAppRef(){var t;this._appRef=null,zn(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=t}}{constructor(t){super(t),this._view=t}detectChanges(){Or(this._view)}checkNoChanges(){!function(t){Ce(!0);try{Or(t)}finally{Ce(!1)}}(this._view)}get context(){return null}}const Ms=[new Os],Fs=new Hs([new Es]),Vs=new Ns(Ms);class Ls{}const Bs={};class Zs extends ps{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=Pt(t);return new Us(e,this.ngModule)}}function zs(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const $s=new ut(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Sn});class Us extends ds{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors.map(rr).join(\",\"),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return zs(this.componentDef.inputs)}get outputs(){return zs(this.componentDef.outputs)}create(t,e,n,r){const s=(r=r||this.ngModule)?function(t,e){return{get:(n,r,s)=>{const o=t.get(n,Bs,s);return o!==Bs||r===Bs?o:e.get(n,r,s)}}}(t,r.injector):t,o=s.get(vs,se),i=s.get(bs,null),l=o.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(t,e,n){if(re(t))return t.selectRootElement(e,n===vt.ShadowDom);let r=\"string\"==typeof e?t.querySelector(e):e;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Rn(o.createRenderer(null,this.componentDef),u,function(t){const e=t.toLowerCase();return\"svg\"===e?\"http://www.w3.org/2000/svg\":\"math\"===e?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h={components:[],scheduler:Sn,clean:jr,playerHandler:null,flags:0},d=pr(0,null,null,1,0,null,null,null,null,null),f=ir(null,d,h,a,null,null,o,l,i,s);let p,_;Ie(f);try{const t=function(t,e,n,r,s,o){const i=n[1];n[20]=t;const l=lr(i,20,2,\"#host\",null),u=l.mergedAttrs=e.hostAttrs;null!==u&&(Hr(l,u,!0),null!==t&&(Xe(s,t,u),null!==l.classes&&Wn(s,t,l.classes),null!==l.styles&&Un(s,t,l.styles)));const c=r.createRenderer(t,e),a=ir(n,fr(e),null,e.onPush?64:16,n[20],l,r,c,null,null);return i.firstCreatePass&&(dn(un(l,n),i,e.type),gr(i,l),br(l,n.length,1)),Ir(n,a),n[20]=a}(c,this.componentDef,f,o,l);if(c)if(n)Xe(l,c,[\"ng-version\",Cs.full]);else{const{attrs:t,classes:e}=function(t){const e=[],n=[];let r=1,s=2;for(;r<t.length;){let o=t[r];if(\"string\"==typeof o)2===s?\"\"!==o&&e.push(o,t[++r]):8===s&&n.push(o);else{if(!Xn(s))break;s=o}r++}return{attrs:e,classes:n}}(this.componentDef.selectors[0]);t&&Xe(l,c,t),e&&e.length>0&&Wn(l,c,e.join(\" \"))}if(_=d.data[20],void 0!==e){const t=_.projection=[];for(let n=0;n<this.ngContentSelectors.length;n++){const r=e[n];t.push(null!=r?Array.from(r):null)}}p=function(t,e,n,r,s){const o=n[1],i=function(t,e,n){const r=me();t.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),wr(t,r,e,ur(t,e,1,null),n));const s=gn(e,t,r.directiveStart,r);Tn(s,e);const o=ie(r,e);return o&&Tn(o,e),s}(o,n,e);if(r.components.push(i),t[8]=i,s&&s.forEach(t=>t(i,e)),e.contentQueries){const t=me();e.contentQueries(1,i,t.directiveStart)}const l=me();return!o.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(Ne(l.index),yr(n[1],l,0,l.directiveStart,l.directiveEnd,e),mr(e,i)),i}(t,this.componentDef,f,h,[Jr]),cr(d,f,null)}finally{He()}return new Ws(this.componentType,p,ys(_,f),f,_)}}class Ws extends class{}{constructor(t,e,n,r,s){super(),this.location=n,this._rootLView=r,this._tNode=s,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new Rs(r),this.componentType=t}get injector(){return new wn(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const qs=new Map;class Qs extends Ls{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Zs(this);const n=Rt(t),r=t[Tt]||null;r&&hs(r),this._bootstrapComponents=In(n.bootstrap),this._r3Injector=Zr(t,e,[{provide:Ls,useValue:this},{provide:ps,useValue:this.componentFactoryResolver}],J(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=Gr.THROW_IF_NOT_FOUND,n=Ft.Default){return t===Gr||t===Ls||t===Nr?this:this._r3Injector.get(t,e,n)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Gs extends class{}{constructor(t){super(),this.moduleType=t,null!==Rt(t)&&function(t){const e=new Set;!function t(n){const r=Rt(n,!0),s=r.id;null!==s&&(function(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${J(e)} vs ${J(e.name)}`)}(s,qs.get(s),n),qs.set(s,n));const o=In(r.imports);for(const i of o)e.has(i)||(e.add(i),t(i))}(t)}(t)}create(t){return new Qs(this.moduleType,t)}}const Js=class extends E{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let r,s=t=>null,o=()=>null;t&&\"object\"==typeof t?(r=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(s=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(o=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(r=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(s=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(o=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,s,o);return t instanceof h&&t.add(i),i}},Ks=new ut(\"Application Initializer\");let Ys=(()=>{class t{constructor(t){this.appInits=t,this.resolve=_s,this.reject=_s,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();rs(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Ks,8))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const Xs=new ut(\"AppId\"),to={provide:Xs,useFactory:function(){return`${eo()}${eo()}${eo()}`},deps:[]};function eo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const no=new ut(\"Platform Initializer\"),ro=new ut(\"Platform ID\"),so=new ut(\"appBootstrapListener\");let oo=(()=>{class t{log(t){console.log(t)}warn(t){console.warn(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const io=new ut(\"LocaleId\"),lo=new ut(\"DefaultCurrencyCode\");class uo{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const co=function(t){return new Gs(t)},ao=co,ho=function(t){return Promise.resolve(co(t))},fo=function(t){const e=co(t),n=In(Rt(t).declarations).reduce((t,e)=>{const n=Pt(e);return n&&t.push(new Us(n)),t},[]);return new uo(e,n)},po=fo,_o=function(t){return Promise.resolve(fo(t))};let yo=(()=>{class t{constructor(){this.compileModuleSync=ao,this.compileModuleAsync=ho,this.compileModuleAndAllComponentsSync=po,this.compileModuleAndAllComponentsAsync=_o}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const mo=(()=>Promise.resolve(0))();function go(t){\"undefined\"==typeof Zone?mo.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",t)}class vo{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Js(!1),this.onMicrotaskEmpty=new Js(!1),this.onStable=new Js(!1),this.onError=new Js(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched();const n=this;n._nesting=0,n._outer=n._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(n._inner=n._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(n._inner=n._inner.fork(Zone.longStackTraceZoneSpec)),n.shouldCoalesceEventChangeDetection=e,n.lastRequestAnimationFrameId=-1,n.nativeRequestAnimationFrame=function(){let t=pt.requestAnimationFrame,e=pt.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__(\"OriginalDelegate\")];n&&(t=n);const r=e[Zone.__symbol__(\"OriginalDelegate\")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function(t){const e=!!t.shouldCoalesceEventChangeDetection&&t.nativeRequestAnimationFrame&&(()=>{!function(t){-1===t.lastRequestAnimationFrameId&&(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(pt,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask(\"fakeTopEventTask\",()=>{t.lastRequestAnimationFrameId=-1,Eo(t),Co(t)},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Eo(t))}(t)});t._inner=t._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:e},onInvokeTask:(n,r,s,o,i,l)=>{try{return xo(t),n.invokeTask(s,o,i,l)}finally{e&&\"eventTask\"===o.type&&e(),ko(t)}},onInvoke:(e,n,r,s,o,i,l)=>{try{return xo(t),e.invoke(r,s,o,i,l)}finally{ko(t)}},onHasTask:(e,n,r,s)=>{e.hasTask(r,s),n===r&&(\"microTask\"==s.change?(t._hasPendingMicrotasks=s.microTask,Eo(t),Co(t)):\"macroTask\"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,n,r,s)=>(e.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(n)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!vo.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(vo.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,r){const s=this._inner,o=s.scheduleEventTask(\"NgZoneEvent: \"+r,t,wo,bo,bo);try{return s.runTask(o,e,n)}finally{s.cancelTask(o)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function bo(){}const wo={};function Co(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Eo(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||t.shouldCoalesceEventChangeDetection&&-1!==t.lastRequestAnimationFrameId)}function xo(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ko(t){t._nesting--,Co(t)}class To{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Js,this.onMicrotaskEmpty=new Js,this.onStable=new Js,this.onError=new Js}run(t,e,n){return t.apply(e,n)}runGuarded(t,e,n){return t.apply(e,n)}runOutsideAngular(t){return t()}runTask(t,e,n,r){return t.apply(e,n)}}let So=(()=>{class t{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{vo.assertNotInAngularZone(),go(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())go(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let r=-1;e&&e>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==r),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Io=(()=>{class t{constructor(){this._applications=new Map,Do.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return Do.findTestabilityInTree(this,t,e)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class Ao{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}let Oo,Do=new Ao;const jo=new ut(\"AllowMultipleToken\");function Ho(t,e,n=[]){const r=\"Platform: \"+e,s=new ut(r);return(e=[])=>{let o=No();if(!o||o.injector.get(jo,!1))if(t)t(n.concat(e).concat({provide:s,useValue:!0}));else{const t=n.concat(e).concat({provide:s,useValue:!0},{provide:Rr,useValue:\"platform\"});!function(t){if(Oo&&!Oo.destroyed&&!Oo.injector.get(jo,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");Oo=t.get(Po);const e=t.get(no,null);e&&e.forEach(t=>t())}(Gr.create({providers:t,name:r}))}return function(t){const e=No();if(!e)throw new Error(\"No platform exists!\");if(!e.injector.get(t,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return e}(s)}}function No(){return Oo&&!Oo.destroyed?Oo:null}let Po=(()=>{class t{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t,e){let n;return n=\"noop\"===t?new To:(\"zone.js\"===t?void 0:t)||new vo({enableLongStackTrace:Me(),shouldCoalesceEventChangeDetection:e}),n}(e?e.ngZone:void 0,e&&e.ngZoneEventCoalescing||!1),r=[{provide:vo,useValue:n}];return n.run(()=>{const e=Gr.create({providers:r,parent:this.injector,name:t.moduleType.name}),s=t.create(e),o=s.injector.get(kn,null);if(!o)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return s.onDestroy(()=>Fo(this._modules,s)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{o.handleError(t)}})),function(t,e,n){try{const r=n();return rs(r)?r.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(o,n,()=>{const t=s.injector.get(Ys);return t.runInitializers(),t.donePromise.then(()=>(hs(s.injector.get(io,cs)||cs),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,e=[]){const n=Ro({},e);return function(t,e,n){const r=new Gs(n);return Promise.resolve(r)}(0,0,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(Mo);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${J(t.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. Please define one of these.`);t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Gr))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Ro(t,e){return Array.isArray(e)?e.reduce(Ro,t):Object.assign(Object.assign({},t),e)}let Mo=(()=>{class t{constructor(t,e,n,r,s,o){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Me(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),l=new g(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{vo.assertNotInAngularZone(),go(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{vo.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=function(...t){let e=Number.POSITIVE_INFINITY,n=null,r=t[t.length-1];var s;return(s=r)&&\"function\"==typeof s.schedule?(n=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(e=t.pop())):\"number\"==typeof r&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof g?t[0]:function(t=Number.POSITIVE_INFINITY){return H(m,t)}(e)(function(t,e){return e?function(t,e){return new g(n=>{const r=new h;let s=0;return r.add(e.schedule(function(){s!==t.length?(n.next(t[s++]),n.closed||r.add(this.schedule())):n.complete()})),r})}(t,e):new g(S(t))}(t,n))}(i,l.pipe(t=>{return R()((e=Z,function(t){let n;n=\"function\"==typeof e?e:function(){return e};const r=Object.create(t,L);return r.source=t,r.subjectFactory=n,r})(t));var e}))}bootstrap(t,e){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=t instanceof ds?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(Ls),s=n.create(Gr.NULL,[],e||n.selector,r);s.onDestroy(()=>{this._unloadComponent(s)});const o=s.injector.get(So,null);return o&&s.injector.get(Io).registerApplication(s.location.nativeElement,o),this._loadComponent(s),Me()&&this._console.log(\"Angular is running in development mode. Call enableProdMode() to enable production mode.\"),s}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Fo(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(so,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),Fo(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo),Gt(oo),Gt(Gr),Gt(kn),Gt(ps),Gt(Ys))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Fo(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const Vo=Ho(null,\"core\",[{provide:ro,useValue:\"unknown\"},{provide:Po,deps:[Gr]},{provide:Io,deps:[]},{provide:oo,deps:[]}]),Lo=[{provide:Mo,useClass:Mo,deps:[vo,oo,Gr,kn,ps,Ys]},{provide:$s,deps:[vo],useFactory:function(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:Ys,useClass:Ys,deps:[[new q,Ks]]},{provide:yo,useClass:yo,deps:[]},to,{provide:Hs,useFactory:function(){return Fs},deps:[]},{provide:Ns,useFactory:function(){return Vs},deps:[]},{provide:io,useFactory:function(t){return hs(t=t||\"undefined\"!=typeof $localize&&$localize.locale||cs),t},deps:[[new W(io),new q,new G]]},{provide:lo,useValue:\"USD\"}];let Bo=(()=>{class t{constructor(t){}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(Mo))},providers:Lo}),t})(),Zo=null;function zo(){return Zo}const $o=new ut(\"DocumentToken\");var Uo=function(t){return t[t.Zero=0]=\"Zero\",t[t.One=1]=\"One\",t[t.Two=2]=\"Two\",t[t.Few=3]=\"Few\",t[t.Many=4]=\"Many\",t[t.Other=5]=\"Other\",t}({});class Wo{}let qo=(()=>{class t extends Wo{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(function(t){return function(t){const e=function(t){return t.toLowerCase().replace(/_/g,\"-\")}(t);let n=ls(e);if(n)return n;const r=e.split(\"-\")[0];if(n=ls(r),n)return n;if(\"en\"===r)return os;throw new Error(`Missing locale data for the locale \"${t}\".`)}(t)[us.PluralCase]}(e||this.locale)(t)){case Uo.Zero:return\"zero\";case Uo.One:return\"one\";case Uo.Two:return\"two\";case Uo.Few:return\"few\";case Uo.Many:return\"many\";default:return\"other\"}}}return t.\\u0275fac=function(e){return new(e||t)(Gt(io))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Qo=(()=>{class t{}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[{provide:Wo,useClass:qo}]}),t})();class Go extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var t;t=new Go,Zo||(Zo=t)}getProperty(t,e){return t[e]}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}getValue(t){return t.value}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return\"window\"===e?window:\"document\"===e?t:\"body\"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=Ko||(Ko=document.querySelector(\"base\"),Ko)?Ko.getAttribute(\"href\"):null;return null==e?null:(n=e,Jo||(Jo=document.createElement(\"a\")),Jo.setAttribute(\"href\",n),\"/\"===Jo.pathname.charAt(0)?Jo.pathname:\"/\"+Jo.pathname);var n}resetBaseElement(){Ko=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return function(t,e){e=encodeURIComponent(e);for(const n of t.split(\";\")){const t=n.indexOf(\"=\"),[r,s]=-1==t?[n,\"\"]:[n.slice(0,t),n.slice(t+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}(document.cookie,t)}}let Jo,Ko=null;const Yo=new ut(\"TRANSITION_ID\"),Xo=[{provide:Ks,useFactory:function(t,e,n){return()=>{n.get(Ys).donePromise.then(()=>{const n=zo();Array.prototype.slice.apply(e.querySelectorAll(\"style[ng-transition]\")).filter(e=>e.getAttribute(\"ng-transition\")===t).forEach(t=>n.remove(t))})}},deps:[Yo,$o,Gr],multi:!0}];class ti{static init(){var t;t=new ti,Do=t}addToWindow(t){pt.getAngularTestability=(e,n=!0)=>{const r=t.findTestabilityInTree(e,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},pt.getAllAngularTestabilities=()=>t.getAllTestabilities(),pt.getAllAngularRootElements=()=>t.getAllRootElements(),pt.frameworkStabilizers||(pt.frameworkStabilizers=[]),pt.frameworkStabilizers.push(t=>{const e=pt.getAllAngularTestabilities();let n=e.length,r=!1;const s=function(e){r=r||e,n--,0==n&&t(r)};e.forEach(function(t){t.whenStable(s)})})}findTestabilityInTree(t,e,n){if(null==e)return null;const r=t.getTestability(e);return null!=r?r:n?zo().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}const ei=new ut(\"EventManagerPlugins\");let ni=(()=>{class t{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let r=0;r<n.length;r++){const e=n[r];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(\"No event manager plugin found for event \"+t)}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ei),Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class ri{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const r=zo().getGlobalEventTarget(this._doc,t);if(!r)throw new Error(`Unsupported event target ${r} for event ${e}`);return this.addEventListener(r,e,n)}}let si=(()=>{class t{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),oi=(()=>{class t extends si{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement(\"style\");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>zo().remove(t))}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const ii={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},li=/%COMP%/g;function ui(t,e,n){for(let r=0;r<e.length;r++){let s=e[r];Array.isArray(s)?ui(t,s,n):(s=s.replace(li,t),n.push(s))}return n}function ci(t){return e=>{if(\"__ngUnwrap__\"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let ai=(()=>{class t{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new hi(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case vt.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new di(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case 1:case vt.ShadowDom:return new fi(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=ui(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ni),Gt(oi),Gt(Xs))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class hi{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(ii[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n=\"string\"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector \"${t}\" did not match any elements`);return e||(n.textContent=\"\"),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,r){if(r){e=r+\":\"+e;const s=ii[r];s?t.setAttributeNS(s,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const r=ii[n];r?t.removeAttributeNS(r,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,r){r&(An.DashCase|An.Important)?t.style.setProperty(e,n,r&An.Important?\"important\":\"\"):t.style[e]=n}removeStyle(t,e,n){n&An.DashCase?t.style.removeProperty(e):t.style[e]=\"\"}setProperty(t,e,n){t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return\"string\"==typeof t?this.eventManager.addGlobalEventListener(t,e,ci(n)):this.eventManager.addEventListener(t,e,ci(n))}}class di extends hi{constructor(t,e,n,r){super(t),this.component=n;const s=ui(r+\"-\"+n.id,n.styles,[]);e.addStyles(s),this.contentAttr=\"_ngcontent-%COMP%\".replace(li,r+\"-\"+n.id),this.hostAttr=\"_nghost-%COMP%\".replace(li,r+\"-\"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,\"\")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,\"\"),n}}class fi extends hi{constructor(t,e,n,r){super(t),this.sharedStylesHost=e,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:\"open\"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=ui(r.id,r.styles,[]);for(let o=0;o<s.length;o++){const t=document.createElement(\"style\");t.textContent=s[o],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}let pi=(()=>{class t extends ri{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,n){return t.addEventListener(e,n,!1),()=>this.removeEventListener(t,e,n)}removeEventListener(t,e,n){return t.removeEventListener(e,n)}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const _i=[\"alt\",\"control\",\"meta\",\"shift\"],yi={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},mi={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},gi={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let vi=(()=>{class t extends ri{constructor(t){super(t)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,n,r){const s=t.parseEventName(n),o=t.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>zo().onAndCancel(e,s.domEventName,o))}static parseEventName(e){const n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const s=t._normalizeKey(n.pop());let o=\"\";if(_i.forEach(t=>{const e=n.indexOf(t);e>-1&&(n.splice(e,1),o+=t+\".\")}),o+=s,0!=n.length||0===s.length)return null;const i={};return i.domEventName=r,i.fullKey=o,i}static getEventFullKey(t){let e=\"\",n=function(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return\"Unidentified\";e.startsWith(\"U+\")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&mi.hasOwnProperty(e)&&(e=mi[e]))}return yi[e]||e}(t);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),_i.forEach(r=>{r!=n&&(0,gi[r])(t)&&(e+=r+\".\")}),e+=n,e}static eventCallback(e,n,r){return s=>{t.getEventFullKey(s)===e&&r.runGuarded(()=>n(s))}}static _normalizeKey(t){switch(t){case\"esc\":return\"escape\";default:return t}}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const bi=Ho(Vo,\"browser\",[{provide:ro,useValue:\"browser\"},{provide:no,useValue:function(){Go.makeCurrent(),ti.init()},multi:!0},{provide:$o,useFactory:function(){return function(t){Kt=t}(document),document},deps:[]}]),wi=[[],{provide:Rr,useValue:\"root\"},{provide:kn,useFactory:function(){return new kn},deps:[]},{provide:ei,useClass:pi,multi:!0,deps:[$o,vo,ro]},{provide:ei,useClass:vi,multi:!0,deps:[$o]},[],{provide:ai,useClass:ai,deps:[ni,oi,Xs]},{provide:vs,useExisting:ai},{provide:si,useExisting:oi},{provide:oi,useClass:oi,deps:[$o]},{provide:So,useClass:So,deps:[vo]},{provide:ni,useClass:ni,deps:[ei,vo]},[]];let Ci=(()=>{class t{constructor(t){if(t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(e){return{ngModule:t,providers:[{provide:Xs,useValue:e.appId},{provide:Yo,useExisting:Xs},Xo]}}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(t,12))},providers:wi,imports:[Qo,Bo]}),t})();\"undefined\"!=typeof window&&window;let Ei=(()=>{class t{constructor(){this.title=\"example\"}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=(e={type:t,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(t,e){1&t&&(ns(0,\"div\",0),function(t,e=\"\"){const n=_e(),r=ye(),s=t+Yt,o=r.firstCreatePass?lr(r,s,1,e,null):r.data[s],i=n[s]=function(t,e){return re(t)?t.createText(e):t.createTextNode(e)}(n[11],e);Bn(r,n,i,o),ve(o,!1)}(1,\" Hello, World\\n\"),function(){let t=me();be()?fe.lFrame.isParent=!1:(t=t.parent,ve(t,!1));const e=t;fe.lFrame.elementDepthCount--;const n=ye();n.firstCreatePass&&(Ue(n,t),ee(t)&&n.queries.elementEnd(t)),null!=e.classesWithoutHost&&function(t){return 0!=(16&t.flags)}(e)&&es(n,e,_e(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function(t){return 0!=(32&t.flags)}(e)&&es(n,e,_e(),e.stylesWithoutHost,!1)}())},styles:[\"\"]},z(()=>{const t={},n={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===ct.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||wt,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||vt.Emulated,id:\"c\",styles:e.styles||wt,_:null,setInput:null,schemas:e.schemas||null,tView:null},r=e.directives,s=e.features,o=e.pipes;return n.id+=At++,n.inputs=Nt(e.inputs,t),n.outputs=Nt(e.outputs),s&&s.forEach(t=>t(n)),n.directiveDefs=r?()=>(\"function\"==typeof r?r():r).map(Ot):null,n.pipeDefs=o?()=>(\"function\"==typeof o?o():o).map(Dt):null,n})),t;var e})(),xi=(()=>{class t{}return t.\\u0275mod=Ht({type:t,bootstrap:[Ei]}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[],imports:[[Ci]]}),t})();(function(){if(Re)throw new Error(\"Cannot enable prod mode after platform setup.\");Pe=!1})(),bi().bootstrapModule(xi).catch(t=>console.error(t))},zn8P:function(t,e){function n(t){return Promise.resolve().then(function(){var e=new Error(\"Cannot find module '\"+t+\"'\");throw e.code=\"MODULE_NOT_FOUND\",e})}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/dist/example/polyfills.bf99d438b005d57b2b31.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{1:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const i=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(i||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class a{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==C.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=a.current;for(;e.parent;)e=e.parent;return e}static get current(){return z.zone}static get currentTask(){return j}static __load_patch(t,r){if(C.hasOwnProperty(t)){if(i)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),C[t]=r(e,a,O),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){z={parent:z,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{z=z.parent}}runGuarded(e,t=null,n,o){z={parent:z,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{z=z.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,T),e.runCount++;const r=j;j=e,z={parent:z,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(T,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),z=z.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(b,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,b,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==b&&e._transitionTo(T,b),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,T,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}a.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new a(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");k(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,i){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=i,!o)throw new Error(\"callback is not defined\");this.callback=o;const a=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,a,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,b)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],_=!1;function k(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!_){for(_=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){O.onUnhandledError(e)}}}O.microtaskDrainDone(),_=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",b=\"scheduling\",T=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",C={},O={symbol:s,currentZoneFrame:()=>z,onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:k,showUncaughtError:()=>!a[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:N,patchMethod:()=>N,bindArguments:()=>[],patchThen:()=>N,patchMacroTask:()=>N,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>N,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>N,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>N,wrapWithCurrentZone:()=>N,filterProperties:()=>[],attachOriginToPatched:()=>N,_redefineProperty:()=>N,patchCallbacks:()=>N};let z={parent:null,zone:new a(null,null)},j=null,I=0;function N(){}o(\"Zone\",\"Zone\"),e.Zone=a}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,i=[],a=!0===e[s(\"DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION\")],c=s(\"Promise\"),l=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;i.length;){const t=i.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){h(e)}}};const u=s(\"unhandledPromiseRejectionHandler\");function h(e){n.onUnhandledError(e);try{const n=t[u];\"function\"==typeof n&&n.call(this,e)}catch(o){}}function p(e){return e&&e.then}function f(e){return e}function d(e){return O.reject(e)}const g=s(\"state\"),_=s(\"value\"),k=s(\"finally\"),m=s(\"parentPromiseValue\"),y=s(\"parentPromiseState\"),v=null,b=!0,T=!1;function E(e,t){return n=>{try{Z(e,t,n)}catch(o){Z(e,!1,o)}}}const w=s(\"currentTaskTrace\");function Z(e,o,s){const c=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(e[g]===v){let h=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(h=s&&s.then)}catch(u){return c(()=>{Z(e,!1,u)})(),e}if(o!==T&&s instanceof O&&s.hasOwnProperty(g)&&s.hasOwnProperty(_)&&s[g]!==v)D(s),Z(e,s[g],s[_]);else if(o!==T&&\"function\"==typeof h)try{h.call(s,c(E(e,o)),c(E(e,!1)))}catch(u){c(()=>{Z(e,!1,u)})()}else{e[g]=o;const c=e[_];if(e[_]=s,e[k]===k&&o===b&&(e[g]=e[y],e[_]=e[m]),o===T&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,w,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<c.length;)P(e,c[t++],c[t++],c[t++],c[t++]);if(0==c.length&&o==T){e[g]=0;let o=s;if(!a)try{throw new Error(\"Uncaught (in promise): \"+((l=s)&&l.toString===Object.prototype.toString?(l.constructor&&l.constructor.name||\"\")+\": \"+JSON.stringify(l):l?l.toString():Object.prototype.toString.call(l))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(u){o=u}o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,i.push(o),n.scheduleMicroTask()}}}var l;return e}const S=s(\"rejectionHandledHandler\");function D(e){if(0===e[g]){try{const n=t[S];n&&\"function\"==typeof n&&n.call(this,{rejection:e[_],promise:e})}catch(n){}e[g]=T;for(let t=0;t<i.length;t++)e===i[t].promise&&i.splice(t,1)}}function P(e,t,n,o,r){D(e);const s=e[g],i=s?\"function\"==typeof o?o:f:\"function\"==typeof r?r:d;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[_],r=!!n&&k===n[k];r&&(n[m]=o,n[y]=s);const a=t.run(i,void 0,r&&i!==d&&i!==f?[]:[o]);Z(n,!0,a)}catch(o){Z(n,!1,o)}},n)}const C=function(){};class O{static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return Z(new this(null),b,e)}static reject(e){return Z(new this(null),T,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let i of e)p(i)||(i=this.resolve(i)),i.then(r,s);return o}static all(e){return O.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof O?this:O).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,i=0;const a=[];for(let l of e){p(l)||(l=this.resolve(l));const e=i;try{l.then(o=>{a[e]=t?t.thenCallback(o):o,s--,0===s&&n(a)},r=>{t?(a[e]=t.errorCallback(r),s--,0===s&&n(a)):o(r)})}catch(c){o(c)}s++,i++}return s-=2,0===s&&n(a),r}constructor(e){const t=this;if(!(t instanceof O))throw new Error(\"Must be an instanceof Promise.\");t[g]=v,t[_]=[];try{e&&e(E(t,b),E(t,T))}catch(n){Z(t,!1,n)}}get[Symbol.toStringTag](){return\"Promise\"}get[Symbol.species](){return O}then(e,n){let o=this.constructor[Symbol.species];o&&\"function\"==typeof o||(o=this.constructor||O);const r=new o(C),s=t.current;return this[g]==v?this[_].push(s,r,e,n):P(this,s,r,e,n),r}catch(e){return this.then(null,e)}finally(e){let n=this.constructor[Symbol.species];n&&\"function\"==typeof n||(n=O);const o=new n(C);o[k]=k;const r=t.current;return this[g]==v?this[_].push(r,o,e,e):P(this,r,o,e,e),o}}O.resolve=O.resolve,O.reject=O.reject,O.race=O.race,O.all=O.all;const z=e[c]=e.Promise,j=t.__symbol__(\"ZoneAwarePromise\");let I=o(e,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return e[j]?e[j]:e[c]},I.set=function(t){t===O?e[j]=t:(e[c]=t,t.prototype[l]||R(t),n.setNativePromise(t))},r(e,\"Promise\",I)),e.Promise=O;const N=s(\"thenPatched\");function R(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[l]=r,e.prototype.then=function(e,t){return new O((e,t)=>{r.call(this,e,t)}).then(e,t)},e[N]=!0}if(n.patchThen=R,z){R(z);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(x=t,function(){let e=x.apply(this,arguments);if(e instanceof O)return e;let t=e.constructor;return t[N]||R(t),e}))}var x;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=i,O});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=\"addEventListener\",i=\"removeEventListener\",a=Zone.__symbol__(s),c=Zone.__symbol__(i),l=\"true\",u=\"false\",h=Zone.__symbol__(\"\");function p(e,t){return Zone.current.wrap(e,t)}function f(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const d=Zone.__symbol__,g=\"undefined\"!=typeof window,_=g?window:void 0,k=g&&_||\"object\"==typeof self&&self||global,m=[null];function y(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=p(e[n],t+\"_\"+n));return e}function v(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const b=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,T=!(\"nw\"in k)&&void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process),E=!T&&!b&&!(!g||!_.HTMLElement),w=void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process)&&!b&&!(!g||!_.HTMLElement),Z={},S=function(e){if(!(e=e||k.event))return;let t=Z[e.type];t||(t=Z[e.type]=d(\"ON_PROPERTY\"+e.type));const n=this||e.target||k,o=n[t];let r;if(E&&n===_&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function D(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const i=d(\"on\"+o+\"patched\");if(n.hasOwnProperty(i)&&n[i])return;delete s.writable,delete s.value;const a=s.get,c=s.set,l=o.substr(2);let u=Z[l];u||(u=Z[l]=d(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==k||(t=k),t&&(t[u]&&t.removeEventListener(l,S),c&&c.apply(t,m),\"function\"==typeof e?(t[u]=e,t.addEventListener(l,S,!1)):t[u]=null)},s.get=function(){let e=this;if(e||n!==k||(e=k),!e)return null;const t=e[u];if(t)return t;if(a){let t=a&&a.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[i]=!0}function P(e,t,n){if(t)for(let o=0;o<t.length;o++)D(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)D(e,t[o],n)}}const C=d(\"originalInstance\");function O(e){const n=k[e];if(!n)return;k[d(e)]=n,k[e]=function(){const t=y(arguments,e);switch(t.length){case 0:this[C]=new n;break;case 1:this[C]=new n(t[0]);break;case 2:this[C]=new n(t[0],t[1]);break;case 3:this[C]=new n(t[0],t[1],t[2]);break;case 4:this[C]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},I(k[e],n);const o=new n(function(){});let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?k[e].prototype[n]=function(){return this[C][n].apply(this[C],arguments)}:t(k[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[C][n]=p(t,e+\".\"+n),I(this[C][n],t)):this[C][n]=t},get:function(){return this[C][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(k[e][r]=n[r])}function z(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const i=d(o);let a=null;if(s&&!(a=s[i])&&(a=s[i]=s[o],v(s&&e(s,o)))){const e=r(a,i,o);s[o]=function(){return e(this,arguments)},I(s[o],a)}return a}function j(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=z(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?f(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function I(e,t){e[d(\"OriginalDelegate\")]=t}let N=!1,R=!1;function x(){try{const e=_.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function M(){if(N)return R;N=!0;try{const e=_.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(R=!0)}catch(e){}return R}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=d(\"OriginalDelegate\"),o=d(\"Promise\"),r=d(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const i=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":i.call(this)}});let L=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){L=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(he){L=!1}const A={useG:!0},H={},F={},G=new RegExp(\"^\"+h+\"(\\\\w+)(true|false)$\"),B=d(\"propagationStopped\");function q(e,t){const n=(t?t(e):e)+u,o=(t?t(e):e)+l,r=h+n,s=h+o;H[e]={},H[e].false=r,H[e].true=s}function W(e,t,o){const r=o&&o.add||s,a=o&&o.rm||i,c=o&&o.listeners||\"eventListeners\",p=o&&o.rmAll||\"removeAllListeners\",f=d(r),g=\".\"+r+\":\",_=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[a].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},k=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].false];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}},m=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].true];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}};function y(t,o){if(!t)return!1;let s=!0;o&&void 0!==o.useG&&(s=o.useG);const i=o&&o.vh;let _=!0;o&&void 0!==o.chkDup&&(_=o.chkDup);let y=!1;o&&void 0!==o.rt&&(y=o.rt);let v=t;for(;v&&!v.hasOwnProperty(r);)v=n(v);if(!v&&t[r]&&(v=t),!v)return!1;if(v[f])return!1;const b=o&&o.eventNameToString,E={},w=v[f]=v[r],Z=v[d(a)]=v[a],S=v[d(c)]=v[c],D=v[d(p)]=v[p];let P;function C(e,t){return!L&&\"object\"==typeof e&&e?!!e.capture:L&&t?\"boolean\"==typeof e?{capture:e,passive:!0}:e?\"object\"==typeof e&&!1!==e.passive?Object.assign(Object.assign({},e),{passive:!0}):e:{passive:!0}:e}o&&o.prepend&&(P=v[d(o.prepend)]=v[o.prepend]);const O=s?function(e){if(!E.isExisting)return w.call(E.target,E.eventName,E.capture?m:k,E.options)}:function(e){return w.call(E.target,E.eventName,e.invoke,E.options)},z=s?function(e){if(!e.isRemoved){const t=H[e.eventName];let n;t&&(n=t[e.capture?l:u]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return Z.call(e.target,e.eventName,e.capture?m:k,e.options)}:function(e){return Z.call(e.target,e.eventName,e.invoke,e.options)},j=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},N=Zone[d(\"BLACK_LISTED_EVENTS\")],R=e[d(\"PASSIVE_EVENTS\")],x=function(t,n,r,a,c=!1,h=!1){return function(){const p=this||e;let f=arguments[0];o&&o.transferEventName&&(f=o.transferEventName(f));let d=arguments[1];if(!d)return t.apply(this,arguments);if(T&&\"uncaughtException\"===f)return t.apply(this,arguments);let g=!1;if(\"function\"!=typeof d){if(!d.handleEvent)return t.apply(this,arguments);g=!0}if(i&&!i(t,d,p,arguments))return;const k=L&&!!R&&-1!==R.indexOf(f),m=C(arguments[2],k);if(N)for(let e=0;e<N.length;e++)if(f===N[e])return k?t.call(p,f,d,m):t.apply(this,arguments);const y=!!m&&(\"boolean\"==typeof m||m.capture),v=!(!m||\"object\"!=typeof m)&&m.once,w=Zone.current;let Z=H[f];Z||(q(f,b),Z=H[f]);const S=Z[y?l:u];let D,P=p[S],O=!1;if(P){if(O=!0,_)for(let e=0;e<P.length;e++)if(j(P[e],d))return}else P=p[S]=[];const z=p.constructor.name,I=F[z];I&&(D=I[f]),D||(D=z+n+(b?b(f):f)),E.options=m,v&&(E.options.once=!1),E.target=p,E.capture=y,E.eventName=f,E.isExisting=O;const x=s?A:void 0;x&&(x.taskData=E);const M=w.scheduleEventTask(D,d,x,r,a);return E.target=null,x&&(x.taskData=null),v&&(m.once=!0),(L||\"boolean\"!=typeof M.options)&&(M.options=m),M.target=p,M.capture=y,M.eventName=f,g&&(M.originalDelegate=d),h?P.unshift(M):P.push(M),c?p:void 0}};return v[r]=x(w,g,O,z,y),P&&(v.prependListener=x(P,\".prependListener:\",function(e){return P.call(E.target,E.eventName,e.invoke,E.options)},z,y,!0)),v[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2],s=!!r&&(\"boolean\"==typeof r||r.capture),a=arguments[1];if(!a)return Z.apply(this,arguments);if(i&&!i(Z,a,t,arguments))return;const c=H[n];let p;c&&(p=c[s?l:u]);const f=p&&t[p];if(f)for(let e=0;e<f.length;e++){const o=f[e];if(j(o,a))return f.splice(e,1),o.isRemoved=!0,0===f.length&&(o.allRemoved=!0,t[p]=null,\"string\"==typeof n)&&(t[h+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),y?t:void 0}return Z.apply(this,arguments)},v[c]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=U(t,b?b(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},v[p]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=H[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=G.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[p].call(this,o)}this[p].call(this,\"removeListener\")}if(y)return this},I(v[r],w),I(v[a],Z),D&&I(v[p],D),S&&I(v[c],S),!0}let v=[];for(let n=0;n<t.length;n++)v[n]=y(t[n],o);return v}function U(e,t){if(!t){const n=[];for(let o in e){const r=G.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}let n=H[t];n||(q(t),n=H[t]);const o=e[n.false],r=e[n.true];return o?r?o.concat(r):o.slice():r?r.slice():[]}function V(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[B]=!0,e&&e.apply(t,n)})}function $(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const i=t[s]=t[o];t[o]=function(s,a,c){return a&&a.prototype&&r.forEach(function(t){const r=`${n}.${o}::`+t,s=a.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(a.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}),i.call(t,s,a,c)},e.attachOriginToPatched(t[o],i)}const X=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplayconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],J=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],Y=[\"load\"],K=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],Q=[\"bounce\",\"finish\",\"start\"],ee=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],te=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],ne=[\"close\",\"error\",\"open\",\"message\"],oe=[\"error\",\"message\"],re=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],X,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function se(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function ie(e,t,n,o){e&&P(e,se(e,t,n),o)}function ae(e,t){if(T&&!w)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(E){const e=window,t=x?[{target:e,ignoreProperties:[\"error\"]}]:[];ie(e,re.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),ie(Document.prototype,re,r),void 0!==e.SVGElement&&ie(e.SVGElement.prototype,re,r),ie(Element.prototype,re,r),ie(HTMLElement.prototype,re,r),ie(HTMLMediaElement.prototype,J,r),ie(HTMLFrameSetElement.prototype,X.concat(K),r),ie(HTMLBodyElement.prototype,X.concat(K),r),ie(HTMLFrameElement.prototype,Y,r),ie(HTMLIFrameElement.prototype,Y,r);const o=e.HTMLMarqueeElement;o&&ie(o.prototype,Q,r);const s=e.Worker;s&&ie(s.prototype,oe,r)}const s=t.XMLHttpRequest;s&&ie(s.prototype,ee,r);const i=t.XMLHttpRequestEventTarget;i&&ie(i&&i.prototype,ee,r),\"undefined\"!=typeof IDBIndex&&(ie(IDBIndex.prototype,te,r),ie(IDBRequest.prototype,te,r),ie(IDBOpenDBRequest.prototype,te,r),ie(IDBDatabase.prototype,te,r),ie(IDBTransaction.prototype,te,r),ie(IDBCursor.prototype,te,r)),o&&ie(WebSocket.prototype,ne,r)}Zone.__load_patch(\"util\",(n,a,c)=>{c.patchOnProperties=P,c.patchMethod=z,c.bindArguments=y,c.patchMacroTask=j;const f=a.__symbol__(\"BLACK_LISTED_EVENTS\"),d=a.__symbol__(\"UNPATCHED_EVENTS\");n[d]&&(n[f]=n[d]),n[f]&&(a[f]=a[d]=n[f]),c.patchEventPrototype=V,c.patchEventTarget=W,c.isIEOrEdge=M,c.ObjectDefineProperty=t,c.ObjectGetOwnPropertyDescriptor=e,c.ObjectCreate=o,c.ArraySlice=r,c.patchClass=O,c.wrapWithCurrentZone=p,c.filterProperties=se,c.attachOriginToPatched=I,c._redefineProperty=Object.defineProperty,c.patchCallbacks=$,c.getGlobalObjects=()=>({globalSources:F,zoneSymbolEventNames:H,eventNames:re,isBrowser:E,isMix:w,isNode:T,TRUE_STR:l,FALSE_STR:u,ZONE_SYMBOL_PREFIX:h,ADD_EVENT_LISTENER_STR:s,REMOVE_EVENT_LISTENER_STR:i})});const ce=d(\"zoneTask\");function le(e,t,n,o){let r=null,s=null;n+=o;const i={};function a(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete i[n.handleId]:n.handleId&&(n.handleId[ce]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=z(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=f(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},a,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?i[n]=e:n&&(n[ce]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=z(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=i[r]:(s=r&&r[ce],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete i[r]:r&&(r[ce]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function ue(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:i}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=i+(e+s),a=i+(e+r);o[e]={},o[e][s]=t,o[e][r]=a}const a=e.EventTarget;return a&&a.prototype?(t.patchEventTarget(e,[a&&a.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{const t=\"set\",n=\"clear\";le(e,t,n,\"Timeout\"),le(e,t,n,\"Interval\"),le(e,t,n,\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{le(e,\"request\",\"cancel\",\"AnimationFrame\"),le(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),le(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)z(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{(function(e,t){t.patchEventPrototype(e,t)})(e,n),ue(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),O(\"MutationObserver\"),O(\"WebKitMutationObserver\"),O(\"IntersectionObserver\"),O(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ae(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const u=e.XMLHttpRequest;if(!u)return;const h=u.prototype;let p=h[a],g=h[c];if(!p){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;p=e[a],g=e[c]}}const _=\"readystatechange\",k=\"scheduled\";function m(e){const o=e.data,i=o.target;i[s]=!1,i[l]=!1;const u=i[r];p||(p=i[a],g=i[c]),u&&g.call(i,_,u);const h=i[r]=()=>{if(i.readyState===i.DONE)if(!o.aborted&&i[s]&&e.state===k){const n=i[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=i[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||e.state!==k||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==i[s]||(i[l]=!0)};return p.call(i,_,h),i[n]||(i[n]=e),w.apply(i,o.args),i[s]=!0,e}function y(){}function v(e){const t=e.data;return t.aborted=!0,Z.apply(t.target,t.args)}const b=z(h,\"open\",()=>function(e,t){return e[o]=0==t[2],e[i]=t[1],b.apply(e,t)}),T=d(\"fetchTaskAborting\"),E=d(\"fetchTaskScheduling\"),w=z(h,\"send\",()=>function(e,n){if(!0===t.current[E])return w.apply(e,n);if(e[o])return w.apply(e,n);{const t={target:e,url:e[i],isPeriodic:!1,args:n,aborted:!1},o=f(\"XMLHttpRequest.send\",y,t,m,v);e&&!0===e[l]&&!t.aborted&&o.state===k&&o.invoke()}}),Z=z(h,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[T])return Z.apply(e,o)})}(e);const n=d(\"xhrTask\"),o=d(\"xhrSync\"),r=d(\"xhrListener\"),s=d(\"xhrScheduled\"),i=d(\"xhrURL\"),l=d(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],i=t[s];if(i){if(!v(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,y(arguments,o+\".\"+s))};return I(t,e),t})(i)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){U(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[d(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[d(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[1,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/dist/example/runtime.359d5ee4682f20e936e9.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/dist/example/styles.51422a5c94b8290ff190.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:initial}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:initial;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:initial;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:initial;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:initial}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:initial}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:initial}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:initial}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:initial}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:initial}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:initial}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:initial}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:initial;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:initial}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:initial;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:initial;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:initial;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:initial;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:initial;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:initial;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:initial;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:initial;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:initial!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:initial!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:initial;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\n//import { AppComponent } from './app.component';\nimport { ProductComponent } from \"./component\";\n\n@NgModule({\n  declarations: [ProductComponent],\n  imports: [BrowserModule],\n  providers: [],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/app/component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/app/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n      public name?: string,\n      public category?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/app/template.html",
    "content": "<div class=\"bg-info text-white m-2 p-2\">\n  There are {{model.getProducts().length}} products in the model\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 11/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncss-loader\nMIT\nCopyright JS Foundation and other contributors\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2020 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.51422a5c94b8290ff190.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime.359d5ee4682f20e936e9.js\" defer></script><script src=\"polyfills.bf99d438b005d57b2b31.js\" defer></script><script src=\"main.f78bdaa2683ef468e3b3.js\" defer></script></body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/dist/example/main.f78bdaa2683ef468e3b3.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(t,e,n){t.exports=n(\"zUnb\")},zUnb:function(t,e,n){\"use strict\";function r(t){return\"function\"==typeof t}n.r(e);let s=!1;const o={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else s&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");s=t},get useDeprecatedSynchronousErrorHandling(){return s}};function i(t){setTimeout(()=>{throw t},0)}const l={closed:!0,next(t){},error(t){if(o.useDeprecatedSynchronousErrorHandling)throw t;i(t)},complete(){}},u=(()=>Array.isArray||(t=>t&&\"number\"==typeof t.length))();function c(t){return null!==t&&\"object\"==typeof t}const a=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();let h=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:s,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(r(o)){s&&(this._unsubscribe=void 0);try{o.call(this)}catch(l){e=l instanceof a?d(l.errors):[l]}}if(u(i)){let t=-1,n=i.length;for(;++t<n;){const n=i[t];if(c(n))try{n.unsubscribe()}catch(l){e=e||[],l instanceof a?e=e.concat(d(l.errors)):e.push(l)}}}if(e)throw new a(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case\"function\":n=new t(e);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error(\"unrecognized teardown \"+e+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof t){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const s=this._subscriptions;return null===s?this._subscriptions=[n]:s.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}return t.EMPTY=function(t){return t.closed=!0,t}(new t),t})();function d(t){return t.reduce((t,e)=>t.concat(e instanceof a?e.errors:e),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!t){this.destination=l;break}if(\"object\"==typeof t){t instanceof p?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,t,e,n)}}[f](){return this}static create(t,e,n){const r=new p(t,e,n);return r.syncErrorThrowable=!1,r}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class _ extends p{constructor(t,e,n,s){let o;super(),this._parentSubscriber=t;let i=this;r(e)?o=e:e&&(o=e.next,n=e.error,s=e.complete,e!==l&&(i=Object.create(e),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=o,this._error=n,this._complete=s}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;o.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:n}=o;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):i(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;i(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);o.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),o.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(t,e,n){if(!o.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{e.call(this._context,n)}catch(r){return o.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=r,t.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const y=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function m(t){return t}let g=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:r}=this,s=function(t,e,n){if(t){if(t instanceof p)return t;if(t[f])return t[f]()}return t||e||n?new p(t,e,n):new p(l)}(t,e,n);if(s.add(r?r.call(s,this.source):this.source||o.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),o.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(t){try{return this._subscribe(t)}catch(e){o.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof p?n:null}return!0}(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=v(e))((e,n)=>{let r;r=this.subscribe(e=>{try{t(e)}catch(s){n(s),r&&r.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[y](){return this}pipe(...t){return 0===t.length?this:(0===(e=t).length?m:1===e.length?e[0]:function(t){return e.reduce((t,e)=>e(t),t)})(this);var e}toPromise(t){return new(t=v(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function v(t){if(t||(t=o.Promise||Promise),!t)throw new Error(\"no Promise impl found\");return t}const b=(()=>{function t(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return t.prototype=Object.create(Error.prototype),t})();class w extends h{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}class C extends p{constructor(t){super(t),this.destination=t}}let E=(()=>{class t extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(t){const e=new x(this,this);return e.operator=t,e}next(t){if(this.closed)throw new b;if(!this.isStopped){const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].next(t)}}error(t){if(this.closed)throw new b;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].error(t);this.observers.length=0}complete(){if(this.closed)throw new b;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let r=0;r<e;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new b;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new b;return this.hasError?(t.error(this.thrownError),h.EMPTY):this.isStopped?(t.complete(),h.EMPTY):(this.observers.push(t),new w(this,t))}asObservable(){const t=new g;return t.source=this,t}}return t.create=(t,e)=>new x(t,e),t})();class x extends E{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):h.EMPTY}}class k{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new T(t,this.project,this.thisArg))}}class T extends p{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}const S=t=>e=>{for(let n=0,r=t.length;n<r&&!e.closed;n++)e.next(t[n]);e.complete()};function I(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const A=I();const O=t=>{if(t&&\"function\"==typeof t[y])return o=t,t=>{const e=o[y]();if(\"function\"!=typeof e.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return e.subscribe(t)};if((e=t)&&\"number\"==typeof e.length&&\"function\"!=typeof e)return S(t);var e,n,r,s,o;if((n=t)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return s=t,t=>(s.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,i),t);if(t&&\"function\"==typeof t[A])return r=t,t=>{const e=r[A]();for(;;){let r;try{r=e.next()}catch(n){return t.error(n),t}if(r.done){t.complete();break}if(t.next(r.value),t.closed)break}return\"function\"==typeof e.return&&t.add(()=>{e.return&&e.return()}),t};{const e=c(t)?\"an invalid object\":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`)}};class D extends p{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class j extends p{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function H(t,e,n=Number.POSITIVE_INFINITY){return\"function\"==typeof e?r=>r.pipe(H((n,r)=>{return(s=t(n,r),s instanceof g?s:new g(O(s))).pipe(function(t,e){return function(e){return e.lift(new k(t,void 0))}}((t,s)=>e(n,t,r,s)));var s},n)):(\"number\"==typeof e&&(n=e),e=>e.lift(new N(t,n)))}class N{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new P(t,this.project,this.concurrent))}}class P extends j{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e)}_innerSub(t){const e=new D(this),n=this.destination;n.add(e);const r=function(t,e){if(!e.closed)return t instanceof g?t.subscribe(e):O(t)(e)}(t,e);r!==e&&n.add(r)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t){this.destination.next(t)}notifyComplete(){const t=this.buffer;this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function R(){return function(t){return t.lift(new M(t))}}class M{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const r=new F(t,n),s=e.subscribe(r);return r.closed||(r.connection=n.connect()),s}}class F extends p{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:n}=this,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new h,t.add(this.source.subscribe(new B(this.getSubject(),this))),t.closed&&(this._connection=null,t=h.EMPTY)),t}refCount(){return R()(this)}}const L=(()=>{const t=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class B extends C{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}function Z(){return new E}function z(t){return{toString:t}.toString()}const $=\"__parameters__\";function U(t,e,n){return z(()=>{const r=function(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}(e);function s(...t){if(this instanceof s)return r.apply(this,t),this;const e=new s(...t);return n.annotation=e,n;function n(t,n,r){const s=t.hasOwnProperty($)?t[$]:Object.defineProperty(t,$,{value:[]})[$];for(;s.length<=r;)s.push(null);return(s[r]=s[r]||[]).push(e),t}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s})}const W=U(\"Inject\",t=>({token:t})),q=U(\"Optional\"),Q=U(\"Self\"),G=U(\"SkipSelf\");function J(t){if(\"string\"==typeof t)return t;if(Array.isArray(t))return\"[\"+t.map(J).join(\", \")+\"]\";if(null==t)return\"\"+t;if(t.overriddenName)return\"\"+t.overriddenName;if(t.name)return\"\"+t.name;const e=t.toString();if(null==e)return\"\"+e;const n=e.indexOf(\"\\n\");return-1===n?e:e.substring(0,n)}function K(t,e){return null==t||\"\"===t?null===e?\"\":e:null==e||\"\"===e?t:t+\" \"+e}function Y(t){for(let e in t)if(t[e]===Y)return e;throw Error(\"Could not find renamed property on target object.\")}function X(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function tt(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function et(t){return nt(t,st)||nt(t,it)}function nt(t,e){return t.hasOwnProperty(e)?t[e]:null}function rt(t){return t&&(t.hasOwnProperty(ot)||t.hasOwnProperty(lt))?t[ot]:null}const st=Y({\"\\u0275prov\":Y}),ot=Y({\"\\u0275inj\":Y}),it=Y({ngInjectableDef:Y}),lt=Y({ngInjectorDef:Y});class ut{constructor(t,e){this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\\u0275prov=X({token:this,providedIn:e.providedIn||\"root\",factory:e.factory}))}toString(){return\"InjectionToken \"+this._desc}}var ct=function(t){return t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\",t}({});const at=\"undefined\"!=typeof globalThis&&globalThis,ht=\"undefined\"!=typeof window&&window,dt=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,ft=\"undefined\"!=typeof global&&global,pt=at||ft||ht||dt,_t=Y({__forward_ref__:Y});function yt(t){return t.__forward_ref__=yt,t.toString=function(){return J(this())},t}function mt(t){return\"function\"==typeof(e=t)&&e.hasOwnProperty(_t)&&e.__forward_ref__===yt?t():t;var e}function gt(t,e){t.forEach(t=>Array.isArray(t)?gt(t,e):e(t))}var vt=function(t){return t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\",t}({});const bt={},wt=[],Ct=Y({\"\\u0275cmp\":Y}),Et=Y({\"\\u0275dir\":Y}),xt=Y({\"\\u0275pipe\":Y}),kt=Y({\"\\u0275mod\":Y}),Tt=Y({\"\\u0275loc\":Y}),St=Y({\"\\u0275fac\":Y}),It=Y({__NG_ELEMENT_ID__:Y});let At=0;function Ot(t){return Pt(t)||function(t){return t[Et]||null}(t)}function Dt(t){return function(t){return t[xt]||null}(t)}const jt={};function Ht(t){const e={type:t.type,bootstrap:t.bootstrap||wt,declarations:t.declarations||wt,imports:t.imports||wt,exports:t.exports||wt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&z(()=>{jt[t.id]=t.type}),e}function Nt(t,e){if(null==t)return bt;const n={};for(const r in t)if(t.hasOwnProperty(r)){let s=t[r],o=s;Array.isArray(s)&&(o=s[1],s=s[0]),n[s]=r,e&&(e[s]=o)}return n}function Pt(t){return t[Ct]||null}function Rt(t,e){const n=t[kt]||null;if(!n&&!0===e)throw new Error(`Type ${J(t)} does not have '\\u0275mod' property.`);return n}function Mt(t){return\"function\"==typeof t?t.name||t.toString():\"object\"==typeof t&&null!=t&&\"function\"==typeof t.type?t.type.name||t.type.toString():function(t){return\"string\"==typeof t?t:null==t?\"\":\"\"+t}(t)}var Ft=function(t){return t[t.Default=0]=\"Default\",t[t.Host=1]=\"Host\",t[t.Self=2]=\"Self\",t[t.SkipSelf=4]=\"SkipSelf\",t[t.Optional=8]=\"Optional\",t}({});let Vt;function Lt(t){const e=Vt;return Vt=t,e}function Bt(t,e,n){const r=et(t);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Ft.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${J(t)}]`)}const Zt={},zt=/\\n/gm,$t=\"__source\",Ut=Y({provide:String,useValue:Y});let Wt=void 0;function qt(t){const e=Wt;return Wt=t,e}function Qt(t,e=Ft.Default){if(void 0===Wt)throw new Error(\"inject() must be called from an injection context\");return null===Wt?Bt(t,void 0,e):Wt.get(t,e&Ft.Optional?null:void 0,e)}function Gt(t,e=Ft.Default){return(Vt||Qt)(mt(t),e)}function Jt(t){const e=[];for(let n=0;n<t.length;n++){const r=mt(t[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let t=void 0,n=Ft.Default;for(let e=0;e<r.length;e++){const s=r[e];s instanceof q||\"Optional\"===s.ngMetadataName||s===q?n|=Ft.Optional:s instanceof G||\"SkipSelf\"===s.ngMetadataName||s===G?n|=Ft.SkipSelf:s instanceof Q||\"Self\"===s.ngMetadataName||s===Q?n|=Ft.Self:t=s instanceof W||s===W?s.token:s}e.push(Gt(t,n))}else e.push(Gt(r))}return e}let Kt=void 0;const Yt=20;function Xt(t){return Array.isArray(t)&&\"object\"==typeof t[1]}function te(t){return Array.isArray(t)&&!0===t[1]}function ee(t){return 0!=(8&t.flags)}function ne(t){return null!==t.template}function re(t){return!!t.listen}const se={createRenderer:(t,e)=>void 0!==Kt?Kt:\"undefined\"!=typeof document?document:void 0};function oe(t){for(;Array.isArray(t);)t=t[0];return t}function ie(t,e){return oe(e[t.index])}function le(t,e){const n=e[t];return Xt(n)?n:n[0]}function ue(t){const e=function(t){return t.__ngContext__||null}(t);return e?Array.isArray(e)?e:e.lView:null}function ce(t){return 128==(128&t[2])}function ae(t,e){return null==e?null:t[e]}function he(t){t[18]=0}function de(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const fe={lFrame:Oe(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function pe(){return fe.bindingsEnabled}function _e(){return fe.lFrame.lView}function ye(){return fe.lFrame.tView}function me(){let t=ge();for(;null!==t&&64===t.type;)t=t.parent;return t}function ge(){return fe.lFrame.currentTNode}function ve(t,e){const n=fe.lFrame;n.currentTNode=t,n.isParent=e}function be(){return fe.lFrame.isParent}function we(){return fe.isInCheckNoChangesMode}function Ce(t){fe.isInCheckNoChangesMode=t}function Ee(t,e){const n=fe.lFrame;n.bindingIndex=n.bindingRootIndex=t,xe(e)}function xe(t){fe.lFrame.currentDirectiveIndex=t}function ke(t){fe.lFrame.currentQueryIndex=t}function Te(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function Se(t,e,n){if(n&Ft.SkipSelf){let r=e,s=t;for(;r=r.parent,!(null!==r||n&Ft.Host||(r=Te(s),null===r)||(s=s[15],10&r.type)););if(null===r)return!1;e=r,t=s}const r=fe.lFrame=Ae();return r.currentTNode=e,r.lView=t,!0}function Ie(t){const e=Ae(),n=t[1];fe.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function Ae(){const t=fe.lFrame,e=null===t?null:t.child;return null===e?Oe(t):e}function Oe(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function De(){const t=fe.lFrame;return fe.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const je=De;function He(){const t=De();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Ne(t){fe.lFrame.selectedIndex=t}let Pe=!0,Re=!1;function Me(){return Re=!0,Pe}function Fe(t,e){return t.hasOwnProperty(St)?t[St]:null}class Ve extends Error{constructor(t,e){super(function(t,e){return`${t?`NG0${t}: `:\"\"}${e}`}(t,e)),this.code=t}}function Le(t,e){const n=e?\" in \"+e:\"\";throw new Ve(\"201\",`No provider for ${Mt(t)} found${n}`)}class Be{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function Ze(){const t=$e(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===bt)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}}function ze(t,e,n,r){const s=$e(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:bt,current:null}),o=s.current||(s.current={}),i=s.previous,l=this.declaredInputs[n],u=i[l];o[l]=new Be(u&&u.currentValue,e,i===bt),t[r]=e}function $e(t){return t.__ngSimpleChanges__||null}function Ue(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n<r;n++){const e=t.data[n].type.prototype,{ngAfterContentInit:r,ngAfterContentChecked:s,ngAfterViewInit:o,ngAfterViewChecked:i,ngOnDestroy:l}=e;r&&(t.contentHooks||(t.contentHooks=[])).push(-n,r),s&&((t.contentHooks||(t.contentHooks=[])).push(n,s),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,s)),o&&(t.viewHooks||(t.viewHooks=[])).push(-n,o),i&&((t.viewHooks||(t.viewHooks=[])).push(n,i),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,i)),null!=l&&(t.destroyHooks||(t.destroyHooks=[])).push(n,l)}}function We(t,e,n){Ge(t,e,3,n)}function qe(t,e,n,r){(3&t[2])===n&&Ge(t,e,n,r)}function Qe(t,e){let n=t[2];(3&n)===e&&(n&=2047,n+=1,t[2]=n)}function Ge(t,e,n,r){const s=null!=r?r:-1;let o=0;for(let i=void 0!==r?65535&t[18]:0;i<e.length;i++)if(\"number\"==typeof e[i+1]){if(o=e[i],null!=r&&o>=r)break}else e[i]<0&&(t[18]+=65536),(o<s||-1==s)&&(Je(t,n,e,i),t[18]=(4294901760&t[18])+i+2),i++}function Je(t,e,n,r){const s=n[r]<0,o=n[r+1],i=t[s?-n[r]:n[r]];s?t[2]>>11<t[18]>>16&&(3&t[2])===e&&(t[2]+=2048,o.call(i)):o.call(i)}const Ke=-1;class Ye{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}function Xe(t,e,n){const r=re(t);let s=0;for(;s<n.length;){const o=n[s];if(\"number\"==typeof o){if(0!==o)break;s++;const i=n[s++],l=n[s++],u=n[s++];r?t.setAttribute(e,l,u,i):e.setAttributeNS(i,l,u)}else{const i=o,l=n[++s];64===i.charCodeAt(0)?r&&t.setProperty(e,i,l):r?t.setAttribute(e,i,l):e.setAttribute(i,l),s++}}return s}function tn(t,e){if(null===e||0===e.length);else if(null===t||0===t.length)t=e.slice();else{let n=-1;for(let r=0;r<e.length;r++){const s=e[r];\"number\"==typeof s?n=s:0===n||en(t,n,s,null,-1===n||2===n?e[++r]:null)}}return t}function en(t,e,n,r,s){let o=0,i=t.length;if(-1===e)i=-1;else for(;o<t.length;){const n=t[o++];if(\"number\"==typeof n){if(n===e){i=-1;break}if(n>e){i=o-1;break}}}for(;o<t.length;){const e=t[o];if(\"number\"==typeof e)break;if(e===n){if(null===r)return void(null!==s&&(t[o+1]=s));if(r===t[o+1])return void(t[o+2]=s)}o++,null!==r&&o++,null!==s&&o++}-1!==i&&(t.splice(i,0,e),o=i+1),t.splice(o++,0,n),null!==r&&t.splice(o++,0,r),null!==s&&t.splice(o++,0,s)}function nn(t){return 32767&t}function rn(t,e){let n=t>>16,r=e;for(;n>0;)r=r[15],n--;return r}let sn=!0;function on(t){const e=sn;return sn=t,e}let ln=0;function un(t,e){const n=an(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,cn(r.data,t),cn(e,null),cn(r.blueprint,null));const s=hn(t,e),o=t.injectorIndex;if(s!==Ke){const t=nn(s),n=rn(s,e),r=n[1].data;for(let s=0;s<8;s++)e[o+s]=n[t+s]|r[t+s]}return e[o+8]=s,o}function cn(t,e){t.push(0,0,0,0,0,0,0,0,e)}function an(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function hn(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,s=e;for(;null!==s;){const t=s[1],e=t.type;if(r=2===e?t.declTNode:1===e?s[6]:null,null===r)return Ke;if(n++,s=s[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return Ke}function dn(t,e,n){!function(t,e,n){let r;\"string\"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(It)&&(r=n[It]),null==r&&(r=n[It]=ln++);const s=255&r,o=1<<s,i=64&s,l=32&s,u=e.data;128&s?i?l?u[t+7]|=o:u[t+6]|=o:l?u[t+5]|=o:u[t+4]|=o:i?l?u[t+3]|=o:u[t+2]|=o:l?u[t+1]|=o:u[t]|=o}(t,e,n)}function fn(t,e,n){if(n&Ft.Optional)return t;Le(e,\"NodeInjector\")}function pn(t,e,n,r){if(n&Ft.Optional&&void 0===r&&(r=null),0==(n&(Ft.Self|Ft.Host))){const s=t[9],o=Lt(void 0);try{return s?s.get(e,r,n&Ft.Optional):Bt(e,r,n&Ft.Optional)}finally{Lt(o)}}return fn(r,e,n)}const _n={};function yn(){return new wn(me(),_e())}function mn(t,e,n,r,s,o){const i=e[1],l=i.data[t+8],u=function(t,e,n,r,s){const o=t.providerIndexes,i=e.data,l=1048575&o,u=t.directiveStart,c=o>>20,a=s?l+c:t.directiveEnd;for(let h=r?l:l+c;h<a;h++){const t=i[h];if(h<u&&n===t||h>=u&&t.type===n)return h}if(s){const t=i[u];if(t&&ne(t)&&t.type===n)return u}return null}(l,i,n,null==r?function(t){return 2==(2&t.flags)}(l)&&sn:r!=i&&0!=(3&l.type),s&Ft.Host&&o===l);return null!==u?gn(e,i,u,l):_n}function gn(t,e,n,r){let s=t[n];const o=e.data;if(s instanceof Ye){const i=s;i.resolving&&function(t,e){throw new Ve(\"200\",\"Circular dependency in DI detected for \"+t)}(Mt(o[n]));const l=on(i.canSeeViewProviders);i.resolving=!0;const u=i.injectImpl?Lt(i.injectImpl):null;Se(t,r,Ft.Default);try{s=t[n]=i.factory(void 0,o,t,r),e.firstCreatePass&&n>=r.directiveStart&&function(t,e,n){const{ngOnChanges:r,ngOnInit:s,ngDoCheck:o}=e.type.prototype;if(r){const r=((i=e).type.prototype.ngOnChanges&&(i.setInput=ze),Ze);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,r)}var i;s&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,s),o&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,o))}(n,o[n],e)}finally{null!==u&&Lt(u),on(l),i.resolving=!1,je()}}return s}function vn(t,e,n){const r=64&t,s=32&t;let o;return o=128&t?r?s?n[e+7]:n[e+6]:s?n[e+5]:n[e+4]:r?s?n[e+3]:n[e+2]:s?n[e+1]:n[e],!!(o&1<<t)}function bn(t,e){return!(t&Ft.Self||t&Ft.Host&&e)}class wn{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return function(t,e,n,r=Ft.Default,s){if(null!==t){const o=function(t){if(\"string\"==typeof t)return t.charCodeAt(0)||0;const e=t.hasOwnProperty(It)?t[It]:void 0;return\"number\"==typeof e?e>=0?255&e:yn:e}(n);if(\"function\"==typeof o){if(!Se(e,t,r))return r&Ft.Host?fn(s,n,r):pn(e,n,r,s);try{const t=o();if(null!=t||r&Ft.Optional)return t;Le(n)}finally{je()}}else if(\"number\"==typeof o){let s=null,i=an(t,e),l=Ke,u=r&Ft.Host?e[16][6]:null;for((-1===i||r&Ft.SkipSelf)&&(l=-1===i?hn(t,e):e[i+8],l!==Ke&&bn(r,!1)?(s=e[1],i=nn(l),e=rn(l,e)):i=-1);-1!==i;){const t=e[1];if(vn(o,i,t.data)){const t=mn(i,e,n,s,r,u);if(t!==_n)return t}l=e[i+8],l!==Ke&&bn(r,e[1].data[i+8]===u)&&vn(o,i,e)?(s=t,i=nn(l),e=rn(l,e)):i=-1}}}return pn(e,n,r,s)}(this._tNode,this._lView,t,void 0,e)}}function Cn(t){return t.ngDebugContext}function En(t){return t.ngOriginalError}function xn(t,...e){t.error(...e)}class kn{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),r=function(t){return t.ngErrorLogger||xn}(t);r(this._console,\"ERROR\",t),e&&r(this._console,\"ORIGINAL ERROR\",e),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(t){return t?Cn(t)?Cn(t):this._findContext(En(t)):null}_findOriginalError(t){let e=En(t);for(;e&&En(e);)e=En(e);return e}}function Tn(t,e){t.__ngContext__=e}const Sn=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(pt))();function In(t){return t instanceof Function?t():t}var An=function(t){return t[t.Important=1]=\"Important\",t[t.DashCase=2]=\"DashCase\",t}({});function On(t,e){return(void 0)(t,e)}function Dn(t){const e=t[3];return te(e)?e[3]:e}function jn(t){return Nn(t[13])}function Hn(t){return Nn(t[4])}function Nn(t){for(;null!==t&&!te(t);)t=t[4];return t}function Pn(t,e,n,r,s){if(null!=r){let o,i=!1;te(r)?o=r:Xt(r)&&(i=!0,r=r[0]);const l=oe(r);0===t&&null!==n?null==s?Vn(e,n,l):Fn(e,n,l,s||null,!0):1===t&&null!==n?Fn(e,n,l,s||null,!0):2===t?function(t,e,n){const r=function(t,e){return re(t)?t.parentNode(e):e.parentNode}(t,e);r&&function(t,e,n,r){re(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,l,i):3===t&&e.destroyNode(l),null!=o&&function(t,e,n,r,s){const o=n[7];o!==oe(n)&&Pn(e,t,r,o,s);for(let i=10;i<n.length;i++){const s=n[i];zn(s[1],s,t,e,r,o)}}(e,t,o,n,s)}}function Rn(t,e,n){return re(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Mn(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r<n.length;r+=2){const t=e[n[r]];if(!(t instanceof Ye)){const e=n[r+1];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)e[n+1].call(t[e[n]]);else e.call(t)}}}(t,e),function(t,e){const n=t.cleanup;if(null!==n){const t=e[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const s=n[r+1],o=\"function\"==typeof s?s(e):oe(e[s]),i=t[n[r+2]],l=n[r+3];\"boolean\"==typeof l?o.removeEventListener(n[r],i,l):l>=0?t[l]():t[-l].unsubscribe(),r+=2}else n[r].call(t[n[r+1]]);e[7]=null}}(t,e),1===e[1].type&&re(e[11])&&e[11].destroy();const n=e[17];if(null!==n&&te(e[3])){n!==e[3]&&function(t,e){const n=t[9],r=n.indexOf(e),s=e[3];1024&e[2]&&(e[2]&=-1025,de(s,-1)),n.splice(r,1)}(n,e);const r=e[19];null!==r&&r.detachView(t)}}}function Fn(t,e,n,r,s){re(t)?t.insertBefore(e,n,r,s):e.insertBefore(n,r,s)}function Vn(t,e,n){re(t)?t.appendChild(e,n):e.appendChild(n)}function Ln(t,e,n,r,s){null!==r?Fn(t,e,n,r,s):Vn(t,e,n)}function Bn(t,e,n,r){const s=function(t,e,n){return function(t,e,n){let r=e;for(;null!==r&&40&r.type;)r=(e=r).parent;if(null===r)return n[0];if(2&r.flags){const e=t.data[r.directiveStart].encapsulation;if(e===vt.None||e===vt.Emulated)return null}return ie(r,n)}(t,e.parent,n)}(t,r,e),o=e[11],i=function(t,e,n){return function(t,e,n){return 40&t.type?ie(t,n):null}(t,0,n)}(r.parent||e[6],0,e);if(null!=s)if(Array.isArray(n))for(let l=0;l<n.length;l++)Ln(o,s,n[l],i,!1);else Ln(o,s,n,i,!1)}function Zn(t,e,n,r,s,o,i){for(;null!=n;){const l=r[n.index],u=n.type;if(i&&0===e&&(l&&Tn(oe(l),r),n.flags|=4),64!=(64&n.flags))if(8&u)Zn(t,e,n.child,r,s,o,!1),Pn(e,t,s,l,o);else if(32&u){const i=On(n,r);let u;for(;u=i();)Pn(e,t,s,u,o);Pn(e,t,s,l,o)}else 16&u?$n(t,e,r,n,s,o):Pn(e,t,s,l,o);n=i?n.projectionNext:n.next}}function zn(t,e,n,r,s,o){Zn(n,r,t.firstChild,e,s,o,!1)}function $n(t,e,n,r,s,o){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)Pn(e,t,s,l[u],o);else Zn(t,e,l,i[3],s,o,!0)}function Un(t,e,n){re(t)?t.setAttribute(e,\"style\",n):e.style.cssText=n}function Wn(t,e,n){re(t)?\"\"===n?t.removeAttribute(e,\"class\"):t.setAttribute(e,\"class\",n):e.className=n}function qn(t,e,n){let r=t.length;for(;;){const s=t.indexOf(e,n);if(-1===s)return s;if(0===s||t.charCodeAt(s-1)<=32){const n=e.length;if(s+n===r||t.charCodeAt(s+n)<=32)return s}n=s+1}}const Qn=\"ng-template\";function Gn(t,e,n){let r=0;for(;r<t.length;){let s=t[r++];if(n&&\"class\"===s){if(s=t[r],-1!==qn(s.toLowerCase(),e,0))return!0}else if(1===s){for(;r<t.length&&\"string\"==typeof(s=t[r++]);)if(s.toLowerCase()===e)return!0;return!1}}return!1}function Jn(t){return 4===t.type&&t.value!==Qn}function Kn(t,e,n){return e===(4!==t.type||n?t.value:Qn)}function Yn(t,e,n){let r=4;const s=t.attrs||[],o=function(t){for(let n=0;n<t.length;n++)if(3===(e=t[n])||4===e||6===e)return n;var e;return t.length}(s);let i=!1;for(let l=0;l<e.length;l++){const u=e[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!Kn(t,u,n)||\"\"===u&&1===e.length){if(Xn(r))return!1;i=!0}}else{const c=8&r?u:e[++l];if(8&r&&null!==t.attrs){if(!Gn(t.attrs,c,n)){if(Xn(r))return!1;i=!0}continue}const a=tr(8&r?\"class\":u,s,Jn(t),n);if(-1===a){if(Xn(r))return!1;i=!0;continue}if(\"\"!==c){let t;t=a>o?\"\":s[a+1].toLowerCase();const e=8&r?t:null;if(e&&-1!==qn(e,c,0)||2&r&&c!==t){if(Xn(r))return!1;i=!0}}}}else{if(!i&&!Xn(r)&&!Xn(u))return!1;if(i&&Xn(u))continue;i=!1,r=u|1&r}}return Xn(r)||i}function Xn(t){return 0==(1&t)}function tr(t,e,n,r){if(null===e)return-1;let s=0;if(r||!n){let n=!1;for(;s<e.length;){const r=e[s];if(r===t)return s;if(3===r||6===r)n=!0;else{if(1===r||2===r){let t=e[++s];for(;\"string\"==typeof t;)t=e[++s];continue}if(4===r)break;if(0===r){s+=4;continue}}s+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){const r=t[n];if(\"number\"==typeof r)return-1;if(r===e)return n;n++}return-1}(e,t)}function er(t,e,n=!1){for(let r=0;r<e.length;r++)if(Yn(t,e[r],n))return!0;return!1}function nr(t,e){return t?\":not(\"+e.trim()+\")\":e}function rr(t){let e=t[0],n=1,r=2,s=\"\",o=!1;for(;n<t.length;){let i=t[n];if(\"string\"==typeof i)if(2&r){const e=t[++n];s+=\"[\"+i+(e.length>0?'=\"'+e+'\"':\"\")+\"]\"}else 8&r?s+=\".\"+i:4&r&&(s+=\" \"+i);else\"\"===s||Xn(i)||(e+=nr(o,s),s=\"\"),r=i,o=o||!Xn(r);n++}return\"\"!==s&&(e+=nr(o,s)),e}const sr={};function or(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const s=n[r],o=n[r+1];if(-1!==o){const n=t.data[o];ke(s),n.contentQueries(2,e[o],o)}}}function ir(t,e,n,r,s,o,i,l,u,c){const a=e.blueprint.slice();return a[0]=s,a[2]=140|r,he(a),a[3]=a[15]=t,a[8]=n,a[10]=i||t&&t[10],a[11]=l||t&&t[11],a[12]=u||t&&t[12]||null,a[9]=c||t&&t[9]||null,a[6]=o,a[16]=2==e.type?t[16]:a,a}function lr(t,e,n,r,s){let o=t.data[e];if(null===o)o=function(t,e,n,r,s){const o=ge(),i=be(),l=t.data[e]=function(t,e,n,r,s,o){return{type:n,index:r,insertBeforeIndex:null,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:s,attrs:o,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,i?o:o&&o.parent,n,e,r,s);return null===t.firstChild&&(t.firstChild=l),null!==o&&(i?null==o.child&&null!==l.parent&&(o.child=l):null===o.next&&(o.next=l)),l}(t,e,n,r,s),fe.lFrame.inI18n&&(o.flags|=64);else if(64&o.type){o.type=n,o.value=r,o.attrs=s;const t=function(){const t=fe.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}();o.injectorIndex=null===t?-1:t.injectorIndex}return ve(o,!0),o}function ur(t,e,n,r){if(0===n)return-1;const s=e.length;for(let o=0;o<n;o++)e.push(r),t.blueprint.push(r),t.data.push(null);return s}function cr(t,e,n){Ie(e);try{const r=t.viewQuery;null!==r&&Dr(1,r,n);const s=t.template;null!==s&&dr(t,e,s,1,n),t.firstCreatePass&&(t.firstCreatePass=!1),t.staticContentQueries&&or(t,e),t.staticViewQueries&&Dr(2,t.viewQuery,n);const o=t.components;null!==o&&function(t,e){for(let n=0;n<e.length;n++)Sr(t,e[n])}(e,o)}catch(r){throw t.firstCreatePass&&(t.incompleteFirstPass=!0),r}finally{e[2]&=-5,He()}}function ar(t,e,n,r){const s=e[2];if(256==(256&s))return;Ie(e);const o=we();try{he(e),fe.lFrame.bindingIndex=t.bindingStartIndex,null!==n&&dr(t,e,n,2,r);const i=3==(3&s);if(!o)if(i){const n=t.preOrderCheckHooks;null!==n&&We(e,n,null)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,null),Qe(e,0)}if(function(t){for(let e=jn(t);null!==e;e=Hn(e)){if(!e[2])continue;const t=e[9];for(let e=0;e<t.length;e++){const n=t[e],r=n[3];0==(1024&n[2])&&de(r,1),n[2]|=1024}}}(e),function(t){for(let e=jn(t);null!==e;e=Hn(e))for(let t=10;t<e.length;t++){const n=e[t],r=n[1];ce(n)&&ar(r,n,r.template,n[8])}}(e),null!==t.contentQueries&&or(t,e),!o)if(i){const n=t.contentCheckHooks;null!==n&&We(e,n)}else{const n=t.contentHooks;null!==n&&qe(e,n,1),Qe(e,1)}!function(t,e){const n=t.hostBindingOpCodes;if(null!==n)try{for(let t=0;t<n.length;t++){const r=n[t];if(r<0)Ne(~r);else{const s=r,o=n[++t],i=n[++t];Ee(o,s),i(2,e[s])}}}finally{Ne(-1)}}(t,e);const l=t.components;null!==l&&function(t,e){for(let n=0;n<e.length;n++)kr(t,e[n])}(e,l);const u=t.viewQuery;if(null!==u&&Dr(2,u,r),!o)if(i){const n=t.viewCheckHooks;null!==n&&We(e,n)}else{const n=t.viewHooks;null!==n&&qe(e,n,2),Qe(e,2)}!0===t.firstUpdatePass&&(t.firstUpdatePass=!1),o||(e[2]&=-73),1024&e[2]&&(e[2]&=-1025,de(e[3],-1))}finally{He()}}function hr(t,e,n,r){const s=e[10],o=!we(),i=4==(4&e[2]);try{o&&!i&&s.begin&&s.begin(),i&&cr(t,e,r),ar(t,e,n,r)}finally{o&&!i&&s.end&&s.end()}}function dr(t,e,n,r,s){const o=fe.lFrame.selectedIndex;try{Ne(-1),2&r&&e.length>Yt&&function(t,e,n,r){if(!r)if(3==(3&e[2])){const n=t.preOrderCheckHooks;null!==n&&We(e,n,20)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,20)}Ne(20)}(t,e,0,we()),n(r,s)}finally{Ne(o)}}function fr(t){const e=t.tView;return null===e||e.incompleteFirstPass?t.tView=pr(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts):e}function pr(t,e,n,r,s,o,i,l,u,c){const a=Yt+r,h=a+s,d=function(t,e){const n=[];for(let r=0;r<e;r++)n.push(r<t?null:sr);return n}(a,h),f=\"function\"==typeof c?c():c;return d[1]={type:t,blueprint:d,template:n,queries:null,viewQuery:l,declTNode:e,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof o?o():o,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:f,incompleteFirstPass:!1}}function _r(t,e,n){for(let r in t)if(t.hasOwnProperty(r)){const s=t[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(e,s):n[r]=[e,s]}return n}function yr(t,e,n,r,s,o){const i=o.hostBindings;if(i){let n=t.hostBindingOpCodes;null===n&&(n=t.hostBindingOpCodes=[]);const o=~e.index;(function(t){let e=t.length;for(;e>0;){const n=t[--e];if(\"number\"==typeof n&&n<0)return n}return 0})(n)!=o&&n.push(o),n.push(r,s,i)}}function mr(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function gr(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function vr(t,e,n){if(n){if(e.exportAs)for(let r=0;r<e.exportAs.length;r++)n[e.exportAs[r]]=t;ne(e)&&(n[\"\"]=t)}}function br(t,e,n){t.flags|=1,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function wr(t,e,n,r,s){t.data[r]=s;const o=s.factory||(s.factory=Fe(s.type)),i=new Ye(o,ne(s),null);t.blueprint[r]=i,n[r]=i,yr(t,e,0,r,ur(t,n,s.hostVars,sr),s)}function Cr(t,e,n){const r=ie(e,t),s=fr(n),o=t[10],i=Ir(t,ir(t,s,null,n.onPush?64:16,r,e,o,o.createRenderer(r,n),null,null));t[e.index]=i}function Er(t,e,n,r,s,o){const i=o[e];if(null!==i){const t=r.setInput;for(let e=0;e<i.length;){const s=i[e++],o=i[e++],l=i[e++];null!==t?r.setInput(n,l,s,o):n[o]=l}}}function xr(t,e){let n=null,r=0;for(;r<e.length;){const s=e[r];if(0!==s)if(5!==s){if(\"number\"==typeof s)break;t.hasOwnProperty(s)&&(null===n&&(n=[]),n.push(s,t[s],e[r+1])),r+=2}else r+=2;else r+=4}return n}function kr(t,e){const n=le(e,t);if(ce(n)){const t=n[1];80&n[2]?ar(t,n,t.template,n[8]):n[5]>0&&Tr(n)}}function Tr(t){for(let n=jn(t);null!==n;n=Hn(n))for(let t=10;t<n.length;t++){const e=n[t];if(1024&e[2]){const t=e[1];ar(t,e,t.template,e[8])}else e[5]>0&&Tr(e)}const e=t[1].components;if(null!==e)for(let n=0;n<e.length;n++){const r=le(e[n],t);ce(r)&&r[5]>0&&Tr(r)}}function Sr(t,e){const n=le(e,t),r=n[1];!function(t,e){for(let n=e.length;n<t.blueprint.length;n++)e.push(t.blueprint[n])}(r,n),cr(r,n,n[8])}function Ir(t,e){return t[13]?t[14][4]=e:t[13]=e,t[14]=e,e}function Ar(t,e,n){const r=e[10];r.begin&&r.begin();try{ar(t,e,t.template,n)}catch(s){throw function(t,e){const n=t[9],r=n?n.get(kn,null):null;r&&r.handleError(e)}(e,s),s}finally{r.end&&r.end()}}function Or(t){!function(t){for(let e=0;e<t.components.length;e++){const n=t.components[e],r=ue(n),s=r[1];hr(s,r,s.template,n)}}(t[8])}function Dr(t,e,n){ke(0),e(t,n)}const jr=(()=>Promise.resolve(null))();function Hr(t,e,n){let r=n?t.styles:null,s=n?t.classes:null,o=0;if(null!==e)for(let i=0;i<e.length;i++){const t=e[i];\"number\"==typeof t?o=t:1==o?s=K(s,t):2==o&&(r=K(r,t+\": \"+e[++i]+\";\"))}n?t.styles=r:t.stylesWithoutHost=r,n?t.classes=s:t.classesWithoutHost=s}const Nr=new ut(\"INJECTOR\",-1);class Pr{get(t,e=Zt){if(e===Zt){const e=new Error(`NullInjectorError: No provider for ${J(t)}!`);throw e.name=\"NullInjectorError\",e}return e}}const Rr=new ut(\"Set Injector scope.\"),Mr={},Fr={},Vr=[];let Lr=void 0;function Br(){return void 0===Lr&&(Lr=new Pr),Lr}function Zr(t,e=null,n=null,r){return new zr(t,n,e||Br(),r)}class zr{constructor(t,e,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];e&&gt(e,n=>this.processProvider(n,t,e)),gt([t],t=>this.processInjectorType(t,[],s)),this.records.set(Nr,Ur(void 0,this));const o=this.records.get(Rr);this.scope=null!=o?o.value:null,this.source=r||(\"object\"==typeof t?null:J(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Zt,n=Ft.Default){this.assertNotDestroyed();const r=qt(this);try{if(!(n&Ft.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=(\"function\"==typeof(s=t)||\"object\"==typeof s&&s instanceof ut)&&et(t);e=n&&this.injectableDefInScope(n)?Ur($r(t),Mr):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(n&Ft.Self?Br():this.parent).get(t,e=n&Ft.Optional&&e===Zt?null:e)}catch(o){if(\"NullInjectorError\"===o.name){if((o.ngTempTokenPath=o.ngTempTokenPath||[]).unshift(J(t)),r)throw o;return function(t,e,n,r){const s=t.ngTempTokenPath;throw e[$t]&&s.unshift(e[$t]),t.message=function(t,e,n,r=null){t=t&&\"\\n\"===t.charAt(0)&&\"\\u0275\"==t.charAt(1)?t.substr(2):t;let s=J(e);if(Array.isArray(e))s=e.map(J).join(\" -> \");else if(\"object\"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];t.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):J(r)))}s=`{${t.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${s}]: ${t.replace(zt,\"\\n  \")}`}(\"\\n\"+t.message,s,n,r),t.ngTokenPath=s,t.ngTempTokenPath=null,t}(o,t,\"R3InjectorError\",this.source)}throw o}finally{qt(r)}var s}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((e,n)=>t.push(J(n))),`R3Injector[${t.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(t,e,n){if(!(t=mt(t)))return!1;let r=rt(t);const s=null==r&&t.ngModule||void 0,o=void 0===s?t:s,i=-1!==n.indexOf(o);if(void 0!==s&&(r=rt(s)),null==r)return!1;if(null!=r.imports&&!i){let t;n.push(o);try{gt(r.imports,r=>{this.processInjectorType(r,e,n)&&(void 0===t&&(t=[]),t.push(r))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:r}=t[e];gt(r,t=>this.processProvider(t,n,r||Vr))}}this.injectorDefTypes.add(o),this.records.set(o,Ur(r.factory,Mr));const l=r.providers;if(null!=l&&!i){const e=t;gt(l,t=>this.processProvider(t,e,l))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,n){let r=qr(t=mt(t))?t:mt(t&&t.provide);const s=function(t,e,n){return Wr(t)?Ur(void 0,t.useValue):Ur(function(t,e,n){let r=void 0;if(qr(t)){const e=mt(t);return Fe(e)||$r(e)}if(Wr(t))r=()=>mt(t.useValue);else if((s=t)&&s.useFactory)r=()=>t.useFactory(...Jt(t.deps||[]));else if(function(t){return!(!t||!t.useExisting)}(t))r=()=>Gt(mt(t.useExisting));else{const e=mt(t&&(t.useClass||t.provide));if(!function(t){return!!t.deps}(t))return Fe(e)||$r(e);r=()=>new e(...Jt(t.deps))}var s;return r}(t),Mr)}(t);if(qr(t)||!0!==t.multi)this.records.get(r);else{let e=this.records.get(r);e||(e=Ur(void 0,Mr,!0),e.factory=()=>Jt(e.multi),this.records.set(r,e)),r=t,e.multi.push(t)}this.records.set(r,s)}hydrate(t,e){var n;return e.value===Mr&&(e.value=Fr,e.value=e.factory()),\"object\"==typeof e.value&&e.value&&null!==(n=e.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&(\"string\"==typeof t.providedIn?\"any\"===t.providedIn||t.providedIn===this.scope:this.injectorDefTypes.has(t.providedIn))}}function $r(t){const e=et(t),n=null!==e?e.factory:Fe(t);if(null!==n)return n;const r=rt(t);if(null!==r)return r.factory;if(t instanceof ut)throw new Error(`Token ${J(t)} is missing a \\u0275prov definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=function(t,e){const n=[];for(let r=0;r<t;r++)n.push(\"?\");return n}(e);throw new Error(`Can't resolve all parameters for ${J(t)}: (${n.join(\", \")}).`)}const n=function(t){const e=t&&(t[st]||t[it]);if(e){const n=function(t){if(t.hasOwnProperty(\"name\"))return t.name;const e=(\"\"+t).match(/^function\\s*([^\\s(]+)/);return null===e?\"\":e[1]}(t);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\nThis will become an error in a future version of Angular. Please add @Injectable() to the \"${n}\" class.`),e}return null}(t);return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error(\"unreachable\")}function Ur(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Wr(t){return null!==t&&\"object\"==typeof t&&Ut in t}function qr(t){return\"function\"==typeof t}const Qr=function(t,e,n){return function(t,e=null,n=null,r){const s=Zr(t,e,n,r);return s._resolveInjectorDefTypes(),s}({name:n},e,t,n)};let Gr=(()=>{class t{static create(t,e){return Array.isArray(t)?Qr(t,e,\"\"):Qr(t.providers,t.parent,t.name||\"\")}}return t.THROW_IF_NOT_FOUND=Zt,t.NULL=new Pr,t.\\u0275prov=X({token:t,providedIn:\"any\",factory:()=>Gt(Nr)}),t.__NG_ELEMENT_ID__=-1,t})();function Jr(t,e){Ue(ue(t)[1],me())}let Kr=null;function Yr(){if(!Kr){const t=pt.Symbol;if(t&&t.iterator)Kr=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Kr=n)}}}return Kr}function Xr(t){return!!ts(t)&&(Array.isArray(t)||!(t instanceof Map)&&Yr()in t)}function ts(t){return null!==t&&(\"function\"==typeof t||\"object\"==typeof t)}function es(t,e,n,r,s){const o=s?\"class\":\"style\";!function(t,e,n,r,s){for(let o=0;o<n.length;){const i=n[o++],l=n[o++],u=e[i],c=t.data[i];null!==c.setInput?c.setInput(u,s,r,l):u[l]=s}}(t,n,e.inputs[o],o,r)}function ns(t,e,n,r){const s=_e(),o=ye(),i=Yt+t,l=s[11],u=s[i]=Rn(l,e,fe.lFrame.currentNamespace),c=o.firstCreatePass?function(t,e,n,r,s,o,i){const l=e.consts,u=lr(e,t,2,s,ae(l,o));return function(t,e,n,r){let s=!1;if(pe()){const o=function(t,e,n){const r=t.directiveRegistry;let s=null;if(r)for(let o=0;o<r.length;o++){const i=r[o];er(n,i.selectors,!1)&&(s||(s=[]),dn(un(n,e),t,i.type),ne(i)?(gr(t,n),s.unshift(i)):s.push(i))}return s}(t,e,n),i=null===r?null:{\"\":-1};if(null!==o){s=!0,br(n,t.data.length,o.length);for(let t=0;t<o.length;t++){const e=o[t];e.providersResolver&&e.providersResolver(e)}let r=!1,l=!1,u=ur(t,e,o.length,null);for(let s=0;s<o.length;s++){const c=o[s];n.mergedAttrs=tn(n.mergedAttrs,c.hostAttrs),wr(t,n,e,u,c),vr(u,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128);const a=c.type.prototype;!r&&(a.ngOnChanges||a.ngOnInit||a.ngDoCheck)&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n.index),r=!0),l||!a.ngOnChanges&&!a.ngDoCheck||((t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n.index),l=!0),u++}!function(t,e){const n=e.directiveEnd,r=t.data,s=e.attrs,o=[];let i=null,l=null;for(let u=e.directiveStart;u<n;u++){const t=r[u],n=t.inputs,c=null===s||Jn(e)?null:xr(n,s);o.push(c),i=_r(n,u,i),l=_r(t.outputs,u,l)}null!==i&&(i.hasOwnProperty(\"class\")&&(e.flags|=16),i.hasOwnProperty(\"style\")&&(e.flags|=32)),e.initialInputs=o,e.inputs=i,e.outputs=l}(t,n)}i&&function(t,e,n){if(e){const r=t.localNames=[];for(let t=0;t<e.length;t+=2){const s=n[e[t+1]];if(null==s)throw new Ve(\"301\",`Export of name '${e[t+1]}' not found!`);r.push(e[t],s)}}}(n,r,i)}n.mergedAttrs=tn(n.mergedAttrs,n.attrs)}(e,n,u,ae(l,i)),null!==u.attrs&&Hr(u,u.attrs,!1),null!==u.mergedAttrs&&Hr(u,u.mergedAttrs,!0),null!==e.queries&&e.queries.elementStart(e,u),u}(i,o,s,0,e,n,r):o.data[i];ve(c,!0);const a=c.mergedAttrs;null!==a&&Xe(l,u,a);const h=c.classes;null!==h&&Wn(l,u,h);const d=c.styles;null!==d&&Un(l,u,d),64!=(64&c.flags)&&Bn(o,s,u,c),0===fe.lFrame.elementDepthCount&&Tn(u,s),fe.lFrame.elementDepthCount++,function(t){return 1==(1&t.flags)}(c)&&(function(t,e,n){pe()&&(function(t,e,n,r){const s=n.directiveStart,o=n.directiveEnd;t.firstCreatePass||un(n,e),Tn(r,e);const i=n.initialInputs;for(let l=s;l<o;l++){const r=t.data[l],o=ne(r);o&&Cr(e,n,r);const u=gn(e,t,l,n);Tn(u,e),null!==i&&Er(0,l-s,u,r,0,i),o&&(le(n.index,e)[8]=u)}}(t,e,n,ie(n,e)),128==(128&n.flags)&&function(t,e,n){const r=n.directiveStart,s=n.directiveEnd,o=n.index,i=fe.lFrame.currentDirectiveIndex;try{Ne(o);for(let n=r;n<s;n++){const r=t.data[n],s=e[n];xe(n),null===r.hostBindings&&0===r.hostVars&&null===r.hostAttrs||mr(r,s)}}finally{Ne(-1),xe(i)}}(t,e,n))}(o,s,c),function(t,e,n){if(ee(e)){const r=e.directiveEnd;for(let s=e.directiveStart;s<r;s++){const e=t.data[s];e.contentQueries&&e.contentQueries(1,n[s],s)}}}(o,c,s)),null!==r&&function(t,e,n=ie){const r=e.localNames;if(null!==r){let s=e.index+1;for(let o=0;o<r.length;o+=2){const i=r[o+1],l=-1===i?n(e,t):t[i];t[s++]=l}}}(s,c)}function rs(t){return!!t&&\"function\"==typeof t.then}const ss=void 0;var os=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],ss],[[\"AM\",\"PM\"],ss,ss],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],ss,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],ss,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",ss,\"{1} 'at' {0}\",ss],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},\"ltr\",function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===e&&0===n?1:5}];let is={};function ls(t){return t in is||(is[t]=pt.ng&&pt.ng.common&&pt.ng.common.locales&&pt.ng.common.locales[t]),is[t]}var us=function(t){return t[t.LocaleId=0]=\"LocaleId\",t[t.DayPeriodsFormat=1]=\"DayPeriodsFormat\",t[t.DayPeriodsStandalone=2]=\"DayPeriodsStandalone\",t[t.DaysFormat=3]=\"DaysFormat\",t[t.DaysStandalone=4]=\"DaysStandalone\",t[t.MonthsFormat=5]=\"MonthsFormat\",t[t.MonthsStandalone=6]=\"MonthsStandalone\",t[t.Eras=7]=\"Eras\",t[t.FirstDayOfWeek=8]=\"FirstDayOfWeek\",t[t.WeekendRange=9]=\"WeekendRange\",t[t.DateFormat=10]=\"DateFormat\",t[t.TimeFormat=11]=\"TimeFormat\",t[t.DateTimeFormat=12]=\"DateTimeFormat\",t[t.NumberSymbols=13]=\"NumberSymbols\",t[t.NumberFormats=14]=\"NumberFormats\",t[t.CurrencyCode=15]=\"CurrencyCode\",t[t.CurrencySymbol=16]=\"CurrencySymbol\",t[t.CurrencyName=17]=\"CurrencyName\",t[t.Currencies=18]=\"Currencies\",t[t.Directionality=19]=\"Directionality\",t[t.PluralCase=20]=\"PluralCase\",t[t.ExtraData=21]=\"ExtraData\",t}({});const cs=\"en-US\";let as=cs;function hs(t){var e,n;n=\"Expected localeId to be defined\",null==(e=t)&&function(t,e,n,r){throw new Error(\"ASSERTION ERROR: \"+t+` [Expected=> null != ${e} <=Actual]`)}(n,e),\"string\"==typeof t&&(as=t.toLowerCase().replace(/_/g,\"-\"))}class ds{}class fs{resolveComponentFactory(t){throw function(t){const e=Error(`No component factory found for ${J(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(t)}}let ps=(()=>{class t{}return t.NULL=new fs,t})();function _s(...t){}function ys(t,e){return new gs(ie(t,e))}const ms=function(){return ys(me(),_e())};let gs=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=ms,t})();class vs{}let bs=(()=>{class t{}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>null}),t})();class ws{constructor(t){this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}}const Cs=new ws(\"11.0.2\");class Es{constructor(){}supports(t){return Xr(t)}create(t){return new ks(t)}}const xs=(t,e)=>e;class ks{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||xs}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,r=0,s=null;for(;e||n;){const o=!n||e&&e.currentIndex<As(n,r,s)?e:n,i=As(o,r,s),l=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(e=e._next,null==o.previousIndex)r++;else{s||(s=[]);const t=i-r,e=l-r;if(t!=e){for(let n=0;n<t;n++){const r=n<s.length?s[n]:s[n]=0,o=r+n;e<=o&&o<t&&(s[n]=r+1)}s[o.previousIndex]=e-t}}i!==l&&t(o,i,l)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!Xr(t))throw new Error(`Error trying to diff '${J(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,r,s=this._itHead,o=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],r=this._trackByFn(e,n),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,n,r,e)),Object.is(s.item,n)||this._addIdentityChange(s,n)):(s=this._mismatch(s,n,r,e),o=!0),s=s._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[Yr()]();let r;for(;!(r=n.next()).done;)e(r.value)}}(t,t=>{r=this._trackByFn(e,t),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,t,r,e)),Object.is(s.item,t)||this._addIdentityChange(s,t)):(s=this._mismatch(s,t,r,e),o=!0),s=s._next,e++}),this.length=e;return this._truncate(s),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):t=this._addAfter(new Ts(e,n),s,r),t}_verifyReinsertion(t,e,n,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Is),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Is),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class Ts{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Ss{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class Is{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new Ss,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function As(t,e,n){const r=t.previousIndex;if(null===r)return r;let s=0;return n&&r<n.length&&(s=n[r]),r+e+s}class Os{constructor(){}supports(t){return t instanceof Map||ts(t)}create(){return new Ds}}class Ds{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||ts(t)))throw new Error(`Error trying to diff '${J(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const n=this._records.get(t);this._maybeAddToChanges(n,e);const r=n._prev,s=n._next;return r&&(r._next=s),s&&(s._prev=r),n._next=null,n._prev=null,n}const n=new js(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(n=>e(t[n],n))}}class js{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let Hs=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Es])}),t})(),Ns=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Os])}),t})();function Ps(t,e,n,r,s=!1){for(;null!==n;){const o=e[n.index];if(null!==o&&r.push(oe(o)),te(o))for(let t=10;t<o.length;t++){const e=o[t],n=e[1].firstChild;null!==n&&Ps(e[1],e,n,r)}const i=n.type;if(8&i)Ps(t,e,n.child,r);else if(32&i){const t=On(n,e);let s;for(;s=t();)r.push(s)}else if(16&i){const t=e[16],s=t[6].projection[n.projection];if(Array.isArray(s))r.push(...s);else{const e=Dn(t);Ps(e[1],e,s,r,!0)}}n=s?n.projectionNext:n.next}return r}class Rs extends class{constructor(t,e){this._lView=t,this._cdRefInjectingView=e,this._appRef=null,this._viewContainerRef=null}get rootNodes(){const t=this._lView,e=t[1];return Ps(e,t,e.firstChild,[])}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}!function(t,e){if(!(256&e[2])){const n=e[11];re(n)&&n.destroyNode&&zn(t,e,n,3,null,null),function(t){let e=t[13];if(!e)return Mn(t[1],t);for(;e;){let n=null;if(Xt(e))n=e[13];else{const t=e[10];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)Xt(e)&&Mn(e[1],e),e=e[3];null===e&&(e=t),Xt(e)&&Mn(e[1],e),n=e&&e[4]}e=n}}(e)}}(this._lView[1],this._lView)}onDestroy(t){!function(t,e,n,r){const s=(o=e)[7]||(o[7]=[]);var o;s.push(null),t.firstCreatePass&&function(t){return t.cleanup||(t.cleanup=[])}(t).push(r,s.length-1)}(this._lView[1],this._lView,0,t)}markForCheck(){!function(t){for(;t;){t[2]|=64;const e=Dn(t);if(0!=(512&t[2])&&!e)return t;t=e}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){Ar(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(t,e,n){Ce(!0);try{Ar(t,e,n)}finally{Ce(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=t}detachFromAppRef(){var t;this._appRef=null,zn(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=t}}{constructor(t){super(t),this._view=t}detectChanges(){Or(this._view)}checkNoChanges(){!function(t){Ce(!0);try{Or(t)}finally{Ce(!1)}}(this._view)}get context(){return null}}const Ms=[new Os],Fs=new Hs([new Es]),Vs=new Ns(Ms);class Ls{}const Bs={};class Zs extends ps{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=Pt(t);return new Us(e,this.ngModule)}}function zs(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const $s=new ut(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Sn});class Us extends ds{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors.map(rr).join(\",\"),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return zs(this.componentDef.inputs)}get outputs(){return zs(this.componentDef.outputs)}create(t,e,n,r){const s=(r=r||this.ngModule)?function(t,e){return{get:(n,r,s)=>{const o=t.get(n,Bs,s);return o!==Bs||r===Bs?o:e.get(n,r,s)}}}(t,r.injector):t,o=s.get(vs,se),i=s.get(bs,null),l=o.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(t,e,n){if(re(t))return t.selectRootElement(e,n===vt.ShadowDom);let r=\"string\"==typeof e?t.querySelector(e):e;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Rn(o.createRenderer(null,this.componentDef),u,function(t){const e=t.toLowerCase();return\"svg\"===e?\"http://www.w3.org/2000/svg\":\"math\"===e?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h={components:[],scheduler:Sn,clean:jr,playerHandler:null,flags:0},d=pr(0,null,null,1,0,null,null,null,null,null),f=ir(null,d,h,a,null,null,o,l,i,s);let p,_;Ie(f);try{const t=function(t,e,n,r,s,o){const i=n[1];n[20]=t;const l=lr(i,20,2,\"#host\",null),u=l.mergedAttrs=e.hostAttrs;null!==u&&(Hr(l,u,!0),null!==t&&(Xe(s,t,u),null!==l.classes&&Wn(s,t,l.classes),null!==l.styles&&Un(s,t,l.styles)));const c=r.createRenderer(t,e),a=ir(n,fr(e),null,e.onPush?64:16,n[20],l,r,c,null,null);return i.firstCreatePass&&(dn(un(l,n),i,e.type),gr(i,l),br(l,n.length,1)),Ir(n,a),n[20]=a}(c,this.componentDef,f,o,l);if(c)if(n)Xe(l,c,[\"ng-version\",Cs.full]);else{const{attrs:t,classes:e}=function(t){const e=[],n=[];let r=1,s=2;for(;r<t.length;){let o=t[r];if(\"string\"==typeof o)2===s?\"\"!==o&&e.push(o,t[++r]):8===s&&n.push(o);else{if(!Xn(s))break;s=o}r++}return{attrs:e,classes:n}}(this.componentDef.selectors[0]);t&&Xe(l,c,t),e&&e.length>0&&Wn(l,c,e.join(\" \"))}if(_=d.data[20],void 0!==e){const t=_.projection=[];for(let n=0;n<this.ngContentSelectors.length;n++){const r=e[n];t.push(null!=r?Array.from(r):null)}}p=function(t,e,n,r,s){const o=n[1],i=function(t,e,n){const r=me();t.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),wr(t,r,e,ur(t,e,1,null),n));const s=gn(e,t,r.directiveStart,r);Tn(s,e);const o=ie(r,e);return o&&Tn(o,e),s}(o,n,e);if(r.components.push(i),t[8]=i,s&&s.forEach(t=>t(i,e)),e.contentQueries){const t=me();e.contentQueries(1,i,t.directiveStart)}const l=me();return!o.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(Ne(l.index),yr(n[1],l,0,l.directiveStart,l.directiveEnd,e),mr(e,i)),i}(t,this.componentDef,f,h,[Jr]),cr(d,f,null)}finally{He()}return new Ws(this.componentType,p,ys(_,f),f,_)}}class Ws extends class{}{constructor(t,e,n,r,s){super(),this.location=n,this._rootLView=r,this._tNode=s,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new Rs(r),this.componentType=t}get injector(){return new wn(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const qs=new Map;class Qs extends Ls{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Zs(this);const n=Rt(t),r=t[Tt]||null;r&&hs(r),this._bootstrapComponents=In(n.bootstrap),this._r3Injector=Zr(t,e,[{provide:Ls,useValue:this},{provide:ps,useValue:this.componentFactoryResolver}],J(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=Gr.THROW_IF_NOT_FOUND,n=Ft.Default){return t===Gr||t===Ls||t===Nr?this:this._r3Injector.get(t,e,n)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Gs extends class{}{constructor(t){super(),this.moduleType=t,null!==Rt(t)&&function(t){const e=new Set;!function t(n){const r=Rt(n,!0),s=r.id;null!==s&&(function(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${J(e)} vs ${J(e.name)}`)}(s,qs.get(s),n),qs.set(s,n));const o=In(r.imports);for(const i of o)e.has(i)||(e.add(i),t(i))}(t)}(t)}create(t){return new Qs(this.moduleType,t)}}const Js=class extends E{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let r,s=t=>null,o=()=>null;t&&\"object\"==typeof t?(r=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(s=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(o=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(r=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(s=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(o=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,s,o);return t instanceof h&&t.add(i),i}},Ks=new ut(\"Application Initializer\");let Ys=(()=>{class t{constructor(t){this.appInits=t,this.resolve=_s,this.reject=_s,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();rs(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Ks,8))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const Xs=new ut(\"AppId\"),to={provide:Xs,useFactory:function(){return`${eo()}${eo()}${eo()}`},deps:[]};function eo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const no=new ut(\"Platform Initializer\"),ro=new ut(\"Platform ID\"),so=new ut(\"appBootstrapListener\");let oo=(()=>{class t{log(t){console.log(t)}warn(t){console.warn(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const io=new ut(\"LocaleId\"),lo=new ut(\"DefaultCurrencyCode\");class uo{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const co=function(t){return new Gs(t)},ao=co,ho=function(t){return Promise.resolve(co(t))},fo=function(t){const e=co(t),n=In(Rt(t).declarations).reduce((t,e)=>{const n=Pt(e);return n&&t.push(new Us(n)),t},[]);return new uo(e,n)},po=fo,_o=function(t){return Promise.resolve(fo(t))};let yo=(()=>{class t{constructor(){this.compileModuleSync=ao,this.compileModuleAsync=ho,this.compileModuleAndAllComponentsSync=po,this.compileModuleAndAllComponentsAsync=_o}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const mo=(()=>Promise.resolve(0))();function go(t){\"undefined\"==typeof Zone?mo.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",t)}class vo{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Js(!1),this.onMicrotaskEmpty=new Js(!1),this.onStable=new Js(!1),this.onError=new Js(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched();const n=this;n._nesting=0,n._outer=n._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(n._inner=n._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(n._inner=n._inner.fork(Zone.longStackTraceZoneSpec)),n.shouldCoalesceEventChangeDetection=e,n.lastRequestAnimationFrameId=-1,n.nativeRequestAnimationFrame=function(){let t=pt.requestAnimationFrame,e=pt.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__(\"OriginalDelegate\")];n&&(t=n);const r=e[Zone.__symbol__(\"OriginalDelegate\")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function(t){const e=!!t.shouldCoalesceEventChangeDetection&&t.nativeRequestAnimationFrame&&(()=>{!function(t){-1===t.lastRequestAnimationFrameId&&(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(pt,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask(\"fakeTopEventTask\",()=>{t.lastRequestAnimationFrameId=-1,Eo(t),Co(t)},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Eo(t))}(t)});t._inner=t._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:e},onInvokeTask:(n,r,s,o,i,l)=>{try{return xo(t),n.invokeTask(s,o,i,l)}finally{e&&\"eventTask\"===o.type&&e(),ko(t)}},onInvoke:(e,n,r,s,o,i,l)=>{try{return xo(t),e.invoke(r,s,o,i,l)}finally{ko(t)}},onHasTask:(e,n,r,s)=>{e.hasTask(r,s),n===r&&(\"microTask\"==s.change?(t._hasPendingMicrotasks=s.microTask,Eo(t),Co(t)):\"macroTask\"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,n,r,s)=>(e.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(n)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!vo.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(vo.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,r){const s=this._inner,o=s.scheduleEventTask(\"NgZoneEvent: \"+r,t,wo,bo,bo);try{return s.runTask(o,e,n)}finally{s.cancelTask(o)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function bo(){}const wo={};function Co(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Eo(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||t.shouldCoalesceEventChangeDetection&&-1!==t.lastRequestAnimationFrameId)}function xo(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ko(t){t._nesting--,Co(t)}class To{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Js,this.onMicrotaskEmpty=new Js,this.onStable=new Js,this.onError=new Js}run(t,e,n){return t.apply(e,n)}runGuarded(t,e,n){return t.apply(e,n)}runOutsideAngular(t){return t()}runTask(t,e,n,r){return t.apply(e,n)}}let So=(()=>{class t{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{vo.assertNotInAngularZone(),go(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())go(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let r=-1;e&&e>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==r),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Io=(()=>{class t{constructor(){this._applications=new Map,Do.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return Do.findTestabilityInTree(this,t,e)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class Ao{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}let Oo,Do=new Ao;const jo=new ut(\"AllowMultipleToken\");function Ho(t,e,n=[]){const r=\"Platform: \"+e,s=new ut(r);return(e=[])=>{let o=No();if(!o||o.injector.get(jo,!1))if(t)t(n.concat(e).concat({provide:s,useValue:!0}));else{const t=n.concat(e).concat({provide:s,useValue:!0},{provide:Rr,useValue:\"platform\"});!function(t){if(Oo&&!Oo.destroyed&&!Oo.injector.get(jo,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");Oo=t.get(Po);const e=t.get(no,null);e&&e.forEach(t=>t())}(Gr.create({providers:t,name:r}))}return function(t){const e=No();if(!e)throw new Error(\"No platform exists!\");if(!e.injector.get(t,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return e}(s)}}function No(){return Oo&&!Oo.destroyed?Oo:null}let Po=(()=>{class t{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t,e){let n;return n=\"noop\"===t?new To:(\"zone.js\"===t?void 0:t)||new vo({enableLongStackTrace:Me(),shouldCoalesceEventChangeDetection:e}),n}(e?e.ngZone:void 0,e&&e.ngZoneEventCoalescing||!1),r=[{provide:vo,useValue:n}];return n.run(()=>{const e=Gr.create({providers:r,parent:this.injector,name:t.moduleType.name}),s=t.create(e),o=s.injector.get(kn,null);if(!o)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return s.onDestroy(()=>Fo(this._modules,s)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{o.handleError(t)}})),function(t,e,n){try{const r=n();return rs(r)?r.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(o,n,()=>{const t=s.injector.get(Ys);return t.runInitializers(),t.donePromise.then(()=>(hs(s.injector.get(io,cs)||cs),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,e=[]){const n=Ro({},e);return function(t,e,n){const r=new Gs(n);return Promise.resolve(r)}(0,0,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(Mo);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${J(t.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. Please define one of these.`);t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Gr))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Ro(t,e){return Array.isArray(e)?e.reduce(Ro,t):Object.assign(Object.assign({},t),e)}let Mo=(()=>{class t{constructor(t,e,n,r,s,o){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Me(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),l=new g(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{vo.assertNotInAngularZone(),go(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{vo.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=function(...t){let e=Number.POSITIVE_INFINITY,n=null,r=t[t.length-1];var s;return(s=r)&&\"function\"==typeof s.schedule?(n=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(e=t.pop())):\"number\"==typeof r&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof g?t[0]:function(t=Number.POSITIVE_INFINITY){return H(m,t)}(e)(function(t,e){return e?function(t,e){return new g(n=>{const r=new h;let s=0;return r.add(e.schedule(function(){s!==t.length?(n.next(t[s++]),n.closed||r.add(this.schedule())):n.complete()})),r})}(t,e):new g(S(t))}(t,n))}(i,l.pipe(t=>{return R()((e=Z,function(t){let n;n=\"function\"==typeof e?e:function(){return e};const r=Object.create(t,L);return r.source=t,r.subjectFactory=n,r})(t));var e}))}bootstrap(t,e){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=t instanceof ds?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(Ls),s=n.create(Gr.NULL,[],e||n.selector,r);s.onDestroy(()=>{this._unloadComponent(s)});const o=s.injector.get(So,null);return o&&s.injector.get(Io).registerApplication(s.location.nativeElement,o),this._loadComponent(s),Me()&&this._console.log(\"Angular is running in development mode. Call enableProdMode() to enable production mode.\"),s}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Fo(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(so,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),Fo(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo),Gt(oo),Gt(Gr),Gt(kn),Gt(ps),Gt(Ys))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Fo(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const Vo=Ho(null,\"core\",[{provide:ro,useValue:\"unknown\"},{provide:Po,deps:[Gr]},{provide:Io,deps:[]},{provide:oo,deps:[]}]),Lo=[{provide:Mo,useClass:Mo,deps:[vo,oo,Gr,kn,ps,Ys]},{provide:$s,deps:[vo],useFactory:function(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:Ys,useClass:Ys,deps:[[new q,Ks]]},{provide:yo,useClass:yo,deps:[]},to,{provide:Hs,useFactory:function(){return Fs},deps:[]},{provide:Ns,useFactory:function(){return Vs},deps:[]},{provide:io,useFactory:function(t){return hs(t=t||\"undefined\"!=typeof $localize&&$localize.locale||cs),t},deps:[[new W(io),new q,new G]]},{provide:lo,useValue:\"USD\"}];let Bo=(()=>{class t{constructor(t){}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(Mo))},providers:Lo}),t})(),Zo=null;function zo(){return Zo}const $o=new ut(\"DocumentToken\");var Uo=function(t){return t[t.Zero=0]=\"Zero\",t[t.One=1]=\"One\",t[t.Two=2]=\"Two\",t[t.Few=3]=\"Few\",t[t.Many=4]=\"Many\",t[t.Other=5]=\"Other\",t}({});class Wo{}let qo=(()=>{class t extends Wo{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(function(t){return function(t){const e=function(t){return t.toLowerCase().replace(/_/g,\"-\")}(t);let n=ls(e);if(n)return n;const r=e.split(\"-\")[0];if(n=ls(r),n)return n;if(\"en\"===r)return os;throw new Error(`Missing locale data for the locale \"${t}\".`)}(t)[us.PluralCase]}(e||this.locale)(t)){case Uo.Zero:return\"zero\";case Uo.One:return\"one\";case Uo.Two:return\"two\";case Uo.Few:return\"few\";case Uo.Many:return\"many\";default:return\"other\"}}}return t.\\u0275fac=function(e){return new(e||t)(Gt(io))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Qo=(()=>{class t{}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[{provide:Wo,useClass:qo}]}),t})();class Go extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var t;t=new Go,Zo||(Zo=t)}getProperty(t,e){return t[e]}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}getValue(t){return t.value}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return\"window\"===e?window:\"document\"===e?t:\"body\"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=Ko||(Ko=document.querySelector(\"base\"),Ko)?Ko.getAttribute(\"href\"):null;return null==e?null:(n=e,Jo||(Jo=document.createElement(\"a\")),Jo.setAttribute(\"href\",n),\"/\"===Jo.pathname.charAt(0)?Jo.pathname:\"/\"+Jo.pathname);var n}resetBaseElement(){Ko=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return function(t,e){e=encodeURIComponent(e);for(const n of t.split(\";\")){const t=n.indexOf(\"=\"),[r,s]=-1==t?[n,\"\"]:[n.slice(0,t),n.slice(t+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}(document.cookie,t)}}let Jo,Ko=null;const Yo=new ut(\"TRANSITION_ID\"),Xo=[{provide:Ks,useFactory:function(t,e,n){return()=>{n.get(Ys).donePromise.then(()=>{const n=zo();Array.prototype.slice.apply(e.querySelectorAll(\"style[ng-transition]\")).filter(e=>e.getAttribute(\"ng-transition\")===t).forEach(t=>n.remove(t))})}},deps:[Yo,$o,Gr],multi:!0}];class ti{static init(){var t;t=new ti,Do=t}addToWindow(t){pt.getAngularTestability=(e,n=!0)=>{const r=t.findTestabilityInTree(e,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},pt.getAllAngularTestabilities=()=>t.getAllTestabilities(),pt.getAllAngularRootElements=()=>t.getAllRootElements(),pt.frameworkStabilizers||(pt.frameworkStabilizers=[]),pt.frameworkStabilizers.push(t=>{const e=pt.getAllAngularTestabilities();let n=e.length,r=!1;const s=function(e){r=r||e,n--,0==n&&t(r)};e.forEach(function(t){t.whenStable(s)})})}findTestabilityInTree(t,e,n){if(null==e)return null;const r=t.getTestability(e);return null!=r?r:n?zo().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}const ei=new ut(\"EventManagerPlugins\");let ni=(()=>{class t{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let r=0;r<n.length;r++){const e=n[r];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(\"No event manager plugin found for event \"+t)}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ei),Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class ri{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const r=zo().getGlobalEventTarget(this._doc,t);if(!r)throw new Error(`Unsupported event target ${r} for event ${e}`);return this.addEventListener(r,e,n)}}let si=(()=>{class t{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),oi=(()=>{class t extends si{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement(\"style\");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>zo().remove(t))}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const ii={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},li=/%COMP%/g;function ui(t,e,n){for(let r=0;r<e.length;r++){let s=e[r];Array.isArray(s)?ui(t,s,n):(s=s.replace(li,t),n.push(s))}return n}function ci(t){return e=>{if(\"__ngUnwrap__\"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let ai=(()=>{class t{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new hi(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case vt.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new di(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case 1:case vt.ShadowDom:return new fi(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=ui(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ni),Gt(oi),Gt(Xs))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class hi{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(ii[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n=\"string\"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector \"${t}\" did not match any elements`);return e||(n.textContent=\"\"),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,r){if(r){e=r+\":\"+e;const s=ii[r];s?t.setAttributeNS(s,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const r=ii[n];r?t.removeAttributeNS(r,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,r){r&(An.DashCase|An.Important)?t.style.setProperty(e,n,r&An.Important?\"important\":\"\"):t.style[e]=n}removeStyle(t,e,n){n&An.DashCase?t.style.removeProperty(e):t.style[e]=\"\"}setProperty(t,e,n){t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return\"string\"==typeof t?this.eventManager.addGlobalEventListener(t,e,ci(n)):this.eventManager.addEventListener(t,e,ci(n))}}class di extends hi{constructor(t,e,n,r){super(t),this.component=n;const s=ui(r+\"-\"+n.id,n.styles,[]);e.addStyles(s),this.contentAttr=\"_ngcontent-%COMP%\".replace(li,r+\"-\"+n.id),this.hostAttr=\"_nghost-%COMP%\".replace(li,r+\"-\"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,\"\")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,\"\"),n}}class fi extends hi{constructor(t,e,n,r){super(t),this.sharedStylesHost=e,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:\"open\"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=ui(r.id,r.styles,[]);for(let o=0;o<s.length;o++){const t=document.createElement(\"style\");t.textContent=s[o],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}let pi=(()=>{class t extends ri{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,n){return t.addEventListener(e,n,!1),()=>this.removeEventListener(t,e,n)}removeEventListener(t,e,n){return t.removeEventListener(e,n)}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const _i=[\"alt\",\"control\",\"meta\",\"shift\"],yi={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},mi={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},gi={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let vi=(()=>{class t extends ri{constructor(t){super(t)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,n,r){const s=t.parseEventName(n),o=t.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>zo().onAndCancel(e,s.domEventName,o))}static parseEventName(e){const n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const s=t._normalizeKey(n.pop());let o=\"\";if(_i.forEach(t=>{const e=n.indexOf(t);e>-1&&(n.splice(e,1),o+=t+\".\")}),o+=s,0!=n.length||0===s.length)return null;const i={};return i.domEventName=r,i.fullKey=o,i}static getEventFullKey(t){let e=\"\",n=function(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return\"Unidentified\";e.startsWith(\"U+\")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&mi.hasOwnProperty(e)&&(e=mi[e]))}return yi[e]||e}(t);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),_i.forEach(r=>{r!=n&&(0,gi[r])(t)&&(e+=r+\".\")}),e+=n,e}static eventCallback(e,n,r){return s=>{t.getEventFullKey(s)===e&&r.runGuarded(()=>n(s))}}static _normalizeKey(t){switch(t){case\"esc\":return\"escape\";default:return t}}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const bi=Ho(Vo,\"browser\",[{provide:ro,useValue:\"browser\"},{provide:no,useValue:function(){Go.makeCurrent(),ti.init()},multi:!0},{provide:$o,useFactory:function(){return function(t){Kt=t}(document),document},deps:[]}]),wi=[[],{provide:Rr,useValue:\"root\"},{provide:kn,useFactory:function(){return new kn},deps:[]},{provide:ei,useClass:pi,multi:!0,deps:[$o,vo,ro]},{provide:ei,useClass:vi,multi:!0,deps:[$o]},[],{provide:ai,useClass:ai,deps:[ni,oi,Xs]},{provide:vs,useExisting:ai},{provide:si,useExisting:oi},{provide:oi,useClass:oi,deps:[$o]},{provide:So,useClass:So,deps:[vo]},{provide:ni,useClass:ni,deps:[ei,vo]},[]];let Ci=(()=>{class t{constructor(t){if(t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(e){return{ngModule:t,providers:[{provide:Xs,useValue:e.appId},{provide:Yo,useExisting:Xs},Xo]}}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(t,12))},providers:wi,imports:[Qo,Bo]}),t})();\"undefined\"!=typeof window&&window;let Ei=(()=>{class t{constructor(){this.title=\"example\"}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=(e={type:t,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(t,e){1&t&&(ns(0,\"div\",0),function(t,e=\"\"){const n=_e(),r=ye(),s=t+Yt,o=r.firstCreatePass?lr(r,s,1,e,null):r.data[s],i=n[s]=function(t,e){return re(t)?t.createText(e):t.createTextNode(e)}(n[11],e);Bn(r,n,i,o),ve(o,!1)}(1,\" Hello, World\\n\"),function(){let t=me();be()?fe.lFrame.isParent=!1:(t=t.parent,ve(t,!1));const e=t;fe.lFrame.elementDepthCount--;const n=ye();n.firstCreatePass&&(Ue(n,t),ee(t)&&n.queries.elementEnd(t)),null!=e.classesWithoutHost&&function(t){return 0!=(16&t.flags)}(e)&&es(n,e,_e(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function(t){return 0!=(32&t.flags)}(e)&&es(n,e,_e(),e.stylesWithoutHost,!1)}())},styles:[\"\"]},z(()=>{const t={},n={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===ct.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||wt,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||vt.Emulated,id:\"c\",styles:e.styles||wt,_:null,setInput:null,schemas:e.schemas||null,tView:null},r=e.directives,s=e.features,o=e.pipes;return n.id+=At++,n.inputs=Nt(e.inputs,t),n.outputs=Nt(e.outputs),s&&s.forEach(t=>t(n)),n.directiveDefs=r?()=>(\"function\"==typeof r?r():r).map(Ot):null,n.pipeDefs=o?()=>(\"function\"==typeof o?o():o).map(Dt):null,n})),t;var e})(),xi=(()=>{class t{}return t.\\u0275mod=Ht({type:t,bootstrap:[Ei]}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[],imports:[[Ci]]}),t})();(function(){if(Re)throw new Error(\"Cannot enable prod mode after platform setup.\");Pe=!1})(),bi().bootstrapModule(xi).catch(t=>console.error(t))},zn8P:function(t,e){function n(t){return Promise.resolve().then(function(){var e=new Error(\"Cannot find module '\"+t+\"'\");throw e.code=\"MODULE_NOT_FOUND\",e})}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/dist/example/polyfills.bf99d438b005d57b2b31.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{1:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const i=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(i||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class a{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==C.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=a.current;for(;e.parent;)e=e.parent;return e}static get current(){return z.zone}static get currentTask(){return j}static __load_patch(t,r){if(C.hasOwnProperty(t)){if(i)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),C[t]=r(e,a,O),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){z={parent:z,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{z=z.parent}}runGuarded(e,t=null,n,o){z={parent:z,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{z=z.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,T),e.runCount++;const r=j;j=e,z={parent:z,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(T,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),z=z.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(b,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,b,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==b&&e._transitionTo(T,b),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,T,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}a.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new a(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");k(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,i){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=i,!o)throw new Error(\"callback is not defined\");this.callback=o;const a=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,a,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,b)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],_=!1;function k(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!_){for(_=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){O.onUnhandledError(e)}}}O.microtaskDrainDone(),_=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",b=\"scheduling\",T=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",C={},O={symbol:s,currentZoneFrame:()=>z,onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:k,showUncaughtError:()=>!a[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:N,patchMethod:()=>N,bindArguments:()=>[],patchThen:()=>N,patchMacroTask:()=>N,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>N,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>N,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>N,wrapWithCurrentZone:()=>N,filterProperties:()=>[],attachOriginToPatched:()=>N,_redefineProperty:()=>N,patchCallbacks:()=>N};let z={parent:null,zone:new a(null,null)},j=null,I=0;function N(){}o(\"Zone\",\"Zone\"),e.Zone=a}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,i=[],a=!0===e[s(\"DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION\")],c=s(\"Promise\"),l=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;i.length;){const t=i.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){h(e)}}};const u=s(\"unhandledPromiseRejectionHandler\");function h(e){n.onUnhandledError(e);try{const n=t[u];\"function\"==typeof n&&n.call(this,e)}catch(o){}}function p(e){return e&&e.then}function f(e){return e}function d(e){return O.reject(e)}const g=s(\"state\"),_=s(\"value\"),k=s(\"finally\"),m=s(\"parentPromiseValue\"),y=s(\"parentPromiseState\"),v=null,b=!0,T=!1;function E(e,t){return n=>{try{Z(e,t,n)}catch(o){Z(e,!1,o)}}}const w=s(\"currentTaskTrace\");function Z(e,o,s){const c=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(e[g]===v){let h=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(h=s&&s.then)}catch(u){return c(()=>{Z(e,!1,u)})(),e}if(o!==T&&s instanceof O&&s.hasOwnProperty(g)&&s.hasOwnProperty(_)&&s[g]!==v)D(s),Z(e,s[g],s[_]);else if(o!==T&&\"function\"==typeof h)try{h.call(s,c(E(e,o)),c(E(e,!1)))}catch(u){c(()=>{Z(e,!1,u)})()}else{e[g]=o;const c=e[_];if(e[_]=s,e[k]===k&&o===b&&(e[g]=e[y],e[_]=e[m]),o===T&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,w,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<c.length;)P(e,c[t++],c[t++],c[t++],c[t++]);if(0==c.length&&o==T){e[g]=0;let o=s;if(!a)try{throw new Error(\"Uncaught (in promise): \"+((l=s)&&l.toString===Object.prototype.toString?(l.constructor&&l.constructor.name||\"\")+\": \"+JSON.stringify(l):l?l.toString():Object.prototype.toString.call(l))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(u){o=u}o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,i.push(o),n.scheduleMicroTask()}}}var l;return e}const S=s(\"rejectionHandledHandler\");function D(e){if(0===e[g]){try{const n=t[S];n&&\"function\"==typeof n&&n.call(this,{rejection:e[_],promise:e})}catch(n){}e[g]=T;for(let t=0;t<i.length;t++)e===i[t].promise&&i.splice(t,1)}}function P(e,t,n,o,r){D(e);const s=e[g],i=s?\"function\"==typeof o?o:f:\"function\"==typeof r?r:d;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[_],r=!!n&&k===n[k];r&&(n[m]=o,n[y]=s);const a=t.run(i,void 0,r&&i!==d&&i!==f?[]:[o]);Z(n,!0,a)}catch(o){Z(n,!1,o)}},n)}const C=function(){};class O{static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return Z(new this(null),b,e)}static reject(e){return Z(new this(null),T,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let i of e)p(i)||(i=this.resolve(i)),i.then(r,s);return o}static all(e){return O.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof O?this:O).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,i=0;const a=[];for(let l of e){p(l)||(l=this.resolve(l));const e=i;try{l.then(o=>{a[e]=t?t.thenCallback(o):o,s--,0===s&&n(a)},r=>{t?(a[e]=t.errorCallback(r),s--,0===s&&n(a)):o(r)})}catch(c){o(c)}s++,i++}return s-=2,0===s&&n(a),r}constructor(e){const t=this;if(!(t instanceof O))throw new Error(\"Must be an instanceof Promise.\");t[g]=v,t[_]=[];try{e&&e(E(t,b),E(t,T))}catch(n){Z(t,!1,n)}}get[Symbol.toStringTag](){return\"Promise\"}get[Symbol.species](){return O}then(e,n){let o=this.constructor[Symbol.species];o&&\"function\"==typeof o||(o=this.constructor||O);const r=new o(C),s=t.current;return this[g]==v?this[_].push(s,r,e,n):P(this,s,r,e,n),r}catch(e){return this.then(null,e)}finally(e){let n=this.constructor[Symbol.species];n&&\"function\"==typeof n||(n=O);const o=new n(C);o[k]=k;const r=t.current;return this[g]==v?this[_].push(r,o,e,e):P(this,r,o,e,e),o}}O.resolve=O.resolve,O.reject=O.reject,O.race=O.race,O.all=O.all;const z=e[c]=e.Promise,j=t.__symbol__(\"ZoneAwarePromise\");let I=o(e,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return e[j]?e[j]:e[c]},I.set=function(t){t===O?e[j]=t:(e[c]=t,t.prototype[l]||R(t),n.setNativePromise(t))},r(e,\"Promise\",I)),e.Promise=O;const N=s(\"thenPatched\");function R(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[l]=r,e.prototype.then=function(e,t){return new O((e,t)=>{r.call(this,e,t)}).then(e,t)},e[N]=!0}if(n.patchThen=R,z){R(z);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(x=t,function(){let e=x.apply(this,arguments);if(e instanceof O)return e;let t=e.constructor;return t[N]||R(t),e}))}var x;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=i,O});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=\"addEventListener\",i=\"removeEventListener\",a=Zone.__symbol__(s),c=Zone.__symbol__(i),l=\"true\",u=\"false\",h=Zone.__symbol__(\"\");function p(e,t){return Zone.current.wrap(e,t)}function f(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const d=Zone.__symbol__,g=\"undefined\"!=typeof window,_=g?window:void 0,k=g&&_||\"object\"==typeof self&&self||global,m=[null];function y(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=p(e[n],t+\"_\"+n));return e}function v(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const b=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,T=!(\"nw\"in k)&&void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process),E=!T&&!b&&!(!g||!_.HTMLElement),w=void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process)&&!b&&!(!g||!_.HTMLElement),Z={},S=function(e){if(!(e=e||k.event))return;let t=Z[e.type];t||(t=Z[e.type]=d(\"ON_PROPERTY\"+e.type));const n=this||e.target||k,o=n[t];let r;if(E&&n===_&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function D(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const i=d(\"on\"+o+\"patched\");if(n.hasOwnProperty(i)&&n[i])return;delete s.writable,delete s.value;const a=s.get,c=s.set,l=o.substr(2);let u=Z[l];u||(u=Z[l]=d(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==k||(t=k),t&&(t[u]&&t.removeEventListener(l,S),c&&c.apply(t,m),\"function\"==typeof e?(t[u]=e,t.addEventListener(l,S,!1)):t[u]=null)},s.get=function(){let e=this;if(e||n!==k||(e=k),!e)return null;const t=e[u];if(t)return t;if(a){let t=a&&a.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[i]=!0}function P(e,t,n){if(t)for(let o=0;o<t.length;o++)D(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)D(e,t[o],n)}}const C=d(\"originalInstance\");function O(e){const n=k[e];if(!n)return;k[d(e)]=n,k[e]=function(){const t=y(arguments,e);switch(t.length){case 0:this[C]=new n;break;case 1:this[C]=new n(t[0]);break;case 2:this[C]=new n(t[0],t[1]);break;case 3:this[C]=new n(t[0],t[1],t[2]);break;case 4:this[C]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},I(k[e],n);const o=new n(function(){});let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?k[e].prototype[n]=function(){return this[C][n].apply(this[C],arguments)}:t(k[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[C][n]=p(t,e+\".\"+n),I(this[C][n],t)):this[C][n]=t},get:function(){return this[C][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(k[e][r]=n[r])}function z(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const i=d(o);let a=null;if(s&&!(a=s[i])&&(a=s[i]=s[o],v(s&&e(s,o)))){const e=r(a,i,o);s[o]=function(){return e(this,arguments)},I(s[o],a)}return a}function j(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=z(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?f(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function I(e,t){e[d(\"OriginalDelegate\")]=t}let N=!1,R=!1;function x(){try{const e=_.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function M(){if(N)return R;N=!0;try{const e=_.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(R=!0)}catch(e){}return R}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=d(\"OriginalDelegate\"),o=d(\"Promise\"),r=d(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const i=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":i.call(this)}});let L=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){L=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(he){L=!1}const A={useG:!0},H={},F={},G=new RegExp(\"^\"+h+\"(\\\\w+)(true|false)$\"),B=d(\"propagationStopped\");function q(e,t){const n=(t?t(e):e)+u,o=(t?t(e):e)+l,r=h+n,s=h+o;H[e]={},H[e].false=r,H[e].true=s}function W(e,t,o){const r=o&&o.add||s,a=o&&o.rm||i,c=o&&o.listeners||\"eventListeners\",p=o&&o.rmAll||\"removeAllListeners\",f=d(r),g=\".\"+r+\":\",_=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[a].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},k=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].false];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}},m=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].true];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}};function y(t,o){if(!t)return!1;let s=!0;o&&void 0!==o.useG&&(s=o.useG);const i=o&&o.vh;let _=!0;o&&void 0!==o.chkDup&&(_=o.chkDup);let y=!1;o&&void 0!==o.rt&&(y=o.rt);let v=t;for(;v&&!v.hasOwnProperty(r);)v=n(v);if(!v&&t[r]&&(v=t),!v)return!1;if(v[f])return!1;const b=o&&o.eventNameToString,E={},w=v[f]=v[r],Z=v[d(a)]=v[a],S=v[d(c)]=v[c],D=v[d(p)]=v[p];let P;function C(e,t){return!L&&\"object\"==typeof e&&e?!!e.capture:L&&t?\"boolean\"==typeof e?{capture:e,passive:!0}:e?\"object\"==typeof e&&!1!==e.passive?Object.assign(Object.assign({},e),{passive:!0}):e:{passive:!0}:e}o&&o.prepend&&(P=v[d(o.prepend)]=v[o.prepend]);const O=s?function(e){if(!E.isExisting)return w.call(E.target,E.eventName,E.capture?m:k,E.options)}:function(e){return w.call(E.target,E.eventName,e.invoke,E.options)},z=s?function(e){if(!e.isRemoved){const t=H[e.eventName];let n;t&&(n=t[e.capture?l:u]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return Z.call(e.target,e.eventName,e.capture?m:k,e.options)}:function(e){return Z.call(e.target,e.eventName,e.invoke,e.options)},j=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},N=Zone[d(\"BLACK_LISTED_EVENTS\")],R=e[d(\"PASSIVE_EVENTS\")],x=function(t,n,r,a,c=!1,h=!1){return function(){const p=this||e;let f=arguments[0];o&&o.transferEventName&&(f=o.transferEventName(f));let d=arguments[1];if(!d)return t.apply(this,arguments);if(T&&\"uncaughtException\"===f)return t.apply(this,arguments);let g=!1;if(\"function\"!=typeof d){if(!d.handleEvent)return t.apply(this,arguments);g=!0}if(i&&!i(t,d,p,arguments))return;const k=L&&!!R&&-1!==R.indexOf(f),m=C(arguments[2],k);if(N)for(let e=0;e<N.length;e++)if(f===N[e])return k?t.call(p,f,d,m):t.apply(this,arguments);const y=!!m&&(\"boolean\"==typeof m||m.capture),v=!(!m||\"object\"!=typeof m)&&m.once,w=Zone.current;let Z=H[f];Z||(q(f,b),Z=H[f]);const S=Z[y?l:u];let D,P=p[S],O=!1;if(P){if(O=!0,_)for(let e=0;e<P.length;e++)if(j(P[e],d))return}else P=p[S]=[];const z=p.constructor.name,I=F[z];I&&(D=I[f]),D||(D=z+n+(b?b(f):f)),E.options=m,v&&(E.options.once=!1),E.target=p,E.capture=y,E.eventName=f,E.isExisting=O;const x=s?A:void 0;x&&(x.taskData=E);const M=w.scheduleEventTask(D,d,x,r,a);return E.target=null,x&&(x.taskData=null),v&&(m.once=!0),(L||\"boolean\"!=typeof M.options)&&(M.options=m),M.target=p,M.capture=y,M.eventName=f,g&&(M.originalDelegate=d),h?P.unshift(M):P.push(M),c?p:void 0}};return v[r]=x(w,g,O,z,y),P&&(v.prependListener=x(P,\".prependListener:\",function(e){return P.call(E.target,E.eventName,e.invoke,E.options)},z,y,!0)),v[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2],s=!!r&&(\"boolean\"==typeof r||r.capture),a=arguments[1];if(!a)return Z.apply(this,arguments);if(i&&!i(Z,a,t,arguments))return;const c=H[n];let p;c&&(p=c[s?l:u]);const f=p&&t[p];if(f)for(let e=0;e<f.length;e++){const o=f[e];if(j(o,a))return f.splice(e,1),o.isRemoved=!0,0===f.length&&(o.allRemoved=!0,t[p]=null,\"string\"==typeof n)&&(t[h+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),y?t:void 0}return Z.apply(this,arguments)},v[c]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=U(t,b?b(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},v[p]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=H[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=G.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[p].call(this,o)}this[p].call(this,\"removeListener\")}if(y)return this},I(v[r],w),I(v[a],Z),D&&I(v[p],D),S&&I(v[c],S),!0}let v=[];for(let n=0;n<t.length;n++)v[n]=y(t[n],o);return v}function U(e,t){if(!t){const n=[];for(let o in e){const r=G.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}let n=H[t];n||(q(t),n=H[t]);const o=e[n.false],r=e[n.true];return o?r?o.concat(r):o.slice():r?r.slice():[]}function V(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[B]=!0,e&&e.apply(t,n)})}function $(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const i=t[s]=t[o];t[o]=function(s,a,c){return a&&a.prototype&&r.forEach(function(t){const r=`${n}.${o}::`+t,s=a.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(a.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}),i.call(t,s,a,c)},e.attachOriginToPatched(t[o],i)}const X=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplayconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],J=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],Y=[\"load\"],K=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],Q=[\"bounce\",\"finish\",\"start\"],ee=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],te=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],ne=[\"close\",\"error\",\"open\",\"message\"],oe=[\"error\",\"message\"],re=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],X,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function se(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function ie(e,t,n,o){e&&P(e,se(e,t,n),o)}function ae(e,t){if(T&&!w)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(E){const e=window,t=x?[{target:e,ignoreProperties:[\"error\"]}]:[];ie(e,re.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),ie(Document.prototype,re,r),void 0!==e.SVGElement&&ie(e.SVGElement.prototype,re,r),ie(Element.prototype,re,r),ie(HTMLElement.prototype,re,r),ie(HTMLMediaElement.prototype,J,r),ie(HTMLFrameSetElement.prototype,X.concat(K),r),ie(HTMLBodyElement.prototype,X.concat(K),r),ie(HTMLFrameElement.prototype,Y,r),ie(HTMLIFrameElement.prototype,Y,r);const o=e.HTMLMarqueeElement;o&&ie(o.prototype,Q,r);const s=e.Worker;s&&ie(s.prototype,oe,r)}const s=t.XMLHttpRequest;s&&ie(s.prototype,ee,r);const i=t.XMLHttpRequestEventTarget;i&&ie(i&&i.prototype,ee,r),\"undefined\"!=typeof IDBIndex&&(ie(IDBIndex.prototype,te,r),ie(IDBRequest.prototype,te,r),ie(IDBOpenDBRequest.prototype,te,r),ie(IDBDatabase.prototype,te,r),ie(IDBTransaction.prototype,te,r),ie(IDBCursor.prototype,te,r)),o&&ie(WebSocket.prototype,ne,r)}Zone.__load_patch(\"util\",(n,a,c)=>{c.patchOnProperties=P,c.patchMethod=z,c.bindArguments=y,c.patchMacroTask=j;const f=a.__symbol__(\"BLACK_LISTED_EVENTS\"),d=a.__symbol__(\"UNPATCHED_EVENTS\");n[d]&&(n[f]=n[d]),n[f]&&(a[f]=a[d]=n[f]),c.patchEventPrototype=V,c.patchEventTarget=W,c.isIEOrEdge=M,c.ObjectDefineProperty=t,c.ObjectGetOwnPropertyDescriptor=e,c.ObjectCreate=o,c.ArraySlice=r,c.patchClass=O,c.wrapWithCurrentZone=p,c.filterProperties=se,c.attachOriginToPatched=I,c._redefineProperty=Object.defineProperty,c.patchCallbacks=$,c.getGlobalObjects=()=>({globalSources:F,zoneSymbolEventNames:H,eventNames:re,isBrowser:E,isMix:w,isNode:T,TRUE_STR:l,FALSE_STR:u,ZONE_SYMBOL_PREFIX:h,ADD_EVENT_LISTENER_STR:s,REMOVE_EVENT_LISTENER_STR:i})});const ce=d(\"zoneTask\");function le(e,t,n,o){let r=null,s=null;n+=o;const i={};function a(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete i[n.handleId]:n.handleId&&(n.handleId[ce]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=z(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=f(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},a,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?i[n]=e:n&&(n[ce]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=z(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=i[r]:(s=r&&r[ce],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete i[r]:r&&(r[ce]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function ue(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:i}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=i+(e+s),a=i+(e+r);o[e]={},o[e][s]=t,o[e][r]=a}const a=e.EventTarget;return a&&a.prototype?(t.patchEventTarget(e,[a&&a.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{const t=\"set\",n=\"clear\";le(e,t,n,\"Timeout\"),le(e,t,n,\"Interval\"),le(e,t,n,\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{le(e,\"request\",\"cancel\",\"AnimationFrame\"),le(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),le(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)z(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{(function(e,t){t.patchEventPrototype(e,t)})(e,n),ue(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),O(\"MutationObserver\"),O(\"WebKitMutationObserver\"),O(\"IntersectionObserver\"),O(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ae(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const u=e.XMLHttpRequest;if(!u)return;const h=u.prototype;let p=h[a],g=h[c];if(!p){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;p=e[a],g=e[c]}}const _=\"readystatechange\",k=\"scheduled\";function m(e){const o=e.data,i=o.target;i[s]=!1,i[l]=!1;const u=i[r];p||(p=i[a],g=i[c]),u&&g.call(i,_,u);const h=i[r]=()=>{if(i.readyState===i.DONE)if(!o.aborted&&i[s]&&e.state===k){const n=i[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=i[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||e.state!==k||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==i[s]||(i[l]=!0)};return p.call(i,_,h),i[n]||(i[n]=e),w.apply(i,o.args),i[s]=!0,e}function y(){}function v(e){const t=e.data;return t.aborted=!0,Z.apply(t.target,t.args)}const b=z(h,\"open\",()=>function(e,t){return e[o]=0==t[2],e[i]=t[1],b.apply(e,t)}),T=d(\"fetchTaskAborting\"),E=d(\"fetchTaskScheduling\"),w=z(h,\"send\",()=>function(e,n){if(!0===t.current[E])return w.apply(e,n);if(e[o])return w.apply(e,n);{const t={target:e,url:e[i],isPeriodic:!1,args:n,aborted:!1},o=f(\"XMLHttpRequest.send\",y,t,m,v);e&&!0===e[l]&&!t.aborted&&o.state===k&&o.invoke()}}),Z=z(h,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[T])return Z.apply(e,o)})}(e);const n=d(\"xhrTask\"),o=d(\"xhrSync\"),r=d(\"xhrListener\"),s=d(\"xhrScheduled\"),i=d(\"xhrURL\"),l=d(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],i=t[s];if(i){if(!v(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,y(arguments,o+\".\"+s))};return I(t,e),t})(i)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){U(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[d(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[d(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[1,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/dist/example/runtime.359d5ee4682f20e936e9.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/dist/example/styles.51422a5c94b8290ff190.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:initial}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:initial;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:initial;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:initial;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:initial}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:initial}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:initial}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:initial}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:initial}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:initial}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:initial}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:initial}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:initial;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:initial}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:initial;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:initial;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:initial;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:initial;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:initial;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:initial;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:initial;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:initial;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:initial!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:initial!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:initial;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\n//import { AppComponent } from './app.component';\nimport { ProductComponent } from \"./component\";\n\n@NgModule({\n  declarations: [ProductComponent],\n  imports: [BrowserModule],\n  providers: [],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    constructor(ref: ApplicationRef) {\n        (<any>window).appRef = ref;\n        (<any>window).model = this.model;\n    }\n\n    getProductByPosition(position: number): Product {\n        return this.model.getProducts()[position];\n    }\n\n    getClassesByPosition(position: number): string {\n        let product = this.getProductByPosition(position);\n        return \"p-2 \" + (product.price < 50 ? \"bg-info\" : \"bg-warning\");\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/app/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n      public name?: string,\n      public category?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/app/template.html",
    "content": "<div class=\"text-white m-2\">\n  <div [ngClass]=\"getClassesByPosition(0)\">\n    The first product is {{getProductByPosition(0).name}}.\n  </div>\n  <div [ngClass]=\"getClassesByPosition(1)\">\n    The second product is {{getProductByPosition(1).name}}\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 12/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncss-loader\nMIT\nCopyright JS Foundation and other contributors\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2020 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.51422a5c94b8290ff190.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime.359d5ee4682f20e936e9.js\" defer></script><script src=\"polyfills.bf99d438b005d57b2b31.js\" defer></script><script src=\"main.f78bdaa2683ef468e3b3.js\" defer></script></body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/dist/example/main.f78bdaa2683ef468e3b3.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(t,e,n){t.exports=n(\"zUnb\")},zUnb:function(t,e,n){\"use strict\";function r(t){return\"function\"==typeof t}n.r(e);let s=!1;const o={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else s&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");s=t},get useDeprecatedSynchronousErrorHandling(){return s}};function i(t){setTimeout(()=>{throw t},0)}const l={closed:!0,next(t){},error(t){if(o.useDeprecatedSynchronousErrorHandling)throw t;i(t)},complete(){}},u=(()=>Array.isArray||(t=>t&&\"number\"==typeof t.length))();function c(t){return null!==t&&\"object\"==typeof t}const a=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();let h=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:s,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(r(o)){s&&(this._unsubscribe=void 0);try{o.call(this)}catch(l){e=l instanceof a?d(l.errors):[l]}}if(u(i)){let t=-1,n=i.length;for(;++t<n;){const n=i[t];if(c(n))try{n.unsubscribe()}catch(l){e=e||[],l instanceof a?e=e.concat(d(l.errors)):e.push(l)}}}if(e)throw new a(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case\"function\":n=new t(e);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error(\"unrecognized teardown \"+e+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof t){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const s=this._subscriptions;return null===s?this._subscriptions=[n]:s.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}return t.EMPTY=function(t){return t.closed=!0,t}(new t),t})();function d(t){return t.reduce((t,e)=>t.concat(e instanceof a?e.errors:e),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!t){this.destination=l;break}if(\"object\"==typeof t){t instanceof p?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,t,e,n)}}[f](){return this}static create(t,e,n){const r=new p(t,e,n);return r.syncErrorThrowable=!1,r}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class _ extends p{constructor(t,e,n,s){let o;super(),this._parentSubscriber=t;let i=this;r(e)?o=e:e&&(o=e.next,n=e.error,s=e.complete,e!==l&&(i=Object.create(e),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=o,this._error=n,this._complete=s}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;o.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:n}=o;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):i(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;i(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);o.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),o.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(t,e,n){if(!o.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{e.call(this._context,n)}catch(r){return o.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=r,t.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const y=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function m(t){return t}let g=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:r}=this,s=function(t,e,n){if(t){if(t instanceof p)return t;if(t[f])return t[f]()}return t||e||n?new p(t,e,n):new p(l)}(t,e,n);if(s.add(r?r.call(s,this.source):this.source||o.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),o.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(t){try{return this._subscribe(t)}catch(e){o.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof p?n:null}return!0}(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=v(e))((e,n)=>{let r;r=this.subscribe(e=>{try{t(e)}catch(s){n(s),r&&r.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[y](){return this}pipe(...t){return 0===t.length?this:(0===(e=t).length?m:1===e.length?e[0]:function(t){return e.reduce((t,e)=>e(t),t)})(this);var e}toPromise(t){return new(t=v(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function v(t){if(t||(t=o.Promise||Promise),!t)throw new Error(\"no Promise impl found\");return t}const b=(()=>{function t(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return t.prototype=Object.create(Error.prototype),t})();class w extends h{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}class C extends p{constructor(t){super(t),this.destination=t}}let E=(()=>{class t extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(t){const e=new x(this,this);return e.operator=t,e}next(t){if(this.closed)throw new b;if(!this.isStopped){const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].next(t)}}error(t){if(this.closed)throw new b;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].error(t);this.observers.length=0}complete(){if(this.closed)throw new b;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let r=0;r<e;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new b;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new b;return this.hasError?(t.error(this.thrownError),h.EMPTY):this.isStopped?(t.complete(),h.EMPTY):(this.observers.push(t),new w(this,t))}asObservable(){const t=new g;return t.source=this,t}}return t.create=(t,e)=>new x(t,e),t})();class x extends E{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):h.EMPTY}}class k{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new T(t,this.project,this.thisArg))}}class T extends p{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}const S=t=>e=>{for(let n=0,r=t.length;n<r&&!e.closed;n++)e.next(t[n]);e.complete()};function I(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const A=I();const O=t=>{if(t&&\"function\"==typeof t[y])return o=t,t=>{const e=o[y]();if(\"function\"!=typeof e.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return e.subscribe(t)};if((e=t)&&\"number\"==typeof e.length&&\"function\"!=typeof e)return S(t);var e,n,r,s,o;if((n=t)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return s=t,t=>(s.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,i),t);if(t&&\"function\"==typeof t[A])return r=t,t=>{const e=r[A]();for(;;){let r;try{r=e.next()}catch(n){return t.error(n),t}if(r.done){t.complete();break}if(t.next(r.value),t.closed)break}return\"function\"==typeof e.return&&t.add(()=>{e.return&&e.return()}),t};{const e=c(t)?\"an invalid object\":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`)}};class D extends p{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class j extends p{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function H(t,e,n=Number.POSITIVE_INFINITY){return\"function\"==typeof e?r=>r.pipe(H((n,r)=>{return(s=t(n,r),s instanceof g?s:new g(O(s))).pipe(function(t,e){return function(e){return e.lift(new k(t,void 0))}}((t,s)=>e(n,t,r,s)));var s},n)):(\"number\"==typeof e&&(n=e),e=>e.lift(new N(t,n)))}class N{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new P(t,this.project,this.concurrent))}}class P extends j{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e)}_innerSub(t){const e=new D(this),n=this.destination;n.add(e);const r=function(t,e){if(!e.closed)return t instanceof g?t.subscribe(e):O(t)(e)}(t,e);r!==e&&n.add(r)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t){this.destination.next(t)}notifyComplete(){const t=this.buffer;this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function R(){return function(t){return t.lift(new M(t))}}class M{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const r=new F(t,n),s=e.subscribe(r);return r.closed||(r.connection=n.connect()),s}}class F extends p{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:n}=this,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new h,t.add(this.source.subscribe(new B(this.getSubject(),this))),t.closed&&(this._connection=null,t=h.EMPTY)),t}refCount(){return R()(this)}}const L=(()=>{const t=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class B extends C{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}function Z(){return new E}function z(t){return{toString:t}.toString()}const $=\"__parameters__\";function U(t,e,n){return z(()=>{const r=function(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}(e);function s(...t){if(this instanceof s)return r.apply(this,t),this;const e=new s(...t);return n.annotation=e,n;function n(t,n,r){const s=t.hasOwnProperty($)?t[$]:Object.defineProperty(t,$,{value:[]})[$];for(;s.length<=r;)s.push(null);return(s[r]=s[r]||[]).push(e),t}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s})}const W=U(\"Inject\",t=>({token:t})),q=U(\"Optional\"),Q=U(\"Self\"),G=U(\"SkipSelf\");function J(t){if(\"string\"==typeof t)return t;if(Array.isArray(t))return\"[\"+t.map(J).join(\", \")+\"]\";if(null==t)return\"\"+t;if(t.overriddenName)return\"\"+t.overriddenName;if(t.name)return\"\"+t.name;const e=t.toString();if(null==e)return\"\"+e;const n=e.indexOf(\"\\n\");return-1===n?e:e.substring(0,n)}function K(t,e){return null==t||\"\"===t?null===e?\"\":e:null==e||\"\"===e?t:t+\" \"+e}function Y(t){for(let e in t)if(t[e]===Y)return e;throw Error(\"Could not find renamed property on target object.\")}function X(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function tt(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function et(t){return nt(t,st)||nt(t,it)}function nt(t,e){return t.hasOwnProperty(e)?t[e]:null}function rt(t){return t&&(t.hasOwnProperty(ot)||t.hasOwnProperty(lt))?t[ot]:null}const st=Y({\"\\u0275prov\":Y}),ot=Y({\"\\u0275inj\":Y}),it=Y({ngInjectableDef:Y}),lt=Y({ngInjectorDef:Y});class ut{constructor(t,e){this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\\u0275prov=X({token:this,providedIn:e.providedIn||\"root\",factory:e.factory}))}toString(){return\"InjectionToken \"+this._desc}}var ct=function(t){return t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\",t}({});const at=\"undefined\"!=typeof globalThis&&globalThis,ht=\"undefined\"!=typeof window&&window,dt=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,ft=\"undefined\"!=typeof global&&global,pt=at||ft||ht||dt,_t=Y({__forward_ref__:Y});function yt(t){return t.__forward_ref__=yt,t.toString=function(){return J(this())},t}function mt(t){return\"function\"==typeof(e=t)&&e.hasOwnProperty(_t)&&e.__forward_ref__===yt?t():t;var e}function gt(t,e){t.forEach(t=>Array.isArray(t)?gt(t,e):e(t))}var vt=function(t){return t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\",t}({});const bt={},wt=[],Ct=Y({\"\\u0275cmp\":Y}),Et=Y({\"\\u0275dir\":Y}),xt=Y({\"\\u0275pipe\":Y}),kt=Y({\"\\u0275mod\":Y}),Tt=Y({\"\\u0275loc\":Y}),St=Y({\"\\u0275fac\":Y}),It=Y({__NG_ELEMENT_ID__:Y});let At=0;function Ot(t){return Pt(t)||function(t){return t[Et]||null}(t)}function Dt(t){return function(t){return t[xt]||null}(t)}const jt={};function Ht(t){const e={type:t.type,bootstrap:t.bootstrap||wt,declarations:t.declarations||wt,imports:t.imports||wt,exports:t.exports||wt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&z(()=>{jt[t.id]=t.type}),e}function Nt(t,e){if(null==t)return bt;const n={};for(const r in t)if(t.hasOwnProperty(r)){let s=t[r],o=s;Array.isArray(s)&&(o=s[1],s=s[0]),n[s]=r,e&&(e[s]=o)}return n}function Pt(t){return t[Ct]||null}function Rt(t,e){const n=t[kt]||null;if(!n&&!0===e)throw new Error(`Type ${J(t)} does not have '\\u0275mod' property.`);return n}function Mt(t){return\"function\"==typeof t?t.name||t.toString():\"object\"==typeof t&&null!=t&&\"function\"==typeof t.type?t.type.name||t.type.toString():function(t){return\"string\"==typeof t?t:null==t?\"\":\"\"+t}(t)}var Ft=function(t){return t[t.Default=0]=\"Default\",t[t.Host=1]=\"Host\",t[t.Self=2]=\"Self\",t[t.SkipSelf=4]=\"SkipSelf\",t[t.Optional=8]=\"Optional\",t}({});let Vt;function Lt(t){const e=Vt;return Vt=t,e}function Bt(t,e,n){const r=et(t);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Ft.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${J(t)}]`)}const Zt={},zt=/\\n/gm,$t=\"__source\",Ut=Y({provide:String,useValue:Y});let Wt=void 0;function qt(t){const e=Wt;return Wt=t,e}function Qt(t,e=Ft.Default){if(void 0===Wt)throw new Error(\"inject() must be called from an injection context\");return null===Wt?Bt(t,void 0,e):Wt.get(t,e&Ft.Optional?null:void 0,e)}function Gt(t,e=Ft.Default){return(Vt||Qt)(mt(t),e)}function Jt(t){const e=[];for(let n=0;n<t.length;n++){const r=mt(t[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let t=void 0,n=Ft.Default;for(let e=0;e<r.length;e++){const s=r[e];s instanceof q||\"Optional\"===s.ngMetadataName||s===q?n|=Ft.Optional:s instanceof G||\"SkipSelf\"===s.ngMetadataName||s===G?n|=Ft.SkipSelf:s instanceof Q||\"Self\"===s.ngMetadataName||s===Q?n|=Ft.Self:t=s instanceof W||s===W?s.token:s}e.push(Gt(t,n))}else e.push(Gt(r))}return e}let Kt=void 0;const Yt=20;function Xt(t){return Array.isArray(t)&&\"object\"==typeof t[1]}function te(t){return Array.isArray(t)&&!0===t[1]}function ee(t){return 0!=(8&t.flags)}function ne(t){return null!==t.template}function re(t){return!!t.listen}const se={createRenderer:(t,e)=>void 0!==Kt?Kt:\"undefined\"!=typeof document?document:void 0};function oe(t){for(;Array.isArray(t);)t=t[0];return t}function ie(t,e){return oe(e[t.index])}function le(t,e){const n=e[t];return Xt(n)?n:n[0]}function ue(t){const e=function(t){return t.__ngContext__||null}(t);return e?Array.isArray(e)?e:e.lView:null}function ce(t){return 128==(128&t[2])}function ae(t,e){return null==e?null:t[e]}function he(t){t[18]=0}function de(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const fe={lFrame:Oe(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function pe(){return fe.bindingsEnabled}function _e(){return fe.lFrame.lView}function ye(){return fe.lFrame.tView}function me(){let t=ge();for(;null!==t&&64===t.type;)t=t.parent;return t}function ge(){return fe.lFrame.currentTNode}function ve(t,e){const n=fe.lFrame;n.currentTNode=t,n.isParent=e}function be(){return fe.lFrame.isParent}function we(){return fe.isInCheckNoChangesMode}function Ce(t){fe.isInCheckNoChangesMode=t}function Ee(t,e){const n=fe.lFrame;n.bindingIndex=n.bindingRootIndex=t,xe(e)}function xe(t){fe.lFrame.currentDirectiveIndex=t}function ke(t){fe.lFrame.currentQueryIndex=t}function Te(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function Se(t,e,n){if(n&Ft.SkipSelf){let r=e,s=t;for(;r=r.parent,!(null!==r||n&Ft.Host||(r=Te(s),null===r)||(s=s[15],10&r.type)););if(null===r)return!1;e=r,t=s}const r=fe.lFrame=Ae();return r.currentTNode=e,r.lView=t,!0}function Ie(t){const e=Ae(),n=t[1];fe.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function Ae(){const t=fe.lFrame,e=null===t?null:t.child;return null===e?Oe(t):e}function Oe(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function De(){const t=fe.lFrame;return fe.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const je=De;function He(){const t=De();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Ne(t){fe.lFrame.selectedIndex=t}let Pe=!0,Re=!1;function Me(){return Re=!0,Pe}function Fe(t,e){return t.hasOwnProperty(St)?t[St]:null}class Ve extends Error{constructor(t,e){super(function(t,e){return`${t?`NG0${t}: `:\"\"}${e}`}(t,e)),this.code=t}}function Le(t,e){const n=e?\" in \"+e:\"\";throw new Ve(\"201\",`No provider for ${Mt(t)} found${n}`)}class Be{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function Ze(){const t=$e(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===bt)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}}function ze(t,e,n,r){const s=$e(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:bt,current:null}),o=s.current||(s.current={}),i=s.previous,l=this.declaredInputs[n],u=i[l];o[l]=new Be(u&&u.currentValue,e,i===bt),t[r]=e}function $e(t){return t.__ngSimpleChanges__||null}function Ue(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n<r;n++){const e=t.data[n].type.prototype,{ngAfterContentInit:r,ngAfterContentChecked:s,ngAfterViewInit:o,ngAfterViewChecked:i,ngOnDestroy:l}=e;r&&(t.contentHooks||(t.contentHooks=[])).push(-n,r),s&&((t.contentHooks||(t.contentHooks=[])).push(n,s),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,s)),o&&(t.viewHooks||(t.viewHooks=[])).push(-n,o),i&&((t.viewHooks||(t.viewHooks=[])).push(n,i),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,i)),null!=l&&(t.destroyHooks||(t.destroyHooks=[])).push(n,l)}}function We(t,e,n){Ge(t,e,3,n)}function qe(t,e,n,r){(3&t[2])===n&&Ge(t,e,n,r)}function Qe(t,e){let n=t[2];(3&n)===e&&(n&=2047,n+=1,t[2]=n)}function Ge(t,e,n,r){const s=null!=r?r:-1;let o=0;for(let i=void 0!==r?65535&t[18]:0;i<e.length;i++)if(\"number\"==typeof e[i+1]){if(o=e[i],null!=r&&o>=r)break}else e[i]<0&&(t[18]+=65536),(o<s||-1==s)&&(Je(t,n,e,i),t[18]=(4294901760&t[18])+i+2),i++}function Je(t,e,n,r){const s=n[r]<0,o=n[r+1],i=t[s?-n[r]:n[r]];s?t[2]>>11<t[18]>>16&&(3&t[2])===e&&(t[2]+=2048,o.call(i)):o.call(i)}const Ke=-1;class Ye{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}function Xe(t,e,n){const r=re(t);let s=0;for(;s<n.length;){const o=n[s];if(\"number\"==typeof o){if(0!==o)break;s++;const i=n[s++],l=n[s++],u=n[s++];r?t.setAttribute(e,l,u,i):e.setAttributeNS(i,l,u)}else{const i=o,l=n[++s];64===i.charCodeAt(0)?r&&t.setProperty(e,i,l):r?t.setAttribute(e,i,l):e.setAttribute(i,l),s++}}return s}function tn(t,e){if(null===e||0===e.length);else if(null===t||0===t.length)t=e.slice();else{let n=-1;for(let r=0;r<e.length;r++){const s=e[r];\"number\"==typeof s?n=s:0===n||en(t,n,s,null,-1===n||2===n?e[++r]:null)}}return t}function en(t,e,n,r,s){let o=0,i=t.length;if(-1===e)i=-1;else for(;o<t.length;){const n=t[o++];if(\"number\"==typeof n){if(n===e){i=-1;break}if(n>e){i=o-1;break}}}for(;o<t.length;){const e=t[o];if(\"number\"==typeof e)break;if(e===n){if(null===r)return void(null!==s&&(t[o+1]=s));if(r===t[o+1])return void(t[o+2]=s)}o++,null!==r&&o++,null!==s&&o++}-1!==i&&(t.splice(i,0,e),o=i+1),t.splice(o++,0,n),null!==r&&t.splice(o++,0,r),null!==s&&t.splice(o++,0,s)}function nn(t){return 32767&t}function rn(t,e){let n=t>>16,r=e;for(;n>0;)r=r[15],n--;return r}let sn=!0;function on(t){const e=sn;return sn=t,e}let ln=0;function un(t,e){const n=an(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,cn(r.data,t),cn(e,null),cn(r.blueprint,null));const s=hn(t,e),o=t.injectorIndex;if(s!==Ke){const t=nn(s),n=rn(s,e),r=n[1].data;for(let s=0;s<8;s++)e[o+s]=n[t+s]|r[t+s]}return e[o+8]=s,o}function cn(t,e){t.push(0,0,0,0,0,0,0,0,e)}function an(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function hn(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,s=e;for(;null!==s;){const t=s[1],e=t.type;if(r=2===e?t.declTNode:1===e?s[6]:null,null===r)return Ke;if(n++,s=s[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return Ke}function dn(t,e,n){!function(t,e,n){let r;\"string\"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(It)&&(r=n[It]),null==r&&(r=n[It]=ln++);const s=255&r,o=1<<s,i=64&s,l=32&s,u=e.data;128&s?i?l?u[t+7]|=o:u[t+6]|=o:l?u[t+5]|=o:u[t+4]|=o:i?l?u[t+3]|=o:u[t+2]|=o:l?u[t+1]|=o:u[t]|=o}(t,e,n)}function fn(t,e,n){if(n&Ft.Optional)return t;Le(e,\"NodeInjector\")}function pn(t,e,n,r){if(n&Ft.Optional&&void 0===r&&(r=null),0==(n&(Ft.Self|Ft.Host))){const s=t[9],o=Lt(void 0);try{return s?s.get(e,r,n&Ft.Optional):Bt(e,r,n&Ft.Optional)}finally{Lt(o)}}return fn(r,e,n)}const _n={};function yn(){return new wn(me(),_e())}function mn(t,e,n,r,s,o){const i=e[1],l=i.data[t+8],u=function(t,e,n,r,s){const o=t.providerIndexes,i=e.data,l=1048575&o,u=t.directiveStart,c=o>>20,a=s?l+c:t.directiveEnd;for(let h=r?l:l+c;h<a;h++){const t=i[h];if(h<u&&n===t||h>=u&&t.type===n)return h}if(s){const t=i[u];if(t&&ne(t)&&t.type===n)return u}return null}(l,i,n,null==r?function(t){return 2==(2&t.flags)}(l)&&sn:r!=i&&0!=(3&l.type),s&Ft.Host&&o===l);return null!==u?gn(e,i,u,l):_n}function gn(t,e,n,r){let s=t[n];const o=e.data;if(s instanceof Ye){const i=s;i.resolving&&function(t,e){throw new Ve(\"200\",\"Circular dependency in DI detected for \"+t)}(Mt(o[n]));const l=on(i.canSeeViewProviders);i.resolving=!0;const u=i.injectImpl?Lt(i.injectImpl):null;Se(t,r,Ft.Default);try{s=t[n]=i.factory(void 0,o,t,r),e.firstCreatePass&&n>=r.directiveStart&&function(t,e,n){const{ngOnChanges:r,ngOnInit:s,ngDoCheck:o}=e.type.prototype;if(r){const r=((i=e).type.prototype.ngOnChanges&&(i.setInput=ze),Ze);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,r)}var i;s&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,s),o&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,o))}(n,o[n],e)}finally{null!==u&&Lt(u),on(l),i.resolving=!1,je()}}return s}function vn(t,e,n){const r=64&t,s=32&t;let o;return o=128&t?r?s?n[e+7]:n[e+6]:s?n[e+5]:n[e+4]:r?s?n[e+3]:n[e+2]:s?n[e+1]:n[e],!!(o&1<<t)}function bn(t,e){return!(t&Ft.Self||t&Ft.Host&&e)}class wn{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return function(t,e,n,r=Ft.Default,s){if(null!==t){const o=function(t){if(\"string\"==typeof t)return t.charCodeAt(0)||0;const e=t.hasOwnProperty(It)?t[It]:void 0;return\"number\"==typeof e?e>=0?255&e:yn:e}(n);if(\"function\"==typeof o){if(!Se(e,t,r))return r&Ft.Host?fn(s,n,r):pn(e,n,r,s);try{const t=o();if(null!=t||r&Ft.Optional)return t;Le(n)}finally{je()}}else if(\"number\"==typeof o){let s=null,i=an(t,e),l=Ke,u=r&Ft.Host?e[16][6]:null;for((-1===i||r&Ft.SkipSelf)&&(l=-1===i?hn(t,e):e[i+8],l!==Ke&&bn(r,!1)?(s=e[1],i=nn(l),e=rn(l,e)):i=-1);-1!==i;){const t=e[1];if(vn(o,i,t.data)){const t=mn(i,e,n,s,r,u);if(t!==_n)return t}l=e[i+8],l!==Ke&&bn(r,e[1].data[i+8]===u)&&vn(o,i,e)?(s=t,i=nn(l),e=rn(l,e)):i=-1}}}return pn(e,n,r,s)}(this._tNode,this._lView,t,void 0,e)}}function Cn(t){return t.ngDebugContext}function En(t){return t.ngOriginalError}function xn(t,...e){t.error(...e)}class kn{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),r=function(t){return t.ngErrorLogger||xn}(t);r(this._console,\"ERROR\",t),e&&r(this._console,\"ORIGINAL ERROR\",e),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(t){return t?Cn(t)?Cn(t):this._findContext(En(t)):null}_findOriginalError(t){let e=En(t);for(;e&&En(e);)e=En(e);return e}}function Tn(t,e){t.__ngContext__=e}const Sn=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(pt))();function In(t){return t instanceof Function?t():t}var An=function(t){return t[t.Important=1]=\"Important\",t[t.DashCase=2]=\"DashCase\",t}({});function On(t,e){return(void 0)(t,e)}function Dn(t){const e=t[3];return te(e)?e[3]:e}function jn(t){return Nn(t[13])}function Hn(t){return Nn(t[4])}function Nn(t){for(;null!==t&&!te(t);)t=t[4];return t}function Pn(t,e,n,r,s){if(null!=r){let o,i=!1;te(r)?o=r:Xt(r)&&(i=!0,r=r[0]);const l=oe(r);0===t&&null!==n?null==s?Vn(e,n,l):Fn(e,n,l,s||null,!0):1===t&&null!==n?Fn(e,n,l,s||null,!0):2===t?function(t,e,n){const r=function(t,e){return re(t)?t.parentNode(e):e.parentNode}(t,e);r&&function(t,e,n,r){re(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,l,i):3===t&&e.destroyNode(l),null!=o&&function(t,e,n,r,s){const o=n[7];o!==oe(n)&&Pn(e,t,r,o,s);for(let i=10;i<n.length;i++){const s=n[i];zn(s[1],s,t,e,r,o)}}(e,t,o,n,s)}}function Rn(t,e,n){return re(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Mn(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r<n.length;r+=2){const t=e[n[r]];if(!(t instanceof Ye)){const e=n[r+1];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)e[n+1].call(t[e[n]]);else e.call(t)}}}(t,e),function(t,e){const n=t.cleanup;if(null!==n){const t=e[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const s=n[r+1],o=\"function\"==typeof s?s(e):oe(e[s]),i=t[n[r+2]],l=n[r+3];\"boolean\"==typeof l?o.removeEventListener(n[r],i,l):l>=0?t[l]():t[-l].unsubscribe(),r+=2}else n[r].call(t[n[r+1]]);e[7]=null}}(t,e),1===e[1].type&&re(e[11])&&e[11].destroy();const n=e[17];if(null!==n&&te(e[3])){n!==e[3]&&function(t,e){const n=t[9],r=n.indexOf(e),s=e[3];1024&e[2]&&(e[2]&=-1025,de(s,-1)),n.splice(r,1)}(n,e);const r=e[19];null!==r&&r.detachView(t)}}}function Fn(t,e,n,r,s){re(t)?t.insertBefore(e,n,r,s):e.insertBefore(n,r,s)}function Vn(t,e,n){re(t)?t.appendChild(e,n):e.appendChild(n)}function Ln(t,e,n,r,s){null!==r?Fn(t,e,n,r,s):Vn(t,e,n)}function Bn(t,e,n,r){const s=function(t,e,n){return function(t,e,n){let r=e;for(;null!==r&&40&r.type;)r=(e=r).parent;if(null===r)return n[0];if(2&r.flags){const e=t.data[r.directiveStart].encapsulation;if(e===vt.None||e===vt.Emulated)return null}return ie(r,n)}(t,e.parent,n)}(t,r,e),o=e[11],i=function(t,e,n){return function(t,e,n){return 40&t.type?ie(t,n):null}(t,0,n)}(r.parent||e[6],0,e);if(null!=s)if(Array.isArray(n))for(let l=0;l<n.length;l++)Ln(o,s,n[l],i,!1);else Ln(o,s,n,i,!1)}function Zn(t,e,n,r,s,o,i){for(;null!=n;){const l=r[n.index],u=n.type;if(i&&0===e&&(l&&Tn(oe(l),r),n.flags|=4),64!=(64&n.flags))if(8&u)Zn(t,e,n.child,r,s,o,!1),Pn(e,t,s,l,o);else if(32&u){const i=On(n,r);let u;for(;u=i();)Pn(e,t,s,u,o);Pn(e,t,s,l,o)}else 16&u?$n(t,e,r,n,s,o):Pn(e,t,s,l,o);n=i?n.projectionNext:n.next}}function zn(t,e,n,r,s,o){Zn(n,r,t.firstChild,e,s,o,!1)}function $n(t,e,n,r,s,o){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)Pn(e,t,s,l[u],o);else Zn(t,e,l,i[3],s,o,!0)}function Un(t,e,n){re(t)?t.setAttribute(e,\"style\",n):e.style.cssText=n}function Wn(t,e,n){re(t)?\"\"===n?t.removeAttribute(e,\"class\"):t.setAttribute(e,\"class\",n):e.className=n}function qn(t,e,n){let r=t.length;for(;;){const s=t.indexOf(e,n);if(-1===s)return s;if(0===s||t.charCodeAt(s-1)<=32){const n=e.length;if(s+n===r||t.charCodeAt(s+n)<=32)return s}n=s+1}}const Qn=\"ng-template\";function Gn(t,e,n){let r=0;for(;r<t.length;){let s=t[r++];if(n&&\"class\"===s){if(s=t[r],-1!==qn(s.toLowerCase(),e,0))return!0}else if(1===s){for(;r<t.length&&\"string\"==typeof(s=t[r++]);)if(s.toLowerCase()===e)return!0;return!1}}return!1}function Jn(t){return 4===t.type&&t.value!==Qn}function Kn(t,e,n){return e===(4!==t.type||n?t.value:Qn)}function Yn(t,e,n){let r=4;const s=t.attrs||[],o=function(t){for(let n=0;n<t.length;n++)if(3===(e=t[n])||4===e||6===e)return n;var e;return t.length}(s);let i=!1;for(let l=0;l<e.length;l++){const u=e[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!Kn(t,u,n)||\"\"===u&&1===e.length){if(Xn(r))return!1;i=!0}}else{const c=8&r?u:e[++l];if(8&r&&null!==t.attrs){if(!Gn(t.attrs,c,n)){if(Xn(r))return!1;i=!0}continue}const a=tr(8&r?\"class\":u,s,Jn(t),n);if(-1===a){if(Xn(r))return!1;i=!0;continue}if(\"\"!==c){let t;t=a>o?\"\":s[a+1].toLowerCase();const e=8&r?t:null;if(e&&-1!==qn(e,c,0)||2&r&&c!==t){if(Xn(r))return!1;i=!0}}}}else{if(!i&&!Xn(r)&&!Xn(u))return!1;if(i&&Xn(u))continue;i=!1,r=u|1&r}}return Xn(r)||i}function Xn(t){return 0==(1&t)}function tr(t,e,n,r){if(null===e)return-1;let s=0;if(r||!n){let n=!1;for(;s<e.length;){const r=e[s];if(r===t)return s;if(3===r||6===r)n=!0;else{if(1===r||2===r){let t=e[++s];for(;\"string\"==typeof t;)t=e[++s];continue}if(4===r)break;if(0===r){s+=4;continue}}s+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){const r=t[n];if(\"number\"==typeof r)return-1;if(r===e)return n;n++}return-1}(e,t)}function er(t,e,n=!1){for(let r=0;r<e.length;r++)if(Yn(t,e[r],n))return!0;return!1}function nr(t,e){return t?\":not(\"+e.trim()+\")\":e}function rr(t){let e=t[0],n=1,r=2,s=\"\",o=!1;for(;n<t.length;){let i=t[n];if(\"string\"==typeof i)if(2&r){const e=t[++n];s+=\"[\"+i+(e.length>0?'=\"'+e+'\"':\"\")+\"]\"}else 8&r?s+=\".\"+i:4&r&&(s+=\" \"+i);else\"\"===s||Xn(i)||(e+=nr(o,s),s=\"\"),r=i,o=o||!Xn(r);n++}return\"\"!==s&&(e+=nr(o,s)),e}const sr={};function or(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const s=n[r],o=n[r+1];if(-1!==o){const n=t.data[o];ke(s),n.contentQueries(2,e[o],o)}}}function ir(t,e,n,r,s,o,i,l,u,c){const a=e.blueprint.slice();return a[0]=s,a[2]=140|r,he(a),a[3]=a[15]=t,a[8]=n,a[10]=i||t&&t[10],a[11]=l||t&&t[11],a[12]=u||t&&t[12]||null,a[9]=c||t&&t[9]||null,a[6]=o,a[16]=2==e.type?t[16]:a,a}function lr(t,e,n,r,s){let o=t.data[e];if(null===o)o=function(t,e,n,r,s){const o=ge(),i=be(),l=t.data[e]=function(t,e,n,r,s,o){return{type:n,index:r,insertBeforeIndex:null,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:s,attrs:o,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,i?o:o&&o.parent,n,e,r,s);return null===t.firstChild&&(t.firstChild=l),null!==o&&(i?null==o.child&&null!==l.parent&&(o.child=l):null===o.next&&(o.next=l)),l}(t,e,n,r,s),fe.lFrame.inI18n&&(o.flags|=64);else if(64&o.type){o.type=n,o.value=r,o.attrs=s;const t=function(){const t=fe.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}();o.injectorIndex=null===t?-1:t.injectorIndex}return ve(o,!0),o}function ur(t,e,n,r){if(0===n)return-1;const s=e.length;for(let o=0;o<n;o++)e.push(r),t.blueprint.push(r),t.data.push(null);return s}function cr(t,e,n){Ie(e);try{const r=t.viewQuery;null!==r&&Dr(1,r,n);const s=t.template;null!==s&&dr(t,e,s,1,n),t.firstCreatePass&&(t.firstCreatePass=!1),t.staticContentQueries&&or(t,e),t.staticViewQueries&&Dr(2,t.viewQuery,n);const o=t.components;null!==o&&function(t,e){for(let n=0;n<e.length;n++)Sr(t,e[n])}(e,o)}catch(r){throw t.firstCreatePass&&(t.incompleteFirstPass=!0),r}finally{e[2]&=-5,He()}}function ar(t,e,n,r){const s=e[2];if(256==(256&s))return;Ie(e);const o=we();try{he(e),fe.lFrame.bindingIndex=t.bindingStartIndex,null!==n&&dr(t,e,n,2,r);const i=3==(3&s);if(!o)if(i){const n=t.preOrderCheckHooks;null!==n&&We(e,n,null)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,null),Qe(e,0)}if(function(t){for(let e=jn(t);null!==e;e=Hn(e)){if(!e[2])continue;const t=e[9];for(let e=0;e<t.length;e++){const n=t[e],r=n[3];0==(1024&n[2])&&de(r,1),n[2]|=1024}}}(e),function(t){for(let e=jn(t);null!==e;e=Hn(e))for(let t=10;t<e.length;t++){const n=e[t],r=n[1];ce(n)&&ar(r,n,r.template,n[8])}}(e),null!==t.contentQueries&&or(t,e),!o)if(i){const n=t.contentCheckHooks;null!==n&&We(e,n)}else{const n=t.contentHooks;null!==n&&qe(e,n,1),Qe(e,1)}!function(t,e){const n=t.hostBindingOpCodes;if(null!==n)try{for(let t=0;t<n.length;t++){const r=n[t];if(r<0)Ne(~r);else{const s=r,o=n[++t],i=n[++t];Ee(o,s),i(2,e[s])}}}finally{Ne(-1)}}(t,e);const l=t.components;null!==l&&function(t,e){for(let n=0;n<e.length;n++)kr(t,e[n])}(e,l);const u=t.viewQuery;if(null!==u&&Dr(2,u,r),!o)if(i){const n=t.viewCheckHooks;null!==n&&We(e,n)}else{const n=t.viewHooks;null!==n&&qe(e,n,2),Qe(e,2)}!0===t.firstUpdatePass&&(t.firstUpdatePass=!1),o||(e[2]&=-73),1024&e[2]&&(e[2]&=-1025,de(e[3],-1))}finally{He()}}function hr(t,e,n,r){const s=e[10],o=!we(),i=4==(4&e[2]);try{o&&!i&&s.begin&&s.begin(),i&&cr(t,e,r),ar(t,e,n,r)}finally{o&&!i&&s.end&&s.end()}}function dr(t,e,n,r,s){const o=fe.lFrame.selectedIndex;try{Ne(-1),2&r&&e.length>Yt&&function(t,e,n,r){if(!r)if(3==(3&e[2])){const n=t.preOrderCheckHooks;null!==n&&We(e,n,20)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,20)}Ne(20)}(t,e,0,we()),n(r,s)}finally{Ne(o)}}function fr(t){const e=t.tView;return null===e||e.incompleteFirstPass?t.tView=pr(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts):e}function pr(t,e,n,r,s,o,i,l,u,c){const a=Yt+r,h=a+s,d=function(t,e){const n=[];for(let r=0;r<e;r++)n.push(r<t?null:sr);return n}(a,h),f=\"function\"==typeof c?c():c;return d[1]={type:t,blueprint:d,template:n,queries:null,viewQuery:l,declTNode:e,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof o?o():o,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:f,incompleteFirstPass:!1}}function _r(t,e,n){for(let r in t)if(t.hasOwnProperty(r)){const s=t[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(e,s):n[r]=[e,s]}return n}function yr(t,e,n,r,s,o){const i=o.hostBindings;if(i){let n=t.hostBindingOpCodes;null===n&&(n=t.hostBindingOpCodes=[]);const o=~e.index;(function(t){let e=t.length;for(;e>0;){const n=t[--e];if(\"number\"==typeof n&&n<0)return n}return 0})(n)!=o&&n.push(o),n.push(r,s,i)}}function mr(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function gr(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function vr(t,e,n){if(n){if(e.exportAs)for(let r=0;r<e.exportAs.length;r++)n[e.exportAs[r]]=t;ne(e)&&(n[\"\"]=t)}}function br(t,e,n){t.flags|=1,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function wr(t,e,n,r,s){t.data[r]=s;const o=s.factory||(s.factory=Fe(s.type)),i=new Ye(o,ne(s),null);t.blueprint[r]=i,n[r]=i,yr(t,e,0,r,ur(t,n,s.hostVars,sr),s)}function Cr(t,e,n){const r=ie(e,t),s=fr(n),o=t[10],i=Ir(t,ir(t,s,null,n.onPush?64:16,r,e,o,o.createRenderer(r,n),null,null));t[e.index]=i}function Er(t,e,n,r,s,o){const i=o[e];if(null!==i){const t=r.setInput;for(let e=0;e<i.length;){const s=i[e++],o=i[e++],l=i[e++];null!==t?r.setInput(n,l,s,o):n[o]=l}}}function xr(t,e){let n=null,r=0;for(;r<e.length;){const s=e[r];if(0!==s)if(5!==s){if(\"number\"==typeof s)break;t.hasOwnProperty(s)&&(null===n&&(n=[]),n.push(s,t[s],e[r+1])),r+=2}else r+=2;else r+=4}return n}function kr(t,e){const n=le(e,t);if(ce(n)){const t=n[1];80&n[2]?ar(t,n,t.template,n[8]):n[5]>0&&Tr(n)}}function Tr(t){for(let n=jn(t);null!==n;n=Hn(n))for(let t=10;t<n.length;t++){const e=n[t];if(1024&e[2]){const t=e[1];ar(t,e,t.template,e[8])}else e[5]>0&&Tr(e)}const e=t[1].components;if(null!==e)for(let n=0;n<e.length;n++){const r=le(e[n],t);ce(r)&&r[5]>0&&Tr(r)}}function Sr(t,e){const n=le(e,t),r=n[1];!function(t,e){for(let n=e.length;n<t.blueprint.length;n++)e.push(t.blueprint[n])}(r,n),cr(r,n,n[8])}function Ir(t,e){return t[13]?t[14][4]=e:t[13]=e,t[14]=e,e}function Ar(t,e,n){const r=e[10];r.begin&&r.begin();try{ar(t,e,t.template,n)}catch(s){throw function(t,e){const n=t[9],r=n?n.get(kn,null):null;r&&r.handleError(e)}(e,s),s}finally{r.end&&r.end()}}function Or(t){!function(t){for(let e=0;e<t.components.length;e++){const n=t.components[e],r=ue(n),s=r[1];hr(s,r,s.template,n)}}(t[8])}function Dr(t,e,n){ke(0),e(t,n)}const jr=(()=>Promise.resolve(null))();function Hr(t,e,n){let r=n?t.styles:null,s=n?t.classes:null,o=0;if(null!==e)for(let i=0;i<e.length;i++){const t=e[i];\"number\"==typeof t?o=t:1==o?s=K(s,t):2==o&&(r=K(r,t+\": \"+e[++i]+\";\"))}n?t.styles=r:t.stylesWithoutHost=r,n?t.classes=s:t.classesWithoutHost=s}const Nr=new ut(\"INJECTOR\",-1);class Pr{get(t,e=Zt){if(e===Zt){const e=new Error(`NullInjectorError: No provider for ${J(t)}!`);throw e.name=\"NullInjectorError\",e}return e}}const Rr=new ut(\"Set Injector scope.\"),Mr={},Fr={},Vr=[];let Lr=void 0;function Br(){return void 0===Lr&&(Lr=new Pr),Lr}function Zr(t,e=null,n=null,r){return new zr(t,n,e||Br(),r)}class zr{constructor(t,e,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];e&&gt(e,n=>this.processProvider(n,t,e)),gt([t],t=>this.processInjectorType(t,[],s)),this.records.set(Nr,Ur(void 0,this));const o=this.records.get(Rr);this.scope=null!=o?o.value:null,this.source=r||(\"object\"==typeof t?null:J(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Zt,n=Ft.Default){this.assertNotDestroyed();const r=qt(this);try{if(!(n&Ft.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=(\"function\"==typeof(s=t)||\"object\"==typeof s&&s instanceof ut)&&et(t);e=n&&this.injectableDefInScope(n)?Ur($r(t),Mr):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(n&Ft.Self?Br():this.parent).get(t,e=n&Ft.Optional&&e===Zt?null:e)}catch(o){if(\"NullInjectorError\"===o.name){if((o.ngTempTokenPath=o.ngTempTokenPath||[]).unshift(J(t)),r)throw o;return function(t,e,n,r){const s=t.ngTempTokenPath;throw e[$t]&&s.unshift(e[$t]),t.message=function(t,e,n,r=null){t=t&&\"\\n\"===t.charAt(0)&&\"\\u0275\"==t.charAt(1)?t.substr(2):t;let s=J(e);if(Array.isArray(e))s=e.map(J).join(\" -> \");else if(\"object\"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];t.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):J(r)))}s=`{${t.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${s}]: ${t.replace(zt,\"\\n  \")}`}(\"\\n\"+t.message,s,n,r),t.ngTokenPath=s,t.ngTempTokenPath=null,t}(o,t,\"R3InjectorError\",this.source)}throw o}finally{qt(r)}var s}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((e,n)=>t.push(J(n))),`R3Injector[${t.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(t,e,n){if(!(t=mt(t)))return!1;let r=rt(t);const s=null==r&&t.ngModule||void 0,o=void 0===s?t:s,i=-1!==n.indexOf(o);if(void 0!==s&&(r=rt(s)),null==r)return!1;if(null!=r.imports&&!i){let t;n.push(o);try{gt(r.imports,r=>{this.processInjectorType(r,e,n)&&(void 0===t&&(t=[]),t.push(r))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:r}=t[e];gt(r,t=>this.processProvider(t,n,r||Vr))}}this.injectorDefTypes.add(o),this.records.set(o,Ur(r.factory,Mr));const l=r.providers;if(null!=l&&!i){const e=t;gt(l,t=>this.processProvider(t,e,l))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,n){let r=qr(t=mt(t))?t:mt(t&&t.provide);const s=function(t,e,n){return Wr(t)?Ur(void 0,t.useValue):Ur(function(t,e,n){let r=void 0;if(qr(t)){const e=mt(t);return Fe(e)||$r(e)}if(Wr(t))r=()=>mt(t.useValue);else if((s=t)&&s.useFactory)r=()=>t.useFactory(...Jt(t.deps||[]));else if(function(t){return!(!t||!t.useExisting)}(t))r=()=>Gt(mt(t.useExisting));else{const e=mt(t&&(t.useClass||t.provide));if(!function(t){return!!t.deps}(t))return Fe(e)||$r(e);r=()=>new e(...Jt(t.deps))}var s;return r}(t),Mr)}(t);if(qr(t)||!0!==t.multi)this.records.get(r);else{let e=this.records.get(r);e||(e=Ur(void 0,Mr,!0),e.factory=()=>Jt(e.multi),this.records.set(r,e)),r=t,e.multi.push(t)}this.records.set(r,s)}hydrate(t,e){var n;return e.value===Mr&&(e.value=Fr,e.value=e.factory()),\"object\"==typeof e.value&&e.value&&null!==(n=e.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&(\"string\"==typeof t.providedIn?\"any\"===t.providedIn||t.providedIn===this.scope:this.injectorDefTypes.has(t.providedIn))}}function $r(t){const e=et(t),n=null!==e?e.factory:Fe(t);if(null!==n)return n;const r=rt(t);if(null!==r)return r.factory;if(t instanceof ut)throw new Error(`Token ${J(t)} is missing a \\u0275prov definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=function(t,e){const n=[];for(let r=0;r<t;r++)n.push(\"?\");return n}(e);throw new Error(`Can't resolve all parameters for ${J(t)}: (${n.join(\", \")}).`)}const n=function(t){const e=t&&(t[st]||t[it]);if(e){const n=function(t){if(t.hasOwnProperty(\"name\"))return t.name;const e=(\"\"+t).match(/^function\\s*([^\\s(]+)/);return null===e?\"\":e[1]}(t);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\nThis will become an error in a future version of Angular. Please add @Injectable() to the \"${n}\" class.`),e}return null}(t);return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error(\"unreachable\")}function Ur(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Wr(t){return null!==t&&\"object\"==typeof t&&Ut in t}function qr(t){return\"function\"==typeof t}const Qr=function(t,e,n){return function(t,e=null,n=null,r){const s=Zr(t,e,n,r);return s._resolveInjectorDefTypes(),s}({name:n},e,t,n)};let Gr=(()=>{class t{static create(t,e){return Array.isArray(t)?Qr(t,e,\"\"):Qr(t.providers,t.parent,t.name||\"\")}}return t.THROW_IF_NOT_FOUND=Zt,t.NULL=new Pr,t.\\u0275prov=X({token:t,providedIn:\"any\",factory:()=>Gt(Nr)}),t.__NG_ELEMENT_ID__=-1,t})();function Jr(t,e){Ue(ue(t)[1],me())}let Kr=null;function Yr(){if(!Kr){const t=pt.Symbol;if(t&&t.iterator)Kr=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Kr=n)}}}return Kr}function Xr(t){return!!ts(t)&&(Array.isArray(t)||!(t instanceof Map)&&Yr()in t)}function ts(t){return null!==t&&(\"function\"==typeof t||\"object\"==typeof t)}function es(t,e,n,r,s){const o=s?\"class\":\"style\";!function(t,e,n,r,s){for(let o=0;o<n.length;){const i=n[o++],l=n[o++],u=e[i],c=t.data[i];null!==c.setInput?c.setInput(u,s,r,l):u[l]=s}}(t,n,e.inputs[o],o,r)}function ns(t,e,n,r){const s=_e(),o=ye(),i=Yt+t,l=s[11],u=s[i]=Rn(l,e,fe.lFrame.currentNamespace),c=o.firstCreatePass?function(t,e,n,r,s,o,i){const l=e.consts,u=lr(e,t,2,s,ae(l,o));return function(t,e,n,r){let s=!1;if(pe()){const o=function(t,e,n){const r=t.directiveRegistry;let s=null;if(r)for(let o=0;o<r.length;o++){const i=r[o];er(n,i.selectors,!1)&&(s||(s=[]),dn(un(n,e),t,i.type),ne(i)?(gr(t,n),s.unshift(i)):s.push(i))}return s}(t,e,n),i=null===r?null:{\"\":-1};if(null!==o){s=!0,br(n,t.data.length,o.length);for(let t=0;t<o.length;t++){const e=o[t];e.providersResolver&&e.providersResolver(e)}let r=!1,l=!1,u=ur(t,e,o.length,null);for(let s=0;s<o.length;s++){const c=o[s];n.mergedAttrs=tn(n.mergedAttrs,c.hostAttrs),wr(t,n,e,u,c),vr(u,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128);const a=c.type.prototype;!r&&(a.ngOnChanges||a.ngOnInit||a.ngDoCheck)&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n.index),r=!0),l||!a.ngOnChanges&&!a.ngDoCheck||((t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n.index),l=!0),u++}!function(t,e){const n=e.directiveEnd,r=t.data,s=e.attrs,o=[];let i=null,l=null;for(let u=e.directiveStart;u<n;u++){const t=r[u],n=t.inputs,c=null===s||Jn(e)?null:xr(n,s);o.push(c),i=_r(n,u,i),l=_r(t.outputs,u,l)}null!==i&&(i.hasOwnProperty(\"class\")&&(e.flags|=16),i.hasOwnProperty(\"style\")&&(e.flags|=32)),e.initialInputs=o,e.inputs=i,e.outputs=l}(t,n)}i&&function(t,e,n){if(e){const r=t.localNames=[];for(let t=0;t<e.length;t+=2){const s=n[e[t+1]];if(null==s)throw new Ve(\"301\",`Export of name '${e[t+1]}' not found!`);r.push(e[t],s)}}}(n,r,i)}n.mergedAttrs=tn(n.mergedAttrs,n.attrs)}(e,n,u,ae(l,i)),null!==u.attrs&&Hr(u,u.attrs,!1),null!==u.mergedAttrs&&Hr(u,u.mergedAttrs,!0),null!==e.queries&&e.queries.elementStart(e,u),u}(i,o,s,0,e,n,r):o.data[i];ve(c,!0);const a=c.mergedAttrs;null!==a&&Xe(l,u,a);const h=c.classes;null!==h&&Wn(l,u,h);const d=c.styles;null!==d&&Un(l,u,d),64!=(64&c.flags)&&Bn(o,s,u,c),0===fe.lFrame.elementDepthCount&&Tn(u,s),fe.lFrame.elementDepthCount++,function(t){return 1==(1&t.flags)}(c)&&(function(t,e,n){pe()&&(function(t,e,n,r){const s=n.directiveStart,o=n.directiveEnd;t.firstCreatePass||un(n,e),Tn(r,e);const i=n.initialInputs;for(let l=s;l<o;l++){const r=t.data[l],o=ne(r);o&&Cr(e,n,r);const u=gn(e,t,l,n);Tn(u,e),null!==i&&Er(0,l-s,u,r,0,i),o&&(le(n.index,e)[8]=u)}}(t,e,n,ie(n,e)),128==(128&n.flags)&&function(t,e,n){const r=n.directiveStart,s=n.directiveEnd,o=n.index,i=fe.lFrame.currentDirectiveIndex;try{Ne(o);for(let n=r;n<s;n++){const r=t.data[n],s=e[n];xe(n),null===r.hostBindings&&0===r.hostVars&&null===r.hostAttrs||mr(r,s)}}finally{Ne(-1),xe(i)}}(t,e,n))}(o,s,c),function(t,e,n){if(ee(e)){const r=e.directiveEnd;for(let s=e.directiveStart;s<r;s++){const e=t.data[s];e.contentQueries&&e.contentQueries(1,n[s],s)}}}(o,c,s)),null!==r&&function(t,e,n=ie){const r=e.localNames;if(null!==r){let s=e.index+1;for(let o=0;o<r.length;o+=2){const i=r[o+1],l=-1===i?n(e,t):t[i];t[s++]=l}}}(s,c)}function rs(t){return!!t&&\"function\"==typeof t.then}const ss=void 0;var os=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],ss],[[\"AM\",\"PM\"],ss,ss],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],ss,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],ss,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",ss,\"{1} 'at' {0}\",ss],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},\"ltr\",function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===e&&0===n?1:5}];let is={};function ls(t){return t in is||(is[t]=pt.ng&&pt.ng.common&&pt.ng.common.locales&&pt.ng.common.locales[t]),is[t]}var us=function(t){return t[t.LocaleId=0]=\"LocaleId\",t[t.DayPeriodsFormat=1]=\"DayPeriodsFormat\",t[t.DayPeriodsStandalone=2]=\"DayPeriodsStandalone\",t[t.DaysFormat=3]=\"DaysFormat\",t[t.DaysStandalone=4]=\"DaysStandalone\",t[t.MonthsFormat=5]=\"MonthsFormat\",t[t.MonthsStandalone=6]=\"MonthsStandalone\",t[t.Eras=7]=\"Eras\",t[t.FirstDayOfWeek=8]=\"FirstDayOfWeek\",t[t.WeekendRange=9]=\"WeekendRange\",t[t.DateFormat=10]=\"DateFormat\",t[t.TimeFormat=11]=\"TimeFormat\",t[t.DateTimeFormat=12]=\"DateTimeFormat\",t[t.NumberSymbols=13]=\"NumberSymbols\",t[t.NumberFormats=14]=\"NumberFormats\",t[t.CurrencyCode=15]=\"CurrencyCode\",t[t.CurrencySymbol=16]=\"CurrencySymbol\",t[t.CurrencyName=17]=\"CurrencyName\",t[t.Currencies=18]=\"Currencies\",t[t.Directionality=19]=\"Directionality\",t[t.PluralCase=20]=\"PluralCase\",t[t.ExtraData=21]=\"ExtraData\",t}({});const cs=\"en-US\";let as=cs;function hs(t){var e,n;n=\"Expected localeId to be defined\",null==(e=t)&&function(t,e,n,r){throw new Error(\"ASSERTION ERROR: \"+t+` [Expected=> null != ${e} <=Actual]`)}(n,e),\"string\"==typeof t&&(as=t.toLowerCase().replace(/_/g,\"-\"))}class ds{}class fs{resolveComponentFactory(t){throw function(t){const e=Error(`No component factory found for ${J(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(t)}}let ps=(()=>{class t{}return t.NULL=new fs,t})();function _s(...t){}function ys(t,e){return new gs(ie(t,e))}const ms=function(){return ys(me(),_e())};let gs=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=ms,t})();class vs{}let bs=(()=>{class t{}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>null}),t})();class ws{constructor(t){this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}}const Cs=new ws(\"11.0.2\");class Es{constructor(){}supports(t){return Xr(t)}create(t){return new ks(t)}}const xs=(t,e)=>e;class ks{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||xs}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,r=0,s=null;for(;e||n;){const o=!n||e&&e.currentIndex<As(n,r,s)?e:n,i=As(o,r,s),l=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(e=e._next,null==o.previousIndex)r++;else{s||(s=[]);const t=i-r,e=l-r;if(t!=e){for(let n=0;n<t;n++){const r=n<s.length?s[n]:s[n]=0,o=r+n;e<=o&&o<t&&(s[n]=r+1)}s[o.previousIndex]=e-t}}i!==l&&t(o,i,l)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!Xr(t))throw new Error(`Error trying to diff '${J(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,r,s=this._itHead,o=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],r=this._trackByFn(e,n),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,n,r,e)),Object.is(s.item,n)||this._addIdentityChange(s,n)):(s=this._mismatch(s,n,r,e),o=!0),s=s._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[Yr()]();let r;for(;!(r=n.next()).done;)e(r.value)}}(t,t=>{r=this._trackByFn(e,t),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,t,r,e)),Object.is(s.item,t)||this._addIdentityChange(s,t)):(s=this._mismatch(s,t,r,e),o=!0),s=s._next,e++}),this.length=e;return this._truncate(s),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):t=this._addAfter(new Ts(e,n),s,r),t}_verifyReinsertion(t,e,n,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Is),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Is),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class Ts{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Ss{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class Is{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new Ss,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function As(t,e,n){const r=t.previousIndex;if(null===r)return r;let s=0;return n&&r<n.length&&(s=n[r]),r+e+s}class Os{constructor(){}supports(t){return t instanceof Map||ts(t)}create(){return new Ds}}class Ds{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||ts(t)))throw new Error(`Error trying to diff '${J(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const n=this._records.get(t);this._maybeAddToChanges(n,e);const r=n._prev,s=n._next;return r&&(r._next=s),s&&(s._prev=r),n._next=null,n._prev=null,n}const n=new js(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(n=>e(t[n],n))}}class js{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let Hs=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Es])}),t})(),Ns=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Os])}),t})();function Ps(t,e,n,r,s=!1){for(;null!==n;){const o=e[n.index];if(null!==o&&r.push(oe(o)),te(o))for(let t=10;t<o.length;t++){const e=o[t],n=e[1].firstChild;null!==n&&Ps(e[1],e,n,r)}const i=n.type;if(8&i)Ps(t,e,n.child,r);else if(32&i){const t=On(n,e);let s;for(;s=t();)r.push(s)}else if(16&i){const t=e[16],s=t[6].projection[n.projection];if(Array.isArray(s))r.push(...s);else{const e=Dn(t);Ps(e[1],e,s,r,!0)}}n=s?n.projectionNext:n.next}return r}class Rs extends class{constructor(t,e){this._lView=t,this._cdRefInjectingView=e,this._appRef=null,this._viewContainerRef=null}get rootNodes(){const t=this._lView,e=t[1];return Ps(e,t,e.firstChild,[])}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}!function(t,e){if(!(256&e[2])){const n=e[11];re(n)&&n.destroyNode&&zn(t,e,n,3,null,null),function(t){let e=t[13];if(!e)return Mn(t[1],t);for(;e;){let n=null;if(Xt(e))n=e[13];else{const t=e[10];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)Xt(e)&&Mn(e[1],e),e=e[3];null===e&&(e=t),Xt(e)&&Mn(e[1],e),n=e&&e[4]}e=n}}(e)}}(this._lView[1],this._lView)}onDestroy(t){!function(t,e,n,r){const s=(o=e)[7]||(o[7]=[]);var o;s.push(null),t.firstCreatePass&&function(t){return t.cleanup||(t.cleanup=[])}(t).push(r,s.length-1)}(this._lView[1],this._lView,0,t)}markForCheck(){!function(t){for(;t;){t[2]|=64;const e=Dn(t);if(0!=(512&t[2])&&!e)return t;t=e}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){Ar(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(t,e,n){Ce(!0);try{Ar(t,e,n)}finally{Ce(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=t}detachFromAppRef(){var t;this._appRef=null,zn(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=t}}{constructor(t){super(t),this._view=t}detectChanges(){Or(this._view)}checkNoChanges(){!function(t){Ce(!0);try{Or(t)}finally{Ce(!1)}}(this._view)}get context(){return null}}const Ms=[new Os],Fs=new Hs([new Es]),Vs=new Ns(Ms);class Ls{}const Bs={};class Zs extends ps{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=Pt(t);return new Us(e,this.ngModule)}}function zs(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const $s=new ut(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Sn});class Us extends ds{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors.map(rr).join(\",\"),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return zs(this.componentDef.inputs)}get outputs(){return zs(this.componentDef.outputs)}create(t,e,n,r){const s=(r=r||this.ngModule)?function(t,e){return{get:(n,r,s)=>{const o=t.get(n,Bs,s);return o!==Bs||r===Bs?o:e.get(n,r,s)}}}(t,r.injector):t,o=s.get(vs,se),i=s.get(bs,null),l=o.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(t,e,n){if(re(t))return t.selectRootElement(e,n===vt.ShadowDom);let r=\"string\"==typeof e?t.querySelector(e):e;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Rn(o.createRenderer(null,this.componentDef),u,function(t){const e=t.toLowerCase();return\"svg\"===e?\"http://www.w3.org/2000/svg\":\"math\"===e?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h={components:[],scheduler:Sn,clean:jr,playerHandler:null,flags:0},d=pr(0,null,null,1,0,null,null,null,null,null),f=ir(null,d,h,a,null,null,o,l,i,s);let p,_;Ie(f);try{const t=function(t,e,n,r,s,o){const i=n[1];n[20]=t;const l=lr(i,20,2,\"#host\",null),u=l.mergedAttrs=e.hostAttrs;null!==u&&(Hr(l,u,!0),null!==t&&(Xe(s,t,u),null!==l.classes&&Wn(s,t,l.classes),null!==l.styles&&Un(s,t,l.styles)));const c=r.createRenderer(t,e),a=ir(n,fr(e),null,e.onPush?64:16,n[20],l,r,c,null,null);return i.firstCreatePass&&(dn(un(l,n),i,e.type),gr(i,l),br(l,n.length,1)),Ir(n,a),n[20]=a}(c,this.componentDef,f,o,l);if(c)if(n)Xe(l,c,[\"ng-version\",Cs.full]);else{const{attrs:t,classes:e}=function(t){const e=[],n=[];let r=1,s=2;for(;r<t.length;){let o=t[r];if(\"string\"==typeof o)2===s?\"\"!==o&&e.push(o,t[++r]):8===s&&n.push(o);else{if(!Xn(s))break;s=o}r++}return{attrs:e,classes:n}}(this.componentDef.selectors[0]);t&&Xe(l,c,t),e&&e.length>0&&Wn(l,c,e.join(\" \"))}if(_=d.data[20],void 0!==e){const t=_.projection=[];for(let n=0;n<this.ngContentSelectors.length;n++){const r=e[n];t.push(null!=r?Array.from(r):null)}}p=function(t,e,n,r,s){const o=n[1],i=function(t,e,n){const r=me();t.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),wr(t,r,e,ur(t,e,1,null),n));const s=gn(e,t,r.directiveStart,r);Tn(s,e);const o=ie(r,e);return o&&Tn(o,e),s}(o,n,e);if(r.components.push(i),t[8]=i,s&&s.forEach(t=>t(i,e)),e.contentQueries){const t=me();e.contentQueries(1,i,t.directiveStart)}const l=me();return!o.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(Ne(l.index),yr(n[1],l,0,l.directiveStart,l.directiveEnd,e),mr(e,i)),i}(t,this.componentDef,f,h,[Jr]),cr(d,f,null)}finally{He()}return new Ws(this.componentType,p,ys(_,f),f,_)}}class Ws extends class{}{constructor(t,e,n,r,s){super(),this.location=n,this._rootLView=r,this._tNode=s,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new Rs(r),this.componentType=t}get injector(){return new wn(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const qs=new Map;class Qs extends Ls{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Zs(this);const n=Rt(t),r=t[Tt]||null;r&&hs(r),this._bootstrapComponents=In(n.bootstrap),this._r3Injector=Zr(t,e,[{provide:Ls,useValue:this},{provide:ps,useValue:this.componentFactoryResolver}],J(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=Gr.THROW_IF_NOT_FOUND,n=Ft.Default){return t===Gr||t===Ls||t===Nr?this:this._r3Injector.get(t,e,n)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Gs extends class{}{constructor(t){super(),this.moduleType=t,null!==Rt(t)&&function(t){const e=new Set;!function t(n){const r=Rt(n,!0),s=r.id;null!==s&&(function(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${J(e)} vs ${J(e.name)}`)}(s,qs.get(s),n),qs.set(s,n));const o=In(r.imports);for(const i of o)e.has(i)||(e.add(i),t(i))}(t)}(t)}create(t){return new Qs(this.moduleType,t)}}const Js=class extends E{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let r,s=t=>null,o=()=>null;t&&\"object\"==typeof t?(r=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(s=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(o=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(r=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(s=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(o=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,s,o);return t instanceof h&&t.add(i),i}},Ks=new ut(\"Application Initializer\");let Ys=(()=>{class t{constructor(t){this.appInits=t,this.resolve=_s,this.reject=_s,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();rs(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Ks,8))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const Xs=new ut(\"AppId\"),to={provide:Xs,useFactory:function(){return`${eo()}${eo()}${eo()}`},deps:[]};function eo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const no=new ut(\"Platform Initializer\"),ro=new ut(\"Platform ID\"),so=new ut(\"appBootstrapListener\");let oo=(()=>{class t{log(t){console.log(t)}warn(t){console.warn(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const io=new ut(\"LocaleId\"),lo=new ut(\"DefaultCurrencyCode\");class uo{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const co=function(t){return new Gs(t)},ao=co,ho=function(t){return Promise.resolve(co(t))},fo=function(t){const e=co(t),n=In(Rt(t).declarations).reduce((t,e)=>{const n=Pt(e);return n&&t.push(new Us(n)),t},[]);return new uo(e,n)},po=fo,_o=function(t){return Promise.resolve(fo(t))};let yo=(()=>{class t{constructor(){this.compileModuleSync=ao,this.compileModuleAsync=ho,this.compileModuleAndAllComponentsSync=po,this.compileModuleAndAllComponentsAsync=_o}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const mo=(()=>Promise.resolve(0))();function go(t){\"undefined\"==typeof Zone?mo.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",t)}class vo{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Js(!1),this.onMicrotaskEmpty=new Js(!1),this.onStable=new Js(!1),this.onError=new Js(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched();const n=this;n._nesting=0,n._outer=n._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(n._inner=n._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(n._inner=n._inner.fork(Zone.longStackTraceZoneSpec)),n.shouldCoalesceEventChangeDetection=e,n.lastRequestAnimationFrameId=-1,n.nativeRequestAnimationFrame=function(){let t=pt.requestAnimationFrame,e=pt.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__(\"OriginalDelegate\")];n&&(t=n);const r=e[Zone.__symbol__(\"OriginalDelegate\")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function(t){const e=!!t.shouldCoalesceEventChangeDetection&&t.nativeRequestAnimationFrame&&(()=>{!function(t){-1===t.lastRequestAnimationFrameId&&(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(pt,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask(\"fakeTopEventTask\",()=>{t.lastRequestAnimationFrameId=-1,Eo(t),Co(t)},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Eo(t))}(t)});t._inner=t._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:e},onInvokeTask:(n,r,s,o,i,l)=>{try{return xo(t),n.invokeTask(s,o,i,l)}finally{e&&\"eventTask\"===o.type&&e(),ko(t)}},onInvoke:(e,n,r,s,o,i,l)=>{try{return xo(t),e.invoke(r,s,o,i,l)}finally{ko(t)}},onHasTask:(e,n,r,s)=>{e.hasTask(r,s),n===r&&(\"microTask\"==s.change?(t._hasPendingMicrotasks=s.microTask,Eo(t),Co(t)):\"macroTask\"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,n,r,s)=>(e.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(n)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!vo.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(vo.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,r){const s=this._inner,o=s.scheduleEventTask(\"NgZoneEvent: \"+r,t,wo,bo,bo);try{return s.runTask(o,e,n)}finally{s.cancelTask(o)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function bo(){}const wo={};function Co(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Eo(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||t.shouldCoalesceEventChangeDetection&&-1!==t.lastRequestAnimationFrameId)}function xo(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ko(t){t._nesting--,Co(t)}class To{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Js,this.onMicrotaskEmpty=new Js,this.onStable=new Js,this.onError=new Js}run(t,e,n){return t.apply(e,n)}runGuarded(t,e,n){return t.apply(e,n)}runOutsideAngular(t){return t()}runTask(t,e,n,r){return t.apply(e,n)}}let So=(()=>{class t{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{vo.assertNotInAngularZone(),go(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())go(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let r=-1;e&&e>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==r),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Io=(()=>{class t{constructor(){this._applications=new Map,Do.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return Do.findTestabilityInTree(this,t,e)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class Ao{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}let Oo,Do=new Ao;const jo=new ut(\"AllowMultipleToken\");function Ho(t,e,n=[]){const r=\"Platform: \"+e,s=new ut(r);return(e=[])=>{let o=No();if(!o||o.injector.get(jo,!1))if(t)t(n.concat(e).concat({provide:s,useValue:!0}));else{const t=n.concat(e).concat({provide:s,useValue:!0},{provide:Rr,useValue:\"platform\"});!function(t){if(Oo&&!Oo.destroyed&&!Oo.injector.get(jo,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");Oo=t.get(Po);const e=t.get(no,null);e&&e.forEach(t=>t())}(Gr.create({providers:t,name:r}))}return function(t){const e=No();if(!e)throw new Error(\"No platform exists!\");if(!e.injector.get(t,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return e}(s)}}function No(){return Oo&&!Oo.destroyed?Oo:null}let Po=(()=>{class t{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t,e){let n;return n=\"noop\"===t?new To:(\"zone.js\"===t?void 0:t)||new vo({enableLongStackTrace:Me(),shouldCoalesceEventChangeDetection:e}),n}(e?e.ngZone:void 0,e&&e.ngZoneEventCoalescing||!1),r=[{provide:vo,useValue:n}];return n.run(()=>{const e=Gr.create({providers:r,parent:this.injector,name:t.moduleType.name}),s=t.create(e),o=s.injector.get(kn,null);if(!o)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return s.onDestroy(()=>Fo(this._modules,s)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{o.handleError(t)}})),function(t,e,n){try{const r=n();return rs(r)?r.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(o,n,()=>{const t=s.injector.get(Ys);return t.runInitializers(),t.donePromise.then(()=>(hs(s.injector.get(io,cs)||cs),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,e=[]){const n=Ro({},e);return function(t,e,n){const r=new Gs(n);return Promise.resolve(r)}(0,0,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(Mo);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${J(t.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. Please define one of these.`);t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Gr))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Ro(t,e){return Array.isArray(e)?e.reduce(Ro,t):Object.assign(Object.assign({},t),e)}let Mo=(()=>{class t{constructor(t,e,n,r,s,o){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Me(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),l=new g(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{vo.assertNotInAngularZone(),go(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{vo.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=function(...t){let e=Number.POSITIVE_INFINITY,n=null,r=t[t.length-1];var s;return(s=r)&&\"function\"==typeof s.schedule?(n=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(e=t.pop())):\"number\"==typeof r&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof g?t[0]:function(t=Number.POSITIVE_INFINITY){return H(m,t)}(e)(function(t,e){return e?function(t,e){return new g(n=>{const r=new h;let s=0;return r.add(e.schedule(function(){s!==t.length?(n.next(t[s++]),n.closed||r.add(this.schedule())):n.complete()})),r})}(t,e):new g(S(t))}(t,n))}(i,l.pipe(t=>{return R()((e=Z,function(t){let n;n=\"function\"==typeof e?e:function(){return e};const r=Object.create(t,L);return r.source=t,r.subjectFactory=n,r})(t));var e}))}bootstrap(t,e){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=t instanceof ds?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(Ls),s=n.create(Gr.NULL,[],e||n.selector,r);s.onDestroy(()=>{this._unloadComponent(s)});const o=s.injector.get(So,null);return o&&s.injector.get(Io).registerApplication(s.location.nativeElement,o),this._loadComponent(s),Me()&&this._console.log(\"Angular is running in development mode. Call enableProdMode() to enable production mode.\"),s}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Fo(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(so,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),Fo(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo),Gt(oo),Gt(Gr),Gt(kn),Gt(ps),Gt(Ys))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Fo(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const Vo=Ho(null,\"core\",[{provide:ro,useValue:\"unknown\"},{provide:Po,deps:[Gr]},{provide:Io,deps:[]},{provide:oo,deps:[]}]),Lo=[{provide:Mo,useClass:Mo,deps:[vo,oo,Gr,kn,ps,Ys]},{provide:$s,deps:[vo],useFactory:function(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:Ys,useClass:Ys,deps:[[new q,Ks]]},{provide:yo,useClass:yo,deps:[]},to,{provide:Hs,useFactory:function(){return Fs},deps:[]},{provide:Ns,useFactory:function(){return Vs},deps:[]},{provide:io,useFactory:function(t){return hs(t=t||\"undefined\"!=typeof $localize&&$localize.locale||cs),t},deps:[[new W(io),new q,new G]]},{provide:lo,useValue:\"USD\"}];let Bo=(()=>{class t{constructor(t){}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(Mo))},providers:Lo}),t})(),Zo=null;function zo(){return Zo}const $o=new ut(\"DocumentToken\");var Uo=function(t){return t[t.Zero=0]=\"Zero\",t[t.One=1]=\"One\",t[t.Two=2]=\"Two\",t[t.Few=3]=\"Few\",t[t.Many=4]=\"Many\",t[t.Other=5]=\"Other\",t}({});class Wo{}let qo=(()=>{class t extends Wo{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(function(t){return function(t){const e=function(t){return t.toLowerCase().replace(/_/g,\"-\")}(t);let n=ls(e);if(n)return n;const r=e.split(\"-\")[0];if(n=ls(r),n)return n;if(\"en\"===r)return os;throw new Error(`Missing locale data for the locale \"${t}\".`)}(t)[us.PluralCase]}(e||this.locale)(t)){case Uo.Zero:return\"zero\";case Uo.One:return\"one\";case Uo.Two:return\"two\";case Uo.Few:return\"few\";case Uo.Many:return\"many\";default:return\"other\"}}}return t.\\u0275fac=function(e){return new(e||t)(Gt(io))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Qo=(()=>{class t{}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[{provide:Wo,useClass:qo}]}),t})();class Go extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var t;t=new Go,Zo||(Zo=t)}getProperty(t,e){return t[e]}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}getValue(t){return t.value}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return\"window\"===e?window:\"document\"===e?t:\"body\"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=Ko||(Ko=document.querySelector(\"base\"),Ko)?Ko.getAttribute(\"href\"):null;return null==e?null:(n=e,Jo||(Jo=document.createElement(\"a\")),Jo.setAttribute(\"href\",n),\"/\"===Jo.pathname.charAt(0)?Jo.pathname:\"/\"+Jo.pathname);var n}resetBaseElement(){Ko=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return function(t,e){e=encodeURIComponent(e);for(const n of t.split(\";\")){const t=n.indexOf(\"=\"),[r,s]=-1==t?[n,\"\"]:[n.slice(0,t),n.slice(t+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}(document.cookie,t)}}let Jo,Ko=null;const Yo=new ut(\"TRANSITION_ID\"),Xo=[{provide:Ks,useFactory:function(t,e,n){return()=>{n.get(Ys).donePromise.then(()=>{const n=zo();Array.prototype.slice.apply(e.querySelectorAll(\"style[ng-transition]\")).filter(e=>e.getAttribute(\"ng-transition\")===t).forEach(t=>n.remove(t))})}},deps:[Yo,$o,Gr],multi:!0}];class ti{static init(){var t;t=new ti,Do=t}addToWindow(t){pt.getAngularTestability=(e,n=!0)=>{const r=t.findTestabilityInTree(e,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},pt.getAllAngularTestabilities=()=>t.getAllTestabilities(),pt.getAllAngularRootElements=()=>t.getAllRootElements(),pt.frameworkStabilizers||(pt.frameworkStabilizers=[]),pt.frameworkStabilizers.push(t=>{const e=pt.getAllAngularTestabilities();let n=e.length,r=!1;const s=function(e){r=r||e,n--,0==n&&t(r)};e.forEach(function(t){t.whenStable(s)})})}findTestabilityInTree(t,e,n){if(null==e)return null;const r=t.getTestability(e);return null!=r?r:n?zo().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}const ei=new ut(\"EventManagerPlugins\");let ni=(()=>{class t{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let r=0;r<n.length;r++){const e=n[r];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(\"No event manager plugin found for event \"+t)}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ei),Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class ri{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const r=zo().getGlobalEventTarget(this._doc,t);if(!r)throw new Error(`Unsupported event target ${r} for event ${e}`);return this.addEventListener(r,e,n)}}let si=(()=>{class t{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),oi=(()=>{class t extends si{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement(\"style\");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>zo().remove(t))}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const ii={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},li=/%COMP%/g;function ui(t,e,n){for(let r=0;r<e.length;r++){let s=e[r];Array.isArray(s)?ui(t,s,n):(s=s.replace(li,t),n.push(s))}return n}function ci(t){return e=>{if(\"__ngUnwrap__\"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let ai=(()=>{class t{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new hi(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case vt.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new di(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case 1:case vt.ShadowDom:return new fi(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=ui(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ni),Gt(oi),Gt(Xs))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class hi{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(ii[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n=\"string\"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector \"${t}\" did not match any elements`);return e||(n.textContent=\"\"),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,r){if(r){e=r+\":\"+e;const s=ii[r];s?t.setAttributeNS(s,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const r=ii[n];r?t.removeAttributeNS(r,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,r){r&(An.DashCase|An.Important)?t.style.setProperty(e,n,r&An.Important?\"important\":\"\"):t.style[e]=n}removeStyle(t,e,n){n&An.DashCase?t.style.removeProperty(e):t.style[e]=\"\"}setProperty(t,e,n){t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return\"string\"==typeof t?this.eventManager.addGlobalEventListener(t,e,ci(n)):this.eventManager.addEventListener(t,e,ci(n))}}class di extends hi{constructor(t,e,n,r){super(t),this.component=n;const s=ui(r+\"-\"+n.id,n.styles,[]);e.addStyles(s),this.contentAttr=\"_ngcontent-%COMP%\".replace(li,r+\"-\"+n.id),this.hostAttr=\"_nghost-%COMP%\".replace(li,r+\"-\"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,\"\")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,\"\"),n}}class fi extends hi{constructor(t,e,n,r){super(t),this.sharedStylesHost=e,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:\"open\"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=ui(r.id,r.styles,[]);for(let o=0;o<s.length;o++){const t=document.createElement(\"style\");t.textContent=s[o],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}let pi=(()=>{class t extends ri{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,n){return t.addEventListener(e,n,!1),()=>this.removeEventListener(t,e,n)}removeEventListener(t,e,n){return t.removeEventListener(e,n)}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const _i=[\"alt\",\"control\",\"meta\",\"shift\"],yi={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},mi={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},gi={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let vi=(()=>{class t extends ri{constructor(t){super(t)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,n,r){const s=t.parseEventName(n),o=t.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>zo().onAndCancel(e,s.domEventName,o))}static parseEventName(e){const n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const s=t._normalizeKey(n.pop());let o=\"\";if(_i.forEach(t=>{const e=n.indexOf(t);e>-1&&(n.splice(e,1),o+=t+\".\")}),o+=s,0!=n.length||0===s.length)return null;const i={};return i.domEventName=r,i.fullKey=o,i}static getEventFullKey(t){let e=\"\",n=function(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return\"Unidentified\";e.startsWith(\"U+\")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&mi.hasOwnProperty(e)&&(e=mi[e]))}return yi[e]||e}(t);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),_i.forEach(r=>{r!=n&&(0,gi[r])(t)&&(e+=r+\".\")}),e+=n,e}static eventCallback(e,n,r){return s=>{t.getEventFullKey(s)===e&&r.runGuarded(()=>n(s))}}static _normalizeKey(t){switch(t){case\"esc\":return\"escape\";default:return t}}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const bi=Ho(Vo,\"browser\",[{provide:ro,useValue:\"browser\"},{provide:no,useValue:function(){Go.makeCurrent(),ti.init()},multi:!0},{provide:$o,useFactory:function(){return function(t){Kt=t}(document),document},deps:[]}]),wi=[[],{provide:Rr,useValue:\"root\"},{provide:kn,useFactory:function(){return new kn},deps:[]},{provide:ei,useClass:pi,multi:!0,deps:[$o,vo,ro]},{provide:ei,useClass:vi,multi:!0,deps:[$o]},[],{provide:ai,useClass:ai,deps:[ni,oi,Xs]},{provide:vs,useExisting:ai},{provide:si,useExisting:oi},{provide:oi,useClass:oi,deps:[$o]},{provide:So,useClass:So,deps:[vo]},{provide:ni,useClass:ni,deps:[ei,vo]},[]];let Ci=(()=>{class t{constructor(t){if(t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(e){return{ngModule:t,providers:[{provide:Xs,useValue:e.appId},{provide:Yo,useExisting:Xs},Xo]}}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(t,12))},providers:wi,imports:[Qo,Bo]}),t})();\"undefined\"!=typeof window&&window;let Ei=(()=>{class t{constructor(){this.title=\"example\"}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=(e={type:t,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(t,e){1&t&&(ns(0,\"div\",0),function(t,e=\"\"){const n=_e(),r=ye(),s=t+Yt,o=r.firstCreatePass?lr(r,s,1,e,null):r.data[s],i=n[s]=function(t,e){return re(t)?t.createText(e):t.createTextNode(e)}(n[11],e);Bn(r,n,i,o),ve(o,!1)}(1,\" Hello, World\\n\"),function(){let t=me();be()?fe.lFrame.isParent=!1:(t=t.parent,ve(t,!1));const e=t;fe.lFrame.elementDepthCount--;const n=ye();n.firstCreatePass&&(Ue(n,t),ee(t)&&n.queries.elementEnd(t)),null!=e.classesWithoutHost&&function(t){return 0!=(16&t.flags)}(e)&&es(n,e,_e(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function(t){return 0!=(32&t.flags)}(e)&&es(n,e,_e(),e.stylesWithoutHost,!1)}())},styles:[\"\"]},z(()=>{const t={},n={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===ct.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||wt,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||vt.Emulated,id:\"c\",styles:e.styles||wt,_:null,setInput:null,schemas:e.schemas||null,tView:null},r=e.directives,s=e.features,o=e.pipes;return n.id+=At++,n.inputs=Nt(e.inputs,t),n.outputs=Nt(e.outputs),s&&s.forEach(t=>t(n)),n.directiveDefs=r?()=>(\"function\"==typeof r?r():r).map(Ot):null,n.pipeDefs=o?()=>(\"function\"==typeof o?o():o).map(Dt):null,n})),t;var e})(),xi=(()=>{class t{}return t.\\u0275mod=Ht({type:t,bootstrap:[Ei]}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[],imports:[[Ci]]}),t})();(function(){if(Re)throw new Error(\"Cannot enable prod mode after platform setup.\");Pe=!1})(),bi().bootstrapModule(xi).catch(t=>console.error(t))},zn8P:function(t,e){function n(t){return Promise.resolve().then(function(){var e=new Error(\"Cannot find module '\"+t+\"'\");throw e.code=\"MODULE_NOT_FOUND\",e})}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/dist/example/polyfills.bf99d438b005d57b2b31.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{1:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const i=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(i||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class a{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==C.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=a.current;for(;e.parent;)e=e.parent;return e}static get current(){return z.zone}static get currentTask(){return j}static __load_patch(t,r){if(C.hasOwnProperty(t)){if(i)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),C[t]=r(e,a,O),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){z={parent:z,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{z=z.parent}}runGuarded(e,t=null,n,o){z={parent:z,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{z=z.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,T),e.runCount++;const r=j;j=e,z={parent:z,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(T,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),z=z.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(b,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,b,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==b&&e._transitionTo(T,b),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,T,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}a.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new a(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");k(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,i){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=i,!o)throw new Error(\"callback is not defined\");this.callback=o;const a=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,a,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,b)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],_=!1;function k(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!_){for(_=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){O.onUnhandledError(e)}}}O.microtaskDrainDone(),_=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",b=\"scheduling\",T=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",C={},O={symbol:s,currentZoneFrame:()=>z,onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:k,showUncaughtError:()=>!a[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:N,patchMethod:()=>N,bindArguments:()=>[],patchThen:()=>N,patchMacroTask:()=>N,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>N,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>N,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>N,wrapWithCurrentZone:()=>N,filterProperties:()=>[],attachOriginToPatched:()=>N,_redefineProperty:()=>N,patchCallbacks:()=>N};let z={parent:null,zone:new a(null,null)},j=null,I=0;function N(){}o(\"Zone\",\"Zone\"),e.Zone=a}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,i=[],a=!0===e[s(\"DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION\")],c=s(\"Promise\"),l=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;i.length;){const t=i.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){h(e)}}};const u=s(\"unhandledPromiseRejectionHandler\");function h(e){n.onUnhandledError(e);try{const n=t[u];\"function\"==typeof n&&n.call(this,e)}catch(o){}}function p(e){return e&&e.then}function f(e){return e}function d(e){return O.reject(e)}const g=s(\"state\"),_=s(\"value\"),k=s(\"finally\"),m=s(\"parentPromiseValue\"),y=s(\"parentPromiseState\"),v=null,b=!0,T=!1;function E(e,t){return n=>{try{Z(e,t,n)}catch(o){Z(e,!1,o)}}}const w=s(\"currentTaskTrace\");function Z(e,o,s){const c=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(e[g]===v){let h=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(h=s&&s.then)}catch(u){return c(()=>{Z(e,!1,u)})(),e}if(o!==T&&s instanceof O&&s.hasOwnProperty(g)&&s.hasOwnProperty(_)&&s[g]!==v)D(s),Z(e,s[g],s[_]);else if(o!==T&&\"function\"==typeof h)try{h.call(s,c(E(e,o)),c(E(e,!1)))}catch(u){c(()=>{Z(e,!1,u)})()}else{e[g]=o;const c=e[_];if(e[_]=s,e[k]===k&&o===b&&(e[g]=e[y],e[_]=e[m]),o===T&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,w,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<c.length;)P(e,c[t++],c[t++],c[t++],c[t++]);if(0==c.length&&o==T){e[g]=0;let o=s;if(!a)try{throw new Error(\"Uncaught (in promise): \"+((l=s)&&l.toString===Object.prototype.toString?(l.constructor&&l.constructor.name||\"\")+\": \"+JSON.stringify(l):l?l.toString():Object.prototype.toString.call(l))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(u){o=u}o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,i.push(o),n.scheduleMicroTask()}}}var l;return e}const S=s(\"rejectionHandledHandler\");function D(e){if(0===e[g]){try{const n=t[S];n&&\"function\"==typeof n&&n.call(this,{rejection:e[_],promise:e})}catch(n){}e[g]=T;for(let t=0;t<i.length;t++)e===i[t].promise&&i.splice(t,1)}}function P(e,t,n,o,r){D(e);const s=e[g],i=s?\"function\"==typeof o?o:f:\"function\"==typeof r?r:d;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[_],r=!!n&&k===n[k];r&&(n[m]=o,n[y]=s);const a=t.run(i,void 0,r&&i!==d&&i!==f?[]:[o]);Z(n,!0,a)}catch(o){Z(n,!1,o)}},n)}const C=function(){};class O{static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return Z(new this(null),b,e)}static reject(e){return Z(new this(null),T,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let i of e)p(i)||(i=this.resolve(i)),i.then(r,s);return o}static all(e){return O.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof O?this:O).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,i=0;const a=[];for(let l of e){p(l)||(l=this.resolve(l));const e=i;try{l.then(o=>{a[e]=t?t.thenCallback(o):o,s--,0===s&&n(a)},r=>{t?(a[e]=t.errorCallback(r),s--,0===s&&n(a)):o(r)})}catch(c){o(c)}s++,i++}return s-=2,0===s&&n(a),r}constructor(e){const t=this;if(!(t instanceof O))throw new Error(\"Must be an instanceof Promise.\");t[g]=v,t[_]=[];try{e&&e(E(t,b),E(t,T))}catch(n){Z(t,!1,n)}}get[Symbol.toStringTag](){return\"Promise\"}get[Symbol.species](){return O}then(e,n){let o=this.constructor[Symbol.species];o&&\"function\"==typeof o||(o=this.constructor||O);const r=new o(C),s=t.current;return this[g]==v?this[_].push(s,r,e,n):P(this,s,r,e,n),r}catch(e){return this.then(null,e)}finally(e){let n=this.constructor[Symbol.species];n&&\"function\"==typeof n||(n=O);const o=new n(C);o[k]=k;const r=t.current;return this[g]==v?this[_].push(r,o,e,e):P(this,r,o,e,e),o}}O.resolve=O.resolve,O.reject=O.reject,O.race=O.race,O.all=O.all;const z=e[c]=e.Promise,j=t.__symbol__(\"ZoneAwarePromise\");let I=o(e,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return e[j]?e[j]:e[c]},I.set=function(t){t===O?e[j]=t:(e[c]=t,t.prototype[l]||R(t),n.setNativePromise(t))},r(e,\"Promise\",I)),e.Promise=O;const N=s(\"thenPatched\");function R(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[l]=r,e.prototype.then=function(e,t){return new O((e,t)=>{r.call(this,e,t)}).then(e,t)},e[N]=!0}if(n.patchThen=R,z){R(z);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(x=t,function(){let e=x.apply(this,arguments);if(e instanceof O)return e;let t=e.constructor;return t[N]||R(t),e}))}var x;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=i,O});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=\"addEventListener\",i=\"removeEventListener\",a=Zone.__symbol__(s),c=Zone.__symbol__(i),l=\"true\",u=\"false\",h=Zone.__symbol__(\"\");function p(e,t){return Zone.current.wrap(e,t)}function f(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const d=Zone.__symbol__,g=\"undefined\"!=typeof window,_=g?window:void 0,k=g&&_||\"object\"==typeof self&&self||global,m=[null];function y(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=p(e[n],t+\"_\"+n));return e}function v(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const b=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,T=!(\"nw\"in k)&&void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process),E=!T&&!b&&!(!g||!_.HTMLElement),w=void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process)&&!b&&!(!g||!_.HTMLElement),Z={},S=function(e){if(!(e=e||k.event))return;let t=Z[e.type];t||(t=Z[e.type]=d(\"ON_PROPERTY\"+e.type));const n=this||e.target||k,o=n[t];let r;if(E&&n===_&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function D(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const i=d(\"on\"+o+\"patched\");if(n.hasOwnProperty(i)&&n[i])return;delete s.writable,delete s.value;const a=s.get,c=s.set,l=o.substr(2);let u=Z[l];u||(u=Z[l]=d(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==k||(t=k),t&&(t[u]&&t.removeEventListener(l,S),c&&c.apply(t,m),\"function\"==typeof e?(t[u]=e,t.addEventListener(l,S,!1)):t[u]=null)},s.get=function(){let e=this;if(e||n!==k||(e=k),!e)return null;const t=e[u];if(t)return t;if(a){let t=a&&a.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[i]=!0}function P(e,t,n){if(t)for(let o=0;o<t.length;o++)D(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)D(e,t[o],n)}}const C=d(\"originalInstance\");function O(e){const n=k[e];if(!n)return;k[d(e)]=n,k[e]=function(){const t=y(arguments,e);switch(t.length){case 0:this[C]=new n;break;case 1:this[C]=new n(t[0]);break;case 2:this[C]=new n(t[0],t[1]);break;case 3:this[C]=new n(t[0],t[1],t[2]);break;case 4:this[C]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},I(k[e],n);const o=new n(function(){});let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?k[e].prototype[n]=function(){return this[C][n].apply(this[C],arguments)}:t(k[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[C][n]=p(t,e+\".\"+n),I(this[C][n],t)):this[C][n]=t},get:function(){return this[C][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(k[e][r]=n[r])}function z(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const i=d(o);let a=null;if(s&&!(a=s[i])&&(a=s[i]=s[o],v(s&&e(s,o)))){const e=r(a,i,o);s[o]=function(){return e(this,arguments)},I(s[o],a)}return a}function j(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=z(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?f(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function I(e,t){e[d(\"OriginalDelegate\")]=t}let N=!1,R=!1;function x(){try{const e=_.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function M(){if(N)return R;N=!0;try{const e=_.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(R=!0)}catch(e){}return R}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=d(\"OriginalDelegate\"),o=d(\"Promise\"),r=d(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const i=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":i.call(this)}});let L=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){L=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(he){L=!1}const A={useG:!0},H={},F={},G=new RegExp(\"^\"+h+\"(\\\\w+)(true|false)$\"),B=d(\"propagationStopped\");function q(e,t){const n=(t?t(e):e)+u,o=(t?t(e):e)+l,r=h+n,s=h+o;H[e]={},H[e].false=r,H[e].true=s}function W(e,t,o){const r=o&&o.add||s,a=o&&o.rm||i,c=o&&o.listeners||\"eventListeners\",p=o&&o.rmAll||\"removeAllListeners\",f=d(r),g=\".\"+r+\":\",_=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[a].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},k=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].false];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}},m=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].true];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}};function y(t,o){if(!t)return!1;let s=!0;o&&void 0!==o.useG&&(s=o.useG);const i=o&&o.vh;let _=!0;o&&void 0!==o.chkDup&&(_=o.chkDup);let y=!1;o&&void 0!==o.rt&&(y=o.rt);let v=t;for(;v&&!v.hasOwnProperty(r);)v=n(v);if(!v&&t[r]&&(v=t),!v)return!1;if(v[f])return!1;const b=o&&o.eventNameToString,E={},w=v[f]=v[r],Z=v[d(a)]=v[a],S=v[d(c)]=v[c],D=v[d(p)]=v[p];let P;function C(e,t){return!L&&\"object\"==typeof e&&e?!!e.capture:L&&t?\"boolean\"==typeof e?{capture:e,passive:!0}:e?\"object\"==typeof e&&!1!==e.passive?Object.assign(Object.assign({},e),{passive:!0}):e:{passive:!0}:e}o&&o.prepend&&(P=v[d(o.prepend)]=v[o.prepend]);const O=s?function(e){if(!E.isExisting)return w.call(E.target,E.eventName,E.capture?m:k,E.options)}:function(e){return w.call(E.target,E.eventName,e.invoke,E.options)},z=s?function(e){if(!e.isRemoved){const t=H[e.eventName];let n;t&&(n=t[e.capture?l:u]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return Z.call(e.target,e.eventName,e.capture?m:k,e.options)}:function(e){return Z.call(e.target,e.eventName,e.invoke,e.options)},j=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},N=Zone[d(\"BLACK_LISTED_EVENTS\")],R=e[d(\"PASSIVE_EVENTS\")],x=function(t,n,r,a,c=!1,h=!1){return function(){const p=this||e;let f=arguments[0];o&&o.transferEventName&&(f=o.transferEventName(f));let d=arguments[1];if(!d)return t.apply(this,arguments);if(T&&\"uncaughtException\"===f)return t.apply(this,arguments);let g=!1;if(\"function\"!=typeof d){if(!d.handleEvent)return t.apply(this,arguments);g=!0}if(i&&!i(t,d,p,arguments))return;const k=L&&!!R&&-1!==R.indexOf(f),m=C(arguments[2],k);if(N)for(let e=0;e<N.length;e++)if(f===N[e])return k?t.call(p,f,d,m):t.apply(this,arguments);const y=!!m&&(\"boolean\"==typeof m||m.capture),v=!(!m||\"object\"!=typeof m)&&m.once,w=Zone.current;let Z=H[f];Z||(q(f,b),Z=H[f]);const S=Z[y?l:u];let D,P=p[S],O=!1;if(P){if(O=!0,_)for(let e=0;e<P.length;e++)if(j(P[e],d))return}else P=p[S]=[];const z=p.constructor.name,I=F[z];I&&(D=I[f]),D||(D=z+n+(b?b(f):f)),E.options=m,v&&(E.options.once=!1),E.target=p,E.capture=y,E.eventName=f,E.isExisting=O;const x=s?A:void 0;x&&(x.taskData=E);const M=w.scheduleEventTask(D,d,x,r,a);return E.target=null,x&&(x.taskData=null),v&&(m.once=!0),(L||\"boolean\"!=typeof M.options)&&(M.options=m),M.target=p,M.capture=y,M.eventName=f,g&&(M.originalDelegate=d),h?P.unshift(M):P.push(M),c?p:void 0}};return v[r]=x(w,g,O,z,y),P&&(v.prependListener=x(P,\".prependListener:\",function(e){return P.call(E.target,E.eventName,e.invoke,E.options)},z,y,!0)),v[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2],s=!!r&&(\"boolean\"==typeof r||r.capture),a=arguments[1];if(!a)return Z.apply(this,arguments);if(i&&!i(Z,a,t,arguments))return;const c=H[n];let p;c&&(p=c[s?l:u]);const f=p&&t[p];if(f)for(let e=0;e<f.length;e++){const o=f[e];if(j(o,a))return f.splice(e,1),o.isRemoved=!0,0===f.length&&(o.allRemoved=!0,t[p]=null,\"string\"==typeof n)&&(t[h+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),y?t:void 0}return Z.apply(this,arguments)},v[c]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=U(t,b?b(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},v[p]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=H[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=G.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[p].call(this,o)}this[p].call(this,\"removeListener\")}if(y)return this},I(v[r],w),I(v[a],Z),D&&I(v[p],D),S&&I(v[c],S),!0}let v=[];for(let n=0;n<t.length;n++)v[n]=y(t[n],o);return v}function U(e,t){if(!t){const n=[];for(let o in e){const r=G.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}let n=H[t];n||(q(t),n=H[t]);const o=e[n.false],r=e[n.true];return o?r?o.concat(r):o.slice():r?r.slice():[]}function V(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[B]=!0,e&&e.apply(t,n)})}function $(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const i=t[s]=t[o];t[o]=function(s,a,c){return a&&a.prototype&&r.forEach(function(t){const r=`${n}.${o}::`+t,s=a.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(a.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}),i.call(t,s,a,c)},e.attachOriginToPatched(t[o],i)}const X=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplayconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],J=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],Y=[\"load\"],K=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],Q=[\"bounce\",\"finish\",\"start\"],ee=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],te=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],ne=[\"close\",\"error\",\"open\",\"message\"],oe=[\"error\",\"message\"],re=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],X,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function se(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function ie(e,t,n,o){e&&P(e,se(e,t,n),o)}function ae(e,t){if(T&&!w)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(E){const e=window,t=x?[{target:e,ignoreProperties:[\"error\"]}]:[];ie(e,re.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),ie(Document.prototype,re,r),void 0!==e.SVGElement&&ie(e.SVGElement.prototype,re,r),ie(Element.prototype,re,r),ie(HTMLElement.prototype,re,r),ie(HTMLMediaElement.prototype,J,r),ie(HTMLFrameSetElement.prototype,X.concat(K),r),ie(HTMLBodyElement.prototype,X.concat(K),r),ie(HTMLFrameElement.prototype,Y,r),ie(HTMLIFrameElement.prototype,Y,r);const o=e.HTMLMarqueeElement;o&&ie(o.prototype,Q,r);const s=e.Worker;s&&ie(s.prototype,oe,r)}const s=t.XMLHttpRequest;s&&ie(s.prototype,ee,r);const i=t.XMLHttpRequestEventTarget;i&&ie(i&&i.prototype,ee,r),\"undefined\"!=typeof IDBIndex&&(ie(IDBIndex.prototype,te,r),ie(IDBRequest.prototype,te,r),ie(IDBOpenDBRequest.prototype,te,r),ie(IDBDatabase.prototype,te,r),ie(IDBTransaction.prototype,te,r),ie(IDBCursor.prototype,te,r)),o&&ie(WebSocket.prototype,ne,r)}Zone.__load_patch(\"util\",(n,a,c)=>{c.patchOnProperties=P,c.patchMethod=z,c.bindArguments=y,c.patchMacroTask=j;const f=a.__symbol__(\"BLACK_LISTED_EVENTS\"),d=a.__symbol__(\"UNPATCHED_EVENTS\");n[d]&&(n[f]=n[d]),n[f]&&(a[f]=a[d]=n[f]),c.patchEventPrototype=V,c.patchEventTarget=W,c.isIEOrEdge=M,c.ObjectDefineProperty=t,c.ObjectGetOwnPropertyDescriptor=e,c.ObjectCreate=o,c.ArraySlice=r,c.patchClass=O,c.wrapWithCurrentZone=p,c.filterProperties=se,c.attachOriginToPatched=I,c._redefineProperty=Object.defineProperty,c.patchCallbacks=$,c.getGlobalObjects=()=>({globalSources:F,zoneSymbolEventNames:H,eventNames:re,isBrowser:E,isMix:w,isNode:T,TRUE_STR:l,FALSE_STR:u,ZONE_SYMBOL_PREFIX:h,ADD_EVENT_LISTENER_STR:s,REMOVE_EVENT_LISTENER_STR:i})});const ce=d(\"zoneTask\");function le(e,t,n,o){let r=null,s=null;n+=o;const i={};function a(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete i[n.handleId]:n.handleId&&(n.handleId[ce]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=z(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=f(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},a,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?i[n]=e:n&&(n[ce]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=z(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=i[r]:(s=r&&r[ce],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete i[r]:r&&(r[ce]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function ue(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:i}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=i+(e+s),a=i+(e+r);o[e]={},o[e][s]=t,o[e][r]=a}const a=e.EventTarget;return a&&a.prototype?(t.patchEventTarget(e,[a&&a.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{const t=\"set\",n=\"clear\";le(e,t,n,\"Timeout\"),le(e,t,n,\"Interval\"),le(e,t,n,\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{le(e,\"request\",\"cancel\",\"AnimationFrame\"),le(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),le(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)z(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{(function(e,t){t.patchEventPrototype(e,t)})(e,n),ue(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),O(\"MutationObserver\"),O(\"WebKitMutationObserver\"),O(\"IntersectionObserver\"),O(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ae(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const u=e.XMLHttpRequest;if(!u)return;const h=u.prototype;let p=h[a],g=h[c];if(!p){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;p=e[a],g=e[c]}}const _=\"readystatechange\",k=\"scheduled\";function m(e){const o=e.data,i=o.target;i[s]=!1,i[l]=!1;const u=i[r];p||(p=i[a],g=i[c]),u&&g.call(i,_,u);const h=i[r]=()=>{if(i.readyState===i.DONE)if(!o.aborted&&i[s]&&e.state===k){const n=i[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=i[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||e.state!==k||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==i[s]||(i[l]=!0)};return p.call(i,_,h),i[n]||(i[n]=e),w.apply(i,o.args),i[s]=!0,e}function y(){}function v(e){const t=e.data;return t.aborted=!0,Z.apply(t.target,t.args)}const b=z(h,\"open\",()=>function(e,t){return e[o]=0==t[2],e[i]=t[1],b.apply(e,t)}),T=d(\"fetchTaskAborting\"),E=d(\"fetchTaskScheduling\"),w=z(h,\"send\",()=>function(e,n){if(!0===t.current[E])return w.apply(e,n);if(e[o])return w.apply(e,n);{const t={target:e,url:e[i],isPeriodic:!1,args:n,aborted:!1},o=f(\"XMLHttpRequest.send\",y,t,m,v);e&&!0===e[l]&&!t.aborted&&o.state===k&&o.invoke()}}),Z=z(h,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[T])return Z.apply(e,o)})}(e);const n=d(\"xhrTask\"),o=d(\"xhrSync\"),r=d(\"xhrListener\"),s=d(\"xhrScheduled\"),i=d(\"xhrURL\"),l=d(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],i=t[s];if(i){if(!v(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,y(arguments,o+\".\"+s))};return I(t,e),t})(i)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){U(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[d(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[d(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[1,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/dist/example/runtime.359d5ee4682f20e936e9.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/dist/example/styles.51422a5c94b8290ff190.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:initial}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:initial;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:initial;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:initial;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:initial}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:initial}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:initial}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:initial}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:initial}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:initial}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:initial}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:initial}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:initial;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:initial}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:initial;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:initial;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:initial;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:initial;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:initial;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:initial;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:initial;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:initial;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:initial!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:initial!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:initial;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\n//import { AppComponent } from './app.component';\nimport { ProductComponent } from \"./component\";\n\n@NgModule({\n  declarations: [ProductComponent],\n  imports: [BrowserModule],\n  providers: [],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    constructor(ref: ApplicationRef) {\n        (<any>window).appRef = ref;\n        (<any>window).model = this.model;\n    }\n\n    getProductByPosition(position: number): Product {\n        return this.model.getProducts()[position];\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    getProductCount(): number {\n      console.log(\"getProductCount invoked\");\n        return this.getProducts().length;\n    }\n\n    getKey(index: number, product: Product) {\n      return product.id;\n  }\n\n    targetName: string = \"Kayak\";\n    counter: number = 1;\n\n    get nextProduct(): Product {\n      return this.model.getProducts().shift();\n  }\n\n  getProductPrice(index: number): number {\n    return Math.floor(this.getProduct(index).price);\n}\n\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/app/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n      public name?: string,\n      public category?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n      let p = this.products.shift();\n      this.products.push(new Product(p.id, p.name, p.category, p.price));\n  }\n\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/app/template.html",
    "content": "<ng-template #titleTemplate let-text=\"title\">\n  <h4 class=\"p-2 bg-success text-white\">{{text}}</h4>\n</ng-template>\n\n<ng-template [ngTemplateOutlet]=\"titleTemplate\"\n             [ngTemplateOutletContext]=\"{title: 'Header'}\">\n</ng-template>\n\n<div class=\"bg-info p-2 m-2 text-white\">\n  There are {{getProductCount()}} products.\n</div>\n\n<ng-template [ngTemplateOutlet]=\"titleTemplate\"\n             [ngTemplateOutletContext]=\"{title: 'Footer'}\">\n</ng-template>\n\n<div class=\"bg-info p-2 text-white\">\n  The rounded price is {{getProductPrice(1)}}\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 13/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncss-loader\nMIT\nCopyright JS Foundation and other contributors\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2020 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.51422a5c94b8290ff190.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime.359d5ee4682f20e936e9.js\" defer></script><script src=\"polyfills.bf99d438b005d57b2b31.js\" defer></script><script src=\"main.f78bdaa2683ef468e3b3.js\" defer></script></body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/dist/example/main.f78bdaa2683ef468e3b3.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(t,e,n){t.exports=n(\"zUnb\")},zUnb:function(t,e,n){\"use strict\";function r(t){return\"function\"==typeof t}n.r(e);let s=!1;const o={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else s&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");s=t},get useDeprecatedSynchronousErrorHandling(){return s}};function i(t){setTimeout(()=>{throw t},0)}const l={closed:!0,next(t){},error(t){if(o.useDeprecatedSynchronousErrorHandling)throw t;i(t)},complete(){}},u=(()=>Array.isArray||(t=>t&&\"number\"==typeof t.length))();function c(t){return null!==t&&\"object\"==typeof t}const a=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();let h=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:s,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(r(o)){s&&(this._unsubscribe=void 0);try{o.call(this)}catch(l){e=l instanceof a?d(l.errors):[l]}}if(u(i)){let t=-1,n=i.length;for(;++t<n;){const n=i[t];if(c(n))try{n.unsubscribe()}catch(l){e=e||[],l instanceof a?e=e.concat(d(l.errors)):e.push(l)}}}if(e)throw new a(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case\"function\":n=new t(e);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error(\"unrecognized teardown \"+e+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof t){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const s=this._subscriptions;return null===s?this._subscriptions=[n]:s.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}return t.EMPTY=function(t){return t.closed=!0,t}(new t),t})();function d(t){return t.reduce((t,e)=>t.concat(e instanceof a?e.errors:e),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!t){this.destination=l;break}if(\"object\"==typeof t){t instanceof p?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,t,e,n)}}[f](){return this}static create(t,e,n){const r=new p(t,e,n);return r.syncErrorThrowable=!1,r}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class _ extends p{constructor(t,e,n,s){let o;super(),this._parentSubscriber=t;let i=this;r(e)?o=e:e&&(o=e.next,n=e.error,s=e.complete,e!==l&&(i=Object.create(e),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=o,this._error=n,this._complete=s}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;o.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:n}=o;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):i(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;i(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);o.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),o.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(t,e,n){if(!o.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{e.call(this._context,n)}catch(r){return o.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=r,t.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const y=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function m(t){return t}let g=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:r}=this,s=function(t,e,n){if(t){if(t instanceof p)return t;if(t[f])return t[f]()}return t||e||n?new p(t,e,n):new p(l)}(t,e,n);if(s.add(r?r.call(s,this.source):this.source||o.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),o.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(t){try{return this._subscribe(t)}catch(e){o.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof p?n:null}return!0}(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=v(e))((e,n)=>{let r;r=this.subscribe(e=>{try{t(e)}catch(s){n(s),r&&r.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[y](){return this}pipe(...t){return 0===t.length?this:(0===(e=t).length?m:1===e.length?e[0]:function(t){return e.reduce((t,e)=>e(t),t)})(this);var e}toPromise(t){return new(t=v(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function v(t){if(t||(t=o.Promise||Promise),!t)throw new Error(\"no Promise impl found\");return t}const b=(()=>{function t(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return t.prototype=Object.create(Error.prototype),t})();class w extends h{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}class C extends p{constructor(t){super(t),this.destination=t}}let E=(()=>{class t extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(t){const e=new x(this,this);return e.operator=t,e}next(t){if(this.closed)throw new b;if(!this.isStopped){const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].next(t)}}error(t){if(this.closed)throw new b;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].error(t);this.observers.length=0}complete(){if(this.closed)throw new b;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let r=0;r<e;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new b;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new b;return this.hasError?(t.error(this.thrownError),h.EMPTY):this.isStopped?(t.complete(),h.EMPTY):(this.observers.push(t),new w(this,t))}asObservable(){const t=new g;return t.source=this,t}}return t.create=(t,e)=>new x(t,e),t})();class x extends E{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):h.EMPTY}}class k{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new T(t,this.project,this.thisArg))}}class T extends p{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}const S=t=>e=>{for(let n=0,r=t.length;n<r&&!e.closed;n++)e.next(t[n]);e.complete()};function I(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const A=I();const O=t=>{if(t&&\"function\"==typeof t[y])return o=t,t=>{const e=o[y]();if(\"function\"!=typeof e.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return e.subscribe(t)};if((e=t)&&\"number\"==typeof e.length&&\"function\"!=typeof e)return S(t);var e,n,r,s,o;if((n=t)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return s=t,t=>(s.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,i),t);if(t&&\"function\"==typeof t[A])return r=t,t=>{const e=r[A]();for(;;){let r;try{r=e.next()}catch(n){return t.error(n),t}if(r.done){t.complete();break}if(t.next(r.value),t.closed)break}return\"function\"==typeof e.return&&t.add(()=>{e.return&&e.return()}),t};{const e=c(t)?\"an invalid object\":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`)}};class D extends p{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class j extends p{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function H(t,e,n=Number.POSITIVE_INFINITY){return\"function\"==typeof e?r=>r.pipe(H((n,r)=>{return(s=t(n,r),s instanceof g?s:new g(O(s))).pipe(function(t,e){return function(e){return e.lift(new k(t,void 0))}}((t,s)=>e(n,t,r,s)));var s},n)):(\"number\"==typeof e&&(n=e),e=>e.lift(new N(t,n)))}class N{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new P(t,this.project,this.concurrent))}}class P extends j{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e)}_innerSub(t){const e=new D(this),n=this.destination;n.add(e);const r=function(t,e){if(!e.closed)return t instanceof g?t.subscribe(e):O(t)(e)}(t,e);r!==e&&n.add(r)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t){this.destination.next(t)}notifyComplete(){const t=this.buffer;this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function R(){return function(t){return t.lift(new M(t))}}class M{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const r=new F(t,n),s=e.subscribe(r);return r.closed||(r.connection=n.connect()),s}}class F extends p{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:n}=this,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new h,t.add(this.source.subscribe(new B(this.getSubject(),this))),t.closed&&(this._connection=null,t=h.EMPTY)),t}refCount(){return R()(this)}}const L=(()=>{const t=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class B extends C{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}function Z(){return new E}function z(t){return{toString:t}.toString()}const $=\"__parameters__\";function U(t,e,n){return z(()=>{const r=function(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}(e);function s(...t){if(this instanceof s)return r.apply(this,t),this;const e=new s(...t);return n.annotation=e,n;function n(t,n,r){const s=t.hasOwnProperty($)?t[$]:Object.defineProperty(t,$,{value:[]})[$];for(;s.length<=r;)s.push(null);return(s[r]=s[r]||[]).push(e),t}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s})}const W=U(\"Inject\",t=>({token:t})),q=U(\"Optional\"),Q=U(\"Self\"),G=U(\"SkipSelf\");function J(t){if(\"string\"==typeof t)return t;if(Array.isArray(t))return\"[\"+t.map(J).join(\", \")+\"]\";if(null==t)return\"\"+t;if(t.overriddenName)return\"\"+t.overriddenName;if(t.name)return\"\"+t.name;const e=t.toString();if(null==e)return\"\"+e;const n=e.indexOf(\"\\n\");return-1===n?e:e.substring(0,n)}function K(t,e){return null==t||\"\"===t?null===e?\"\":e:null==e||\"\"===e?t:t+\" \"+e}function Y(t){for(let e in t)if(t[e]===Y)return e;throw Error(\"Could not find renamed property on target object.\")}function X(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function tt(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function et(t){return nt(t,st)||nt(t,it)}function nt(t,e){return t.hasOwnProperty(e)?t[e]:null}function rt(t){return t&&(t.hasOwnProperty(ot)||t.hasOwnProperty(lt))?t[ot]:null}const st=Y({\"\\u0275prov\":Y}),ot=Y({\"\\u0275inj\":Y}),it=Y({ngInjectableDef:Y}),lt=Y({ngInjectorDef:Y});class ut{constructor(t,e){this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\\u0275prov=X({token:this,providedIn:e.providedIn||\"root\",factory:e.factory}))}toString(){return\"InjectionToken \"+this._desc}}var ct=function(t){return t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\",t}({});const at=\"undefined\"!=typeof globalThis&&globalThis,ht=\"undefined\"!=typeof window&&window,dt=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,ft=\"undefined\"!=typeof global&&global,pt=at||ft||ht||dt,_t=Y({__forward_ref__:Y});function yt(t){return t.__forward_ref__=yt,t.toString=function(){return J(this())},t}function mt(t){return\"function\"==typeof(e=t)&&e.hasOwnProperty(_t)&&e.__forward_ref__===yt?t():t;var e}function gt(t,e){t.forEach(t=>Array.isArray(t)?gt(t,e):e(t))}var vt=function(t){return t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\",t}({});const bt={},wt=[],Ct=Y({\"\\u0275cmp\":Y}),Et=Y({\"\\u0275dir\":Y}),xt=Y({\"\\u0275pipe\":Y}),kt=Y({\"\\u0275mod\":Y}),Tt=Y({\"\\u0275loc\":Y}),St=Y({\"\\u0275fac\":Y}),It=Y({__NG_ELEMENT_ID__:Y});let At=0;function Ot(t){return Pt(t)||function(t){return t[Et]||null}(t)}function Dt(t){return function(t){return t[xt]||null}(t)}const jt={};function Ht(t){const e={type:t.type,bootstrap:t.bootstrap||wt,declarations:t.declarations||wt,imports:t.imports||wt,exports:t.exports||wt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&z(()=>{jt[t.id]=t.type}),e}function Nt(t,e){if(null==t)return bt;const n={};for(const r in t)if(t.hasOwnProperty(r)){let s=t[r],o=s;Array.isArray(s)&&(o=s[1],s=s[0]),n[s]=r,e&&(e[s]=o)}return n}function Pt(t){return t[Ct]||null}function Rt(t,e){const n=t[kt]||null;if(!n&&!0===e)throw new Error(`Type ${J(t)} does not have '\\u0275mod' property.`);return n}function Mt(t){return\"function\"==typeof t?t.name||t.toString():\"object\"==typeof t&&null!=t&&\"function\"==typeof t.type?t.type.name||t.type.toString():function(t){return\"string\"==typeof t?t:null==t?\"\":\"\"+t}(t)}var Ft=function(t){return t[t.Default=0]=\"Default\",t[t.Host=1]=\"Host\",t[t.Self=2]=\"Self\",t[t.SkipSelf=4]=\"SkipSelf\",t[t.Optional=8]=\"Optional\",t}({});let Vt;function Lt(t){const e=Vt;return Vt=t,e}function Bt(t,e,n){const r=et(t);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Ft.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${J(t)}]`)}const Zt={},zt=/\\n/gm,$t=\"__source\",Ut=Y({provide:String,useValue:Y});let Wt=void 0;function qt(t){const e=Wt;return Wt=t,e}function Qt(t,e=Ft.Default){if(void 0===Wt)throw new Error(\"inject() must be called from an injection context\");return null===Wt?Bt(t,void 0,e):Wt.get(t,e&Ft.Optional?null:void 0,e)}function Gt(t,e=Ft.Default){return(Vt||Qt)(mt(t),e)}function Jt(t){const e=[];for(let n=0;n<t.length;n++){const r=mt(t[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let t=void 0,n=Ft.Default;for(let e=0;e<r.length;e++){const s=r[e];s instanceof q||\"Optional\"===s.ngMetadataName||s===q?n|=Ft.Optional:s instanceof G||\"SkipSelf\"===s.ngMetadataName||s===G?n|=Ft.SkipSelf:s instanceof Q||\"Self\"===s.ngMetadataName||s===Q?n|=Ft.Self:t=s instanceof W||s===W?s.token:s}e.push(Gt(t,n))}else e.push(Gt(r))}return e}let Kt=void 0;const Yt=20;function Xt(t){return Array.isArray(t)&&\"object\"==typeof t[1]}function te(t){return Array.isArray(t)&&!0===t[1]}function ee(t){return 0!=(8&t.flags)}function ne(t){return null!==t.template}function re(t){return!!t.listen}const se={createRenderer:(t,e)=>void 0!==Kt?Kt:\"undefined\"!=typeof document?document:void 0};function oe(t){for(;Array.isArray(t);)t=t[0];return t}function ie(t,e){return oe(e[t.index])}function le(t,e){const n=e[t];return Xt(n)?n:n[0]}function ue(t){const e=function(t){return t.__ngContext__||null}(t);return e?Array.isArray(e)?e:e.lView:null}function ce(t){return 128==(128&t[2])}function ae(t,e){return null==e?null:t[e]}function he(t){t[18]=0}function de(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const fe={lFrame:Oe(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function pe(){return fe.bindingsEnabled}function _e(){return fe.lFrame.lView}function ye(){return fe.lFrame.tView}function me(){let t=ge();for(;null!==t&&64===t.type;)t=t.parent;return t}function ge(){return fe.lFrame.currentTNode}function ve(t,e){const n=fe.lFrame;n.currentTNode=t,n.isParent=e}function be(){return fe.lFrame.isParent}function we(){return fe.isInCheckNoChangesMode}function Ce(t){fe.isInCheckNoChangesMode=t}function Ee(t,e){const n=fe.lFrame;n.bindingIndex=n.bindingRootIndex=t,xe(e)}function xe(t){fe.lFrame.currentDirectiveIndex=t}function ke(t){fe.lFrame.currentQueryIndex=t}function Te(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function Se(t,e,n){if(n&Ft.SkipSelf){let r=e,s=t;for(;r=r.parent,!(null!==r||n&Ft.Host||(r=Te(s),null===r)||(s=s[15],10&r.type)););if(null===r)return!1;e=r,t=s}const r=fe.lFrame=Ae();return r.currentTNode=e,r.lView=t,!0}function Ie(t){const e=Ae(),n=t[1];fe.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function Ae(){const t=fe.lFrame,e=null===t?null:t.child;return null===e?Oe(t):e}function Oe(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function De(){const t=fe.lFrame;return fe.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const je=De;function He(){const t=De();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Ne(t){fe.lFrame.selectedIndex=t}let Pe=!0,Re=!1;function Me(){return Re=!0,Pe}function Fe(t,e){return t.hasOwnProperty(St)?t[St]:null}class Ve extends Error{constructor(t,e){super(function(t,e){return`${t?`NG0${t}: `:\"\"}${e}`}(t,e)),this.code=t}}function Le(t,e){const n=e?\" in \"+e:\"\";throw new Ve(\"201\",`No provider for ${Mt(t)} found${n}`)}class Be{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function Ze(){const t=$e(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===bt)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}}function ze(t,e,n,r){const s=$e(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:bt,current:null}),o=s.current||(s.current={}),i=s.previous,l=this.declaredInputs[n],u=i[l];o[l]=new Be(u&&u.currentValue,e,i===bt),t[r]=e}function $e(t){return t.__ngSimpleChanges__||null}function Ue(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n<r;n++){const e=t.data[n].type.prototype,{ngAfterContentInit:r,ngAfterContentChecked:s,ngAfterViewInit:o,ngAfterViewChecked:i,ngOnDestroy:l}=e;r&&(t.contentHooks||(t.contentHooks=[])).push(-n,r),s&&((t.contentHooks||(t.contentHooks=[])).push(n,s),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,s)),o&&(t.viewHooks||(t.viewHooks=[])).push(-n,o),i&&((t.viewHooks||(t.viewHooks=[])).push(n,i),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,i)),null!=l&&(t.destroyHooks||(t.destroyHooks=[])).push(n,l)}}function We(t,e,n){Ge(t,e,3,n)}function qe(t,e,n,r){(3&t[2])===n&&Ge(t,e,n,r)}function Qe(t,e){let n=t[2];(3&n)===e&&(n&=2047,n+=1,t[2]=n)}function Ge(t,e,n,r){const s=null!=r?r:-1;let o=0;for(let i=void 0!==r?65535&t[18]:0;i<e.length;i++)if(\"number\"==typeof e[i+1]){if(o=e[i],null!=r&&o>=r)break}else e[i]<0&&(t[18]+=65536),(o<s||-1==s)&&(Je(t,n,e,i),t[18]=(4294901760&t[18])+i+2),i++}function Je(t,e,n,r){const s=n[r]<0,o=n[r+1],i=t[s?-n[r]:n[r]];s?t[2]>>11<t[18]>>16&&(3&t[2])===e&&(t[2]+=2048,o.call(i)):o.call(i)}const Ke=-1;class Ye{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}function Xe(t,e,n){const r=re(t);let s=0;for(;s<n.length;){const o=n[s];if(\"number\"==typeof o){if(0!==o)break;s++;const i=n[s++],l=n[s++],u=n[s++];r?t.setAttribute(e,l,u,i):e.setAttributeNS(i,l,u)}else{const i=o,l=n[++s];64===i.charCodeAt(0)?r&&t.setProperty(e,i,l):r?t.setAttribute(e,i,l):e.setAttribute(i,l),s++}}return s}function tn(t,e){if(null===e||0===e.length);else if(null===t||0===t.length)t=e.slice();else{let n=-1;for(let r=0;r<e.length;r++){const s=e[r];\"number\"==typeof s?n=s:0===n||en(t,n,s,null,-1===n||2===n?e[++r]:null)}}return t}function en(t,e,n,r,s){let o=0,i=t.length;if(-1===e)i=-1;else for(;o<t.length;){const n=t[o++];if(\"number\"==typeof n){if(n===e){i=-1;break}if(n>e){i=o-1;break}}}for(;o<t.length;){const e=t[o];if(\"number\"==typeof e)break;if(e===n){if(null===r)return void(null!==s&&(t[o+1]=s));if(r===t[o+1])return void(t[o+2]=s)}o++,null!==r&&o++,null!==s&&o++}-1!==i&&(t.splice(i,0,e),o=i+1),t.splice(o++,0,n),null!==r&&t.splice(o++,0,r),null!==s&&t.splice(o++,0,s)}function nn(t){return 32767&t}function rn(t,e){let n=t>>16,r=e;for(;n>0;)r=r[15],n--;return r}let sn=!0;function on(t){const e=sn;return sn=t,e}let ln=0;function un(t,e){const n=an(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,cn(r.data,t),cn(e,null),cn(r.blueprint,null));const s=hn(t,e),o=t.injectorIndex;if(s!==Ke){const t=nn(s),n=rn(s,e),r=n[1].data;for(let s=0;s<8;s++)e[o+s]=n[t+s]|r[t+s]}return e[o+8]=s,o}function cn(t,e){t.push(0,0,0,0,0,0,0,0,e)}function an(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function hn(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,s=e;for(;null!==s;){const t=s[1],e=t.type;if(r=2===e?t.declTNode:1===e?s[6]:null,null===r)return Ke;if(n++,s=s[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return Ke}function dn(t,e,n){!function(t,e,n){let r;\"string\"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(It)&&(r=n[It]),null==r&&(r=n[It]=ln++);const s=255&r,o=1<<s,i=64&s,l=32&s,u=e.data;128&s?i?l?u[t+7]|=o:u[t+6]|=o:l?u[t+5]|=o:u[t+4]|=o:i?l?u[t+3]|=o:u[t+2]|=o:l?u[t+1]|=o:u[t]|=o}(t,e,n)}function fn(t,e,n){if(n&Ft.Optional)return t;Le(e,\"NodeInjector\")}function pn(t,e,n,r){if(n&Ft.Optional&&void 0===r&&(r=null),0==(n&(Ft.Self|Ft.Host))){const s=t[9],o=Lt(void 0);try{return s?s.get(e,r,n&Ft.Optional):Bt(e,r,n&Ft.Optional)}finally{Lt(o)}}return fn(r,e,n)}const _n={};function yn(){return new wn(me(),_e())}function mn(t,e,n,r,s,o){const i=e[1],l=i.data[t+8],u=function(t,e,n,r,s){const o=t.providerIndexes,i=e.data,l=1048575&o,u=t.directiveStart,c=o>>20,a=s?l+c:t.directiveEnd;for(let h=r?l:l+c;h<a;h++){const t=i[h];if(h<u&&n===t||h>=u&&t.type===n)return h}if(s){const t=i[u];if(t&&ne(t)&&t.type===n)return u}return null}(l,i,n,null==r?function(t){return 2==(2&t.flags)}(l)&&sn:r!=i&&0!=(3&l.type),s&Ft.Host&&o===l);return null!==u?gn(e,i,u,l):_n}function gn(t,e,n,r){let s=t[n];const o=e.data;if(s instanceof Ye){const i=s;i.resolving&&function(t,e){throw new Ve(\"200\",\"Circular dependency in DI detected for \"+t)}(Mt(o[n]));const l=on(i.canSeeViewProviders);i.resolving=!0;const u=i.injectImpl?Lt(i.injectImpl):null;Se(t,r,Ft.Default);try{s=t[n]=i.factory(void 0,o,t,r),e.firstCreatePass&&n>=r.directiveStart&&function(t,e,n){const{ngOnChanges:r,ngOnInit:s,ngDoCheck:o}=e.type.prototype;if(r){const r=((i=e).type.prototype.ngOnChanges&&(i.setInput=ze),Ze);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,r)}var i;s&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,s),o&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,o))}(n,o[n],e)}finally{null!==u&&Lt(u),on(l),i.resolving=!1,je()}}return s}function vn(t,e,n){const r=64&t,s=32&t;let o;return o=128&t?r?s?n[e+7]:n[e+6]:s?n[e+5]:n[e+4]:r?s?n[e+3]:n[e+2]:s?n[e+1]:n[e],!!(o&1<<t)}function bn(t,e){return!(t&Ft.Self||t&Ft.Host&&e)}class wn{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return function(t,e,n,r=Ft.Default,s){if(null!==t){const o=function(t){if(\"string\"==typeof t)return t.charCodeAt(0)||0;const e=t.hasOwnProperty(It)?t[It]:void 0;return\"number\"==typeof e?e>=0?255&e:yn:e}(n);if(\"function\"==typeof o){if(!Se(e,t,r))return r&Ft.Host?fn(s,n,r):pn(e,n,r,s);try{const t=o();if(null!=t||r&Ft.Optional)return t;Le(n)}finally{je()}}else if(\"number\"==typeof o){let s=null,i=an(t,e),l=Ke,u=r&Ft.Host?e[16][6]:null;for((-1===i||r&Ft.SkipSelf)&&(l=-1===i?hn(t,e):e[i+8],l!==Ke&&bn(r,!1)?(s=e[1],i=nn(l),e=rn(l,e)):i=-1);-1!==i;){const t=e[1];if(vn(o,i,t.data)){const t=mn(i,e,n,s,r,u);if(t!==_n)return t}l=e[i+8],l!==Ke&&bn(r,e[1].data[i+8]===u)&&vn(o,i,e)?(s=t,i=nn(l),e=rn(l,e)):i=-1}}}return pn(e,n,r,s)}(this._tNode,this._lView,t,void 0,e)}}function Cn(t){return t.ngDebugContext}function En(t){return t.ngOriginalError}function xn(t,...e){t.error(...e)}class kn{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),r=function(t){return t.ngErrorLogger||xn}(t);r(this._console,\"ERROR\",t),e&&r(this._console,\"ORIGINAL ERROR\",e),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(t){return t?Cn(t)?Cn(t):this._findContext(En(t)):null}_findOriginalError(t){let e=En(t);for(;e&&En(e);)e=En(e);return e}}function Tn(t,e){t.__ngContext__=e}const Sn=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(pt))();function In(t){return t instanceof Function?t():t}var An=function(t){return t[t.Important=1]=\"Important\",t[t.DashCase=2]=\"DashCase\",t}({});function On(t,e){return(void 0)(t,e)}function Dn(t){const e=t[3];return te(e)?e[3]:e}function jn(t){return Nn(t[13])}function Hn(t){return Nn(t[4])}function Nn(t){for(;null!==t&&!te(t);)t=t[4];return t}function Pn(t,e,n,r,s){if(null!=r){let o,i=!1;te(r)?o=r:Xt(r)&&(i=!0,r=r[0]);const l=oe(r);0===t&&null!==n?null==s?Vn(e,n,l):Fn(e,n,l,s||null,!0):1===t&&null!==n?Fn(e,n,l,s||null,!0):2===t?function(t,e,n){const r=function(t,e){return re(t)?t.parentNode(e):e.parentNode}(t,e);r&&function(t,e,n,r){re(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,l,i):3===t&&e.destroyNode(l),null!=o&&function(t,e,n,r,s){const o=n[7];o!==oe(n)&&Pn(e,t,r,o,s);for(let i=10;i<n.length;i++){const s=n[i];zn(s[1],s,t,e,r,o)}}(e,t,o,n,s)}}function Rn(t,e,n){return re(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Mn(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r<n.length;r+=2){const t=e[n[r]];if(!(t instanceof Ye)){const e=n[r+1];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)e[n+1].call(t[e[n]]);else e.call(t)}}}(t,e),function(t,e){const n=t.cleanup;if(null!==n){const t=e[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const s=n[r+1],o=\"function\"==typeof s?s(e):oe(e[s]),i=t[n[r+2]],l=n[r+3];\"boolean\"==typeof l?o.removeEventListener(n[r],i,l):l>=0?t[l]():t[-l].unsubscribe(),r+=2}else n[r].call(t[n[r+1]]);e[7]=null}}(t,e),1===e[1].type&&re(e[11])&&e[11].destroy();const n=e[17];if(null!==n&&te(e[3])){n!==e[3]&&function(t,e){const n=t[9],r=n.indexOf(e),s=e[3];1024&e[2]&&(e[2]&=-1025,de(s,-1)),n.splice(r,1)}(n,e);const r=e[19];null!==r&&r.detachView(t)}}}function Fn(t,e,n,r,s){re(t)?t.insertBefore(e,n,r,s):e.insertBefore(n,r,s)}function Vn(t,e,n){re(t)?t.appendChild(e,n):e.appendChild(n)}function Ln(t,e,n,r,s){null!==r?Fn(t,e,n,r,s):Vn(t,e,n)}function Bn(t,e,n,r){const s=function(t,e,n){return function(t,e,n){let r=e;for(;null!==r&&40&r.type;)r=(e=r).parent;if(null===r)return n[0];if(2&r.flags){const e=t.data[r.directiveStart].encapsulation;if(e===vt.None||e===vt.Emulated)return null}return ie(r,n)}(t,e.parent,n)}(t,r,e),o=e[11],i=function(t,e,n){return function(t,e,n){return 40&t.type?ie(t,n):null}(t,0,n)}(r.parent||e[6],0,e);if(null!=s)if(Array.isArray(n))for(let l=0;l<n.length;l++)Ln(o,s,n[l],i,!1);else Ln(o,s,n,i,!1)}function Zn(t,e,n,r,s,o,i){for(;null!=n;){const l=r[n.index],u=n.type;if(i&&0===e&&(l&&Tn(oe(l),r),n.flags|=4),64!=(64&n.flags))if(8&u)Zn(t,e,n.child,r,s,o,!1),Pn(e,t,s,l,o);else if(32&u){const i=On(n,r);let u;for(;u=i();)Pn(e,t,s,u,o);Pn(e,t,s,l,o)}else 16&u?$n(t,e,r,n,s,o):Pn(e,t,s,l,o);n=i?n.projectionNext:n.next}}function zn(t,e,n,r,s,o){Zn(n,r,t.firstChild,e,s,o,!1)}function $n(t,e,n,r,s,o){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)Pn(e,t,s,l[u],o);else Zn(t,e,l,i[3],s,o,!0)}function Un(t,e,n){re(t)?t.setAttribute(e,\"style\",n):e.style.cssText=n}function Wn(t,e,n){re(t)?\"\"===n?t.removeAttribute(e,\"class\"):t.setAttribute(e,\"class\",n):e.className=n}function qn(t,e,n){let r=t.length;for(;;){const s=t.indexOf(e,n);if(-1===s)return s;if(0===s||t.charCodeAt(s-1)<=32){const n=e.length;if(s+n===r||t.charCodeAt(s+n)<=32)return s}n=s+1}}const Qn=\"ng-template\";function Gn(t,e,n){let r=0;for(;r<t.length;){let s=t[r++];if(n&&\"class\"===s){if(s=t[r],-1!==qn(s.toLowerCase(),e,0))return!0}else if(1===s){for(;r<t.length&&\"string\"==typeof(s=t[r++]);)if(s.toLowerCase()===e)return!0;return!1}}return!1}function Jn(t){return 4===t.type&&t.value!==Qn}function Kn(t,e,n){return e===(4!==t.type||n?t.value:Qn)}function Yn(t,e,n){let r=4;const s=t.attrs||[],o=function(t){for(let n=0;n<t.length;n++)if(3===(e=t[n])||4===e||6===e)return n;var e;return t.length}(s);let i=!1;for(let l=0;l<e.length;l++){const u=e[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!Kn(t,u,n)||\"\"===u&&1===e.length){if(Xn(r))return!1;i=!0}}else{const c=8&r?u:e[++l];if(8&r&&null!==t.attrs){if(!Gn(t.attrs,c,n)){if(Xn(r))return!1;i=!0}continue}const a=tr(8&r?\"class\":u,s,Jn(t),n);if(-1===a){if(Xn(r))return!1;i=!0;continue}if(\"\"!==c){let t;t=a>o?\"\":s[a+1].toLowerCase();const e=8&r?t:null;if(e&&-1!==qn(e,c,0)||2&r&&c!==t){if(Xn(r))return!1;i=!0}}}}else{if(!i&&!Xn(r)&&!Xn(u))return!1;if(i&&Xn(u))continue;i=!1,r=u|1&r}}return Xn(r)||i}function Xn(t){return 0==(1&t)}function tr(t,e,n,r){if(null===e)return-1;let s=0;if(r||!n){let n=!1;for(;s<e.length;){const r=e[s];if(r===t)return s;if(3===r||6===r)n=!0;else{if(1===r||2===r){let t=e[++s];for(;\"string\"==typeof t;)t=e[++s];continue}if(4===r)break;if(0===r){s+=4;continue}}s+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){const r=t[n];if(\"number\"==typeof r)return-1;if(r===e)return n;n++}return-1}(e,t)}function er(t,e,n=!1){for(let r=0;r<e.length;r++)if(Yn(t,e[r],n))return!0;return!1}function nr(t,e){return t?\":not(\"+e.trim()+\")\":e}function rr(t){let e=t[0],n=1,r=2,s=\"\",o=!1;for(;n<t.length;){let i=t[n];if(\"string\"==typeof i)if(2&r){const e=t[++n];s+=\"[\"+i+(e.length>0?'=\"'+e+'\"':\"\")+\"]\"}else 8&r?s+=\".\"+i:4&r&&(s+=\" \"+i);else\"\"===s||Xn(i)||(e+=nr(o,s),s=\"\"),r=i,o=o||!Xn(r);n++}return\"\"!==s&&(e+=nr(o,s)),e}const sr={};function or(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const s=n[r],o=n[r+1];if(-1!==o){const n=t.data[o];ke(s),n.contentQueries(2,e[o],o)}}}function ir(t,e,n,r,s,o,i,l,u,c){const a=e.blueprint.slice();return a[0]=s,a[2]=140|r,he(a),a[3]=a[15]=t,a[8]=n,a[10]=i||t&&t[10],a[11]=l||t&&t[11],a[12]=u||t&&t[12]||null,a[9]=c||t&&t[9]||null,a[6]=o,a[16]=2==e.type?t[16]:a,a}function lr(t,e,n,r,s){let o=t.data[e];if(null===o)o=function(t,e,n,r,s){const o=ge(),i=be(),l=t.data[e]=function(t,e,n,r,s,o){return{type:n,index:r,insertBeforeIndex:null,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:s,attrs:o,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,i?o:o&&o.parent,n,e,r,s);return null===t.firstChild&&(t.firstChild=l),null!==o&&(i?null==o.child&&null!==l.parent&&(o.child=l):null===o.next&&(o.next=l)),l}(t,e,n,r,s),fe.lFrame.inI18n&&(o.flags|=64);else if(64&o.type){o.type=n,o.value=r,o.attrs=s;const t=function(){const t=fe.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}();o.injectorIndex=null===t?-1:t.injectorIndex}return ve(o,!0),o}function ur(t,e,n,r){if(0===n)return-1;const s=e.length;for(let o=0;o<n;o++)e.push(r),t.blueprint.push(r),t.data.push(null);return s}function cr(t,e,n){Ie(e);try{const r=t.viewQuery;null!==r&&Dr(1,r,n);const s=t.template;null!==s&&dr(t,e,s,1,n),t.firstCreatePass&&(t.firstCreatePass=!1),t.staticContentQueries&&or(t,e),t.staticViewQueries&&Dr(2,t.viewQuery,n);const o=t.components;null!==o&&function(t,e){for(let n=0;n<e.length;n++)Sr(t,e[n])}(e,o)}catch(r){throw t.firstCreatePass&&(t.incompleteFirstPass=!0),r}finally{e[2]&=-5,He()}}function ar(t,e,n,r){const s=e[2];if(256==(256&s))return;Ie(e);const o=we();try{he(e),fe.lFrame.bindingIndex=t.bindingStartIndex,null!==n&&dr(t,e,n,2,r);const i=3==(3&s);if(!o)if(i){const n=t.preOrderCheckHooks;null!==n&&We(e,n,null)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,null),Qe(e,0)}if(function(t){for(let e=jn(t);null!==e;e=Hn(e)){if(!e[2])continue;const t=e[9];for(let e=0;e<t.length;e++){const n=t[e],r=n[3];0==(1024&n[2])&&de(r,1),n[2]|=1024}}}(e),function(t){for(let e=jn(t);null!==e;e=Hn(e))for(let t=10;t<e.length;t++){const n=e[t],r=n[1];ce(n)&&ar(r,n,r.template,n[8])}}(e),null!==t.contentQueries&&or(t,e),!o)if(i){const n=t.contentCheckHooks;null!==n&&We(e,n)}else{const n=t.contentHooks;null!==n&&qe(e,n,1),Qe(e,1)}!function(t,e){const n=t.hostBindingOpCodes;if(null!==n)try{for(let t=0;t<n.length;t++){const r=n[t];if(r<0)Ne(~r);else{const s=r,o=n[++t],i=n[++t];Ee(o,s),i(2,e[s])}}}finally{Ne(-1)}}(t,e);const l=t.components;null!==l&&function(t,e){for(let n=0;n<e.length;n++)kr(t,e[n])}(e,l);const u=t.viewQuery;if(null!==u&&Dr(2,u,r),!o)if(i){const n=t.viewCheckHooks;null!==n&&We(e,n)}else{const n=t.viewHooks;null!==n&&qe(e,n,2),Qe(e,2)}!0===t.firstUpdatePass&&(t.firstUpdatePass=!1),o||(e[2]&=-73),1024&e[2]&&(e[2]&=-1025,de(e[3],-1))}finally{He()}}function hr(t,e,n,r){const s=e[10],o=!we(),i=4==(4&e[2]);try{o&&!i&&s.begin&&s.begin(),i&&cr(t,e,r),ar(t,e,n,r)}finally{o&&!i&&s.end&&s.end()}}function dr(t,e,n,r,s){const o=fe.lFrame.selectedIndex;try{Ne(-1),2&r&&e.length>Yt&&function(t,e,n,r){if(!r)if(3==(3&e[2])){const n=t.preOrderCheckHooks;null!==n&&We(e,n,20)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,20)}Ne(20)}(t,e,0,we()),n(r,s)}finally{Ne(o)}}function fr(t){const e=t.tView;return null===e||e.incompleteFirstPass?t.tView=pr(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts):e}function pr(t,e,n,r,s,o,i,l,u,c){const a=Yt+r,h=a+s,d=function(t,e){const n=[];for(let r=0;r<e;r++)n.push(r<t?null:sr);return n}(a,h),f=\"function\"==typeof c?c():c;return d[1]={type:t,blueprint:d,template:n,queries:null,viewQuery:l,declTNode:e,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof o?o():o,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:f,incompleteFirstPass:!1}}function _r(t,e,n){for(let r in t)if(t.hasOwnProperty(r)){const s=t[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(e,s):n[r]=[e,s]}return n}function yr(t,e,n,r,s,o){const i=o.hostBindings;if(i){let n=t.hostBindingOpCodes;null===n&&(n=t.hostBindingOpCodes=[]);const o=~e.index;(function(t){let e=t.length;for(;e>0;){const n=t[--e];if(\"number\"==typeof n&&n<0)return n}return 0})(n)!=o&&n.push(o),n.push(r,s,i)}}function mr(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function gr(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function vr(t,e,n){if(n){if(e.exportAs)for(let r=0;r<e.exportAs.length;r++)n[e.exportAs[r]]=t;ne(e)&&(n[\"\"]=t)}}function br(t,e,n){t.flags|=1,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function wr(t,e,n,r,s){t.data[r]=s;const o=s.factory||(s.factory=Fe(s.type)),i=new Ye(o,ne(s),null);t.blueprint[r]=i,n[r]=i,yr(t,e,0,r,ur(t,n,s.hostVars,sr),s)}function Cr(t,e,n){const r=ie(e,t),s=fr(n),o=t[10],i=Ir(t,ir(t,s,null,n.onPush?64:16,r,e,o,o.createRenderer(r,n),null,null));t[e.index]=i}function Er(t,e,n,r,s,o){const i=o[e];if(null!==i){const t=r.setInput;for(let e=0;e<i.length;){const s=i[e++],o=i[e++],l=i[e++];null!==t?r.setInput(n,l,s,o):n[o]=l}}}function xr(t,e){let n=null,r=0;for(;r<e.length;){const s=e[r];if(0!==s)if(5!==s){if(\"number\"==typeof s)break;t.hasOwnProperty(s)&&(null===n&&(n=[]),n.push(s,t[s],e[r+1])),r+=2}else r+=2;else r+=4}return n}function kr(t,e){const n=le(e,t);if(ce(n)){const t=n[1];80&n[2]?ar(t,n,t.template,n[8]):n[5]>0&&Tr(n)}}function Tr(t){for(let n=jn(t);null!==n;n=Hn(n))for(let t=10;t<n.length;t++){const e=n[t];if(1024&e[2]){const t=e[1];ar(t,e,t.template,e[8])}else e[5]>0&&Tr(e)}const e=t[1].components;if(null!==e)for(let n=0;n<e.length;n++){const r=le(e[n],t);ce(r)&&r[5]>0&&Tr(r)}}function Sr(t,e){const n=le(e,t),r=n[1];!function(t,e){for(let n=e.length;n<t.blueprint.length;n++)e.push(t.blueprint[n])}(r,n),cr(r,n,n[8])}function Ir(t,e){return t[13]?t[14][4]=e:t[13]=e,t[14]=e,e}function Ar(t,e,n){const r=e[10];r.begin&&r.begin();try{ar(t,e,t.template,n)}catch(s){throw function(t,e){const n=t[9],r=n?n.get(kn,null):null;r&&r.handleError(e)}(e,s),s}finally{r.end&&r.end()}}function Or(t){!function(t){for(let e=0;e<t.components.length;e++){const n=t.components[e],r=ue(n),s=r[1];hr(s,r,s.template,n)}}(t[8])}function Dr(t,e,n){ke(0),e(t,n)}const jr=(()=>Promise.resolve(null))();function Hr(t,e,n){let r=n?t.styles:null,s=n?t.classes:null,o=0;if(null!==e)for(let i=0;i<e.length;i++){const t=e[i];\"number\"==typeof t?o=t:1==o?s=K(s,t):2==o&&(r=K(r,t+\": \"+e[++i]+\";\"))}n?t.styles=r:t.stylesWithoutHost=r,n?t.classes=s:t.classesWithoutHost=s}const Nr=new ut(\"INJECTOR\",-1);class Pr{get(t,e=Zt){if(e===Zt){const e=new Error(`NullInjectorError: No provider for ${J(t)}!`);throw e.name=\"NullInjectorError\",e}return e}}const Rr=new ut(\"Set Injector scope.\"),Mr={},Fr={},Vr=[];let Lr=void 0;function Br(){return void 0===Lr&&(Lr=new Pr),Lr}function Zr(t,e=null,n=null,r){return new zr(t,n,e||Br(),r)}class zr{constructor(t,e,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];e&&gt(e,n=>this.processProvider(n,t,e)),gt([t],t=>this.processInjectorType(t,[],s)),this.records.set(Nr,Ur(void 0,this));const o=this.records.get(Rr);this.scope=null!=o?o.value:null,this.source=r||(\"object\"==typeof t?null:J(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Zt,n=Ft.Default){this.assertNotDestroyed();const r=qt(this);try{if(!(n&Ft.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=(\"function\"==typeof(s=t)||\"object\"==typeof s&&s instanceof ut)&&et(t);e=n&&this.injectableDefInScope(n)?Ur($r(t),Mr):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(n&Ft.Self?Br():this.parent).get(t,e=n&Ft.Optional&&e===Zt?null:e)}catch(o){if(\"NullInjectorError\"===o.name){if((o.ngTempTokenPath=o.ngTempTokenPath||[]).unshift(J(t)),r)throw o;return function(t,e,n,r){const s=t.ngTempTokenPath;throw e[$t]&&s.unshift(e[$t]),t.message=function(t,e,n,r=null){t=t&&\"\\n\"===t.charAt(0)&&\"\\u0275\"==t.charAt(1)?t.substr(2):t;let s=J(e);if(Array.isArray(e))s=e.map(J).join(\" -> \");else if(\"object\"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];t.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):J(r)))}s=`{${t.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${s}]: ${t.replace(zt,\"\\n  \")}`}(\"\\n\"+t.message,s,n,r),t.ngTokenPath=s,t.ngTempTokenPath=null,t}(o,t,\"R3InjectorError\",this.source)}throw o}finally{qt(r)}var s}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((e,n)=>t.push(J(n))),`R3Injector[${t.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(t,e,n){if(!(t=mt(t)))return!1;let r=rt(t);const s=null==r&&t.ngModule||void 0,o=void 0===s?t:s,i=-1!==n.indexOf(o);if(void 0!==s&&(r=rt(s)),null==r)return!1;if(null!=r.imports&&!i){let t;n.push(o);try{gt(r.imports,r=>{this.processInjectorType(r,e,n)&&(void 0===t&&(t=[]),t.push(r))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:r}=t[e];gt(r,t=>this.processProvider(t,n,r||Vr))}}this.injectorDefTypes.add(o),this.records.set(o,Ur(r.factory,Mr));const l=r.providers;if(null!=l&&!i){const e=t;gt(l,t=>this.processProvider(t,e,l))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,n){let r=qr(t=mt(t))?t:mt(t&&t.provide);const s=function(t,e,n){return Wr(t)?Ur(void 0,t.useValue):Ur(function(t,e,n){let r=void 0;if(qr(t)){const e=mt(t);return Fe(e)||$r(e)}if(Wr(t))r=()=>mt(t.useValue);else if((s=t)&&s.useFactory)r=()=>t.useFactory(...Jt(t.deps||[]));else if(function(t){return!(!t||!t.useExisting)}(t))r=()=>Gt(mt(t.useExisting));else{const e=mt(t&&(t.useClass||t.provide));if(!function(t){return!!t.deps}(t))return Fe(e)||$r(e);r=()=>new e(...Jt(t.deps))}var s;return r}(t),Mr)}(t);if(qr(t)||!0!==t.multi)this.records.get(r);else{let e=this.records.get(r);e||(e=Ur(void 0,Mr,!0),e.factory=()=>Jt(e.multi),this.records.set(r,e)),r=t,e.multi.push(t)}this.records.set(r,s)}hydrate(t,e){var n;return e.value===Mr&&(e.value=Fr,e.value=e.factory()),\"object\"==typeof e.value&&e.value&&null!==(n=e.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&(\"string\"==typeof t.providedIn?\"any\"===t.providedIn||t.providedIn===this.scope:this.injectorDefTypes.has(t.providedIn))}}function $r(t){const e=et(t),n=null!==e?e.factory:Fe(t);if(null!==n)return n;const r=rt(t);if(null!==r)return r.factory;if(t instanceof ut)throw new Error(`Token ${J(t)} is missing a \\u0275prov definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=function(t,e){const n=[];for(let r=0;r<t;r++)n.push(\"?\");return n}(e);throw new Error(`Can't resolve all parameters for ${J(t)}: (${n.join(\", \")}).`)}const n=function(t){const e=t&&(t[st]||t[it]);if(e){const n=function(t){if(t.hasOwnProperty(\"name\"))return t.name;const e=(\"\"+t).match(/^function\\s*([^\\s(]+)/);return null===e?\"\":e[1]}(t);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\nThis will become an error in a future version of Angular. Please add @Injectable() to the \"${n}\" class.`),e}return null}(t);return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error(\"unreachable\")}function Ur(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Wr(t){return null!==t&&\"object\"==typeof t&&Ut in t}function qr(t){return\"function\"==typeof t}const Qr=function(t,e,n){return function(t,e=null,n=null,r){const s=Zr(t,e,n,r);return s._resolveInjectorDefTypes(),s}({name:n},e,t,n)};let Gr=(()=>{class t{static create(t,e){return Array.isArray(t)?Qr(t,e,\"\"):Qr(t.providers,t.parent,t.name||\"\")}}return t.THROW_IF_NOT_FOUND=Zt,t.NULL=new Pr,t.\\u0275prov=X({token:t,providedIn:\"any\",factory:()=>Gt(Nr)}),t.__NG_ELEMENT_ID__=-1,t})();function Jr(t,e){Ue(ue(t)[1],me())}let Kr=null;function Yr(){if(!Kr){const t=pt.Symbol;if(t&&t.iterator)Kr=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Kr=n)}}}return Kr}function Xr(t){return!!ts(t)&&(Array.isArray(t)||!(t instanceof Map)&&Yr()in t)}function ts(t){return null!==t&&(\"function\"==typeof t||\"object\"==typeof t)}function es(t,e,n,r,s){const o=s?\"class\":\"style\";!function(t,e,n,r,s){for(let o=0;o<n.length;){const i=n[o++],l=n[o++],u=e[i],c=t.data[i];null!==c.setInput?c.setInput(u,s,r,l):u[l]=s}}(t,n,e.inputs[o],o,r)}function ns(t,e,n,r){const s=_e(),o=ye(),i=Yt+t,l=s[11],u=s[i]=Rn(l,e,fe.lFrame.currentNamespace),c=o.firstCreatePass?function(t,e,n,r,s,o,i){const l=e.consts,u=lr(e,t,2,s,ae(l,o));return function(t,e,n,r){let s=!1;if(pe()){const o=function(t,e,n){const r=t.directiveRegistry;let s=null;if(r)for(let o=0;o<r.length;o++){const i=r[o];er(n,i.selectors,!1)&&(s||(s=[]),dn(un(n,e),t,i.type),ne(i)?(gr(t,n),s.unshift(i)):s.push(i))}return s}(t,e,n),i=null===r?null:{\"\":-1};if(null!==o){s=!0,br(n,t.data.length,o.length);for(let t=0;t<o.length;t++){const e=o[t];e.providersResolver&&e.providersResolver(e)}let r=!1,l=!1,u=ur(t,e,o.length,null);for(let s=0;s<o.length;s++){const c=o[s];n.mergedAttrs=tn(n.mergedAttrs,c.hostAttrs),wr(t,n,e,u,c),vr(u,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128);const a=c.type.prototype;!r&&(a.ngOnChanges||a.ngOnInit||a.ngDoCheck)&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n.index),r=!0),l||!a.ngOnChanges&&!a.ngDoCheck||((t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n.index),l=!0),u++}!function(t,e){const n=e.directiveEnd,r=t.data,s=e.attrs,o=[];let i=null,l=null;for(let u=e.directiveStart;u<n;u++){const t=r[u],n=t.inputs,c=null===s||Jn(e)?null:xr(n,s);o.push(c),i=_r(n,u,i),l=_r(t.outputs,u,l)}null!==i&&(i.hasOwnProperty(\"class\")&&(e.flags|=16),i.hasOwnProperty(\"style\")&&(e.flags|=32)),e.initialInputs=o,e.inputs=i,e.outputs=l}(t,n)}i&&function(t,e,n){if(e){const r=t.localNames=[];for(let t=0;t<e.length;t+=2){const s=n[e[t+1]];if(null==s)throw new Ve(\"301\",`Export of name '${e[t+1]}' not found!`);r.push(e[t],s)}}}(n,r,i)}n.mergedAttrs=tn(n.mergedAttrs,n.attrs)}(e,n,u,ae(l,i)),null!==u.attrs&&Hr(u,u.attrs,!1),null!==u.mergedAttrs&&Hr(u,u.mergedAttrs,!0),null!==e.queries&&e.queries.elementStart(e,u),u}(i,o,s,0,e,n,r):o.data[i];ve(c,!0);const a=c.mergedAttrs;null!==a&&Xe(l,u,a);const h=c.classes;null!==h&&Wn(l,u,h);const d=c.styles;null!==d&&Un(l,u,d),64!=(64&c.flags)&&Bn(o,s,u,c),0===fe.lFrame.elementDepthCount&&Tn(u,s),fe.lFrame.elementDepthCount++,function(t){return 1==(1&t.flags)}(c)&&(function(t,e,n){pe()&&(function(t,e,n,r){const s=n.directiveStart,o=n.directiveEnd;t.firstCreatePass||un(n,e),Tn(r,e);const i=n.initialInputs;for(let l=s;l<o;l++){const r=t.data[l],o=ne(r);o&&Cr(e,n,r);const u=gn(e,t,l,n);Tn(u,e),null!==i&&Er(0,l-s,u,r,0,i),o&&(le(n.index,e)[8]=u)}}(t,e,n,ie(n,e)),128==(128&n.flags)&&function(t,e,n){const r=n.directiveStart,s=n.directiveEnd,o=n.index,i=fe.lFrame.currentDirectiveIndex;try{Ne(o);for(let n=r;n<s;n++){const r=t.data[n],s=e[n];xe(n),null===r.hostBindings&&0===r.hostVars&&null===r.hostAttrs||mr(r,s)}}finally{Ne(-1),xe(i)}}(t,e,n))}(o,s,c),function(t,e,n){if(ee(e)){const r=e.directiveEnd;for(let s=e.directiveStart;s<r;s++){const e=t.data[s];e.contentQueries&&e.contentQueries(1,n[s],s)}}}(o,c,s)),null!==r&&function(t,e,n=ie){const r=e.localNames;if(null!==r){let s=e.index+1;for(let o=0;o<r.length;o+=2){const i=r[o+1],l=-1===i?n(e,t):t[i];t[s++]=l}}}(s,c)}function rs(t){return!!t&&\"function\"==typeof t.then}const ss=void 0;var os=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],ss],[[\"AM\",\"PM\"],ss,ss],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],ss,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],ss,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",ss,\"{1} 'at' {0}\",ss],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},\"ltr\",function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===e&&0===n?1:5}];let is={};function ls(t){return t in is||(is[t]=pt.ng&&pt.ng.common&&pt.ng.common.locales&&pt.ng.common.locales[t]),is[t]}var us=function(t){return t[t.LocaleId=0]=\"LocaleId\",t[t.DayPeriodsFormat=1]=\"DayPeriodsFormat\",t[t.DayPeriodsStandalone=2]=\"DayPeriodsStandalone\",t[t.DaysFormat=3]=\"DaysFormat\",t[t.DaysStandalone=4]=\"DaysStandalone\",t[t.MonthsFormat=5]=\"MonthsFormat\",t[t.MonthsStandalone=6]=\"MonthsStandalone\",t[t.Eras=7]=\"Eras\",t[t.FirstDayOfWeek=8]=\"FirstDayOfWeek\",t[t.WeekendRange=9]=\"WeekendRange\",t[t.DateFormat=10]=\"DateFormat\",t[t.TimeFormat=11]=\"TimeFormat\",t[t.DateTimeFormat=12]=\"DateTimeFormat\",t[t.NumberSymbols=13]=\"NumberSymbols\",t[t.NumberFormats=14]=\"NumberFormats\",t[t.CurrencyCode=15]=\"CurrencyCode\",t[t.CurrencySymbol=16]=\"CurrencySymbol\",t[t.CurrencyName=17]=\"CurrencyName\",t[t.Currencies=18]=\"Currencies\",t[t.Directionality=19]=\"Directionality\",t[t.PluralCase=20]=\"PluralCase\",t[t.ExtraData=21]=\"ExtraData\",t}({});const cs=\"en-US\";let as=cs;function hs(t){var e,n;n=\"Expected localeId to be defined\",null==(e=t)&&function(t,e,n,r){throw new Error(\"ASSERTION ERROR: \"+t+` [Expected=> null != ${e} <=Actual]`)}(n,e),\"string\"==typeof t&&(as=t.toLowerCase().replace(/_/g,\"-\"))}class ds{}class fs{resolveComponentFactory(t){throw function(t){const e=Error(`No component factory found for ${J(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(t)}}let ps=(()=>{class t{}return t.NULL=new fs,t})();function _s(...t){}function ys(t,e){return new gs(ie(t,e))}const ms=function(){return ys(me(),_e())};let gs=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=ms,t})();class vs{}let bs=(()=>{class t{}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>null}),t})();class ws{constructor(t){this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}}const Cs=new ws(\"11.0.2\");class Es{constructor(){}supports(t){return Xr(t)}create(t){return new ks(t)}}const xs=(t,e)=>e;class ks{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||xs}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,r=0,s=null;for(;e||n;){const o=!n||e&&e.currentIndex<As(n,r,s)?e:n,i=As(o,r,s),l=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(e=e._next,null==o.previousIndex)r++;else{s||(s=[]);const t=i-r,e=l-r;if(t!=e){for(let n=0;n<t;n++){const r=n<s.length?s[n]:s[n]=0,o=r+n;e<=o&&o<t&&(s[n]=r+1)}s[o.previousIndex]=e-t}}i!==l&&t(o,i,l)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!Xr(t))throw new Error(`Error trying to diff '${J(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,r,s=this._itHead,o=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],r=this._trackByFn(e,n),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,n,r,e)),Object.is(s.item,n)||this._addIdentityChange(s,n)):(s=this._mismatch(s,n,r,e),o=!0),s=s._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[Yr()]();let r;for(;!(r=n.next()).done;)e(r.value)}}(t,t=>{r=this._trackByFn(e,t),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,t,r,e)),Object.is(s.item,t)||this._addIdentityChange(s,t)):(s=this._mismatch(s,t,r,e),o=!0),s=s._next,e++}),this.length=e;return this._truncate(s),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):t=this._addAfter(new Ts(e,n),s,r),t}_verifyReinsertion(t,e,n,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Is),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Is),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class Ts{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Ss{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class Is{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new Ss,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function As(t,e,n){const r=t.previousIndex;if(null===r)return r;let s=0;return n&&r<n.length&&(s=n[r]),r+e+s}class Os{constructor(){}supports(t){return t instanceof Map||ts(t)}create(){return new Ds}}class Ds{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||ts(t)))throw new Error(`Error trying to diff '${J(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const n=this._records.get(t);this._maybeAddToChanges(n,e);const r=n._prev,s=n._next;return r&&(r._next=s),s&&(s._prev=r),n._next=null,n._prev=null,n}const n=new js(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(n=>e(t[n],n))}}class js{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let Hs=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Es])}),t})(),Ns=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Os])}),t})();function Ps(t,e,n,r,s=!1){for(;null!==n;){const o=e[n.index];if(null!==o&&r.push(oe(o)),te(o))for(let t=10;t<o.length;t++){const e=o[t],n=e[1].firstChild;null!==n&&Ps(e[1],e,n,r)}const i=n.type;if(8&i)Ps(t,e,n.child,r);else if(32&i){const t=On(n,e);let s;for(;s=t();)r.push(s)}else if(16&i){const t=e[16],s=t[6].projection[n.projection];if(Array.isArray(s))r.push(...s);else{const e=Dn(t);Ps(e[1],e,s,r,!0)}}n=s?n.projectionNext:n.next}return r}class Rs extends class{constructor(t,e){this._lView=t,this._cdRefInjectingView=e,this._appRef=null,this._viewContainerRef=null}get rootNodes(){const t=this._lView,e=t[1];return Ps(e,t,e.firstChild,[])}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}!function(t,e){if(!(256&e[2])){const n=e[11];re(n)&&n.destroyNode&&zn(t,e,n,3,null,null),function(t){let e=t[13];if(!e)return Mn(t[1],t);for(;e;){let n=null;if(Xt(e))n=e[13];else{const t=e[10];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)Xt(e)&&Mn(e[1],e),e=e[3];null===e&&(e=t),Xt(e)&&Mn(e[1],e),n=e&&e[4]}e=n}}(e)}}(this._lView[1],this._lView)}onDestroy(t){!function(t,e,n,r){const s=(o=e)[7]||(o[7]=[]);var o;s.push(null),t.firstCreatePass&&function(t){return t.cleanup||(t.cleanup=[])}(t).push(r,s.length-1)}(this._lView[1],this._lView,0,t)}markForCheck(){!function(t){for(;t;){t[2]|=64;const e=Dn(t);if(0!=(512&t[2])&&!e)return t;t=e}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){Ar(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(t,e,n){Ce(!0);try{Ar(t,e,n)}finally{Ce(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=t}detachFromAppRef(){var t;this._appRef=null,zn(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=t}}{constructor(t){super(t),this._view=t}detectChanges(){Or(this._view)}checkNoChanges(){!function(t){Ce(!0);try{Or(t)}finally{Ce(!1)}}(this._view)}get context(){return null}}const Ms=[new Os],Fs=new Hs([new Es]),Vs=new Ns(Ms);class Ls{}const Bs={};class Zs extends ps{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=Pt(t);return new Us(e,this.ngModule)}}function zs(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const $s=new ut(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Sn});class Us extends ds{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors.map(rr).join(\",\"),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return zs(this.componentDef.inputs)}get outputs(){return zs(this.componentDef.outputs)}create(t,e,n,r){const s=(r=r||this.ngModule)?function(t,e){return{get:(n,r,s)=>{const o=t.get(n,Bs,s);return o!==Bs||r===Bs?o:e.get(n,r,s)}}}(t,r.injector):t,o=s.get(vs,se),i=s.get(bs,null),l=o.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(t,e,n){if(re(t))return t.selectRootElement(e,n===vt.ShadowDom);let r=\"string\"==typeof e?t.querySelector(e):e;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Rn(o.createRenderer(null,this.componentDef),u,function(t){const e=t.toLowerCase();return\"svg\"===e?\"http://www.w3.org/2000/svg\":\"math\"===e?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h={components:[],scheduler:Sn,clean:jr,playerHandler:null,flags:0},d=pr(0,null,null,1,0,null,null,null,null,null),f=ir(null,d,h,a,null,null,o,l,i,s);let p,_;Ie(f);try{const t=function(t,e,n,r,s,o){const i=n[1];n[20]=t;const l=lr(i,20,2,\"#host\",null),u=l.mergedAttrs=e.hostAttrs;null!==u&&(Hr(l,u,!0),null!==t&&(Xe(s,t,u),null!==l.classes&&Wn(s,t,l.classes),null!==l.styles&&Un(s,t,l.styles)));const c=r.createRenderer(t,e),a=ir(n,fr(e),null,e.onPush?64:16,n[20],l,r,c,null,null);return i.firstCreatePass&&(dn(un(l,n),i,e.type),gr(i,l),br(l,n.length,1)),Ir(n,a),n[20]=a}(c,this.componentDef,f,o,l);if(c)if(n)Xe(l,c,[\"ng-version\",Cs.full]);else{const{attrs:t,classes:e}=function(t){const e=[],n=[];let r=1,s=2;for(;r<t.length;){let o=t[r];if(\"string\"==typeof o)2===s?\"\"!==o&&e.push(o,t[++r]):8===s&&n.push(o);else{if(!Xn(s))break;s=o}r++}return{attrs:e,classes:n}}(this.componentDef.selectors[0]);t&&Xe(l,c,t),e&&e.length>0&&Wn(l,c,e.join(\" \"))}if(_=d.data[20],void 0!==e){const t=_.projection=[];for(let n=0;n<this.ngContentSelectors.length;n++){const r=e[n];t.push(null!=r?Array.from(r):null)}}p=function(t,e,n,r,s){const o=n[1],i=function(t,e,n){const r=me();t.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),wr(t,r,e,ur(t,e,1,null),n));const s=gn(e,t,r.directiveStart,r);Tn(s,e);const o=ie(r,e);return o&&Tn(o,e),s}(o,n,e);if(r.components.push(i),t[8]=i,s&&s.forEach(t=>t(i,e)),e.contentQueries){const t=me();e.contentQueries(1,i,t.directiveStart)}const l=me();return!o.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(Ne(l.index),yr(n[1],l,0,l.directiveStart,l.directiveEnd,e),mr(e,i)),i}(t,this.componentDef,f,h,[Jr]),cr(d,f,null)}finally{He()}return new Ws(this.componentType,p,ys(_,f),f,_)}}class Ws extends class{}{constructor(t,e,n,r,s){super(),this.location=n,this._rootLView=r,this._tNode=s,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new Rs(r),this.componentType=t}get injector(){return new wn(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const qs=new Map;class Qs extends Ls{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Zs(this);const n=Rt(t),r=t[Tt]||null;r&&hs(r),this._bootstrapComponents=In(n.bootstrap),this._r3Injector=Zr(t,e,[{provide:Ls,useValue:this},{provide:ps,useValue:this.componentFactoryResolver}],J(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=Gr.THROW_IF_NOT_FOUND,n=Ft.Default){return t===Gr||t===Ls||t===Nr?this:this._r3Injector.get(t,e,n)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Gs extends class{}{constructor(t){super(),this.moduleType=t,null!==Rt(t)&&function(t){const e=new Set;!function t(n){const r=Rt(n,!0),s=r.id;null!==s&&(function(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${J(e)} vs ${J(e.name)}`)}(s,qs.get(s),n),qs.set(s,n));const o=In(r.imports);for(const i of o)e.has(i)||(e.add(i),t(i))}(t)}(t)}create(t){return new Qs(this.moduleType,t)}}const Js=class extends E{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let r,s=t=>null,o=()=>null;t&&\"object\"==typeof t?(r=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(s=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(o=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(r=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(s=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(o=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,s,o);return t instanceof h&&t.add(i),i}},Ks=new ut(\"Application Initializer\");let Ys=(()=>{class t{constructor(t){this.appInits=t,this.resolve=_s,this.reject=_s,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();rs(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Ks,8))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const Xs=new ut(\"AppId\"),to={provide:Xs,useFactory:function(){return`${eo()}${eo()}${eo()}`},deps:[]};function eo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const no=new ut(\"Platform Initializer\"),ro=new ut(\"Platform ID\"),so=new ut(\"appBootstrapListener\");let oo=(()=>{class t{log(t){console.log(t)}warn(t){console.warn(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const io=new ut(\"LocaleId\"),lo=new ut(\"DefaultCurrencyCode\");class uo{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const co=function(t){return new Gs(t)},ao=co,ho=function(t){return Promise.resolve(co(t))},fo=function(t){const e=co(t),n=In(Rt(t).declarations).reduce((t,e)=>{const n=Pt(e);return n&&t.push(new Us(n)),t},[]);return new uo(e,n)},po=fo,_o=function(t){return Promise.resolve(fo(t))};let yo=(()=>{class t{constructor(){this.compileModuleSync=ao,this.compileModuleAsync=ho,this.compileModuleAndAllComponentsSync=po,this.compileModuleAndAllComponentsAsync=_o}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const mo=(()=>Promise.resolve(0))();function go(t){\"undefined\"==typeof Zone?mo.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",t)}class vo{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Js(!1),this.onMicrotaskEmpty=new Js(!1),this.onStable=new Js(!1),this.onError=new Js(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched();const n=this;n._nesting=0,n._outer=n._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(n._inner=n._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(n._inner=n._inner.fork(Zone.longStackTraceZoneSpec)),n.shouldCoalesceEventChangeDetection=e,n.lastRequestAnimationFrameId=-1,n.nativeRequestAnimationFrame=function(){let t=pt.requestAnimationFrame,e=pt.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__(\"OriginalDelegate\")];n&&(t=n);const r=e[Zone.__symbol__(\"OriginalDelegate\")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function(t){const e=!!t.shouldCoalesceEventChangeDetection&&t.nativeRequestAnimationFrame&&(()=>{!function(t){-1===t.lastRequestAnimationFrameId&&(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(pt,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask(\"fakeTopEventTask\",()=>{t.lastRequestAnimationFrameId=-1,Eo(t),Co(t)},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Eo(t))}(t)});t._inner=t._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:e},onInvokeTask:(n,r,s,o,i,l)=>{try{return xo(t),n.invokeTask(s,o,i,l)}finally{e&&\"eventTask\"===o.type&&e(),ko(t)}},onInvoke:(e,n,r,s,o,i,l)=>{try{return xo(t),e.invoke(r,s,o,i,l)}finally{ko(t)}},onHasTask:(e,n,r,s)=>{e.hasTask(r,s),n===r&&(\"microTask\"==s.change?(t._hasPendingMicrotasks=s.microTask,Eo(t),Co(t)):\"macroTask\"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,n,r,s)=>(e.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(n)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!vo.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(vo.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,r){const s=this._inner,o=s.scheduleEventTask(\"NgZoneEvent: \"+r,t,wo,bo,bo);try{return s.runTask(o,e,n)}finally{s.cancelTask(o)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function bo(){}const wo={};function Co(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Eo(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||t.shouldCoalesceEventChangeDetection&&-1!==t.lastRequestAnimationFrameId)}function xo(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ko(t){t._nesting--,Co(t)}class To{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Js,this.onMicrotaskEmpty=new Js,this.onStable=new Js,this.onError=new Js}run(t,e,n){return t.apply(e,n)}runGuarded(t,e,n){return t.apply(e,n)}runOutsideAngular(t){return t()}runTask(t,e,n,r){return t.apply(e,n)}}let So=(()=>{class t{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{vo.assertNotInAngularZone(),go(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())go(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let r=-1;e&&e>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==r),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Io=(()=>{class t{constructor(){this._applications=new Map,Do.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return Do.findTestabilityInTree(this,t,e)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class Ao{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}let Oo,Do=new Ao;const jo=new ut(\"AllowMultipleToken\");function Ho(t,e,n=[]){const r=\"Platform: \"+e,s=new ut(r);return(e=[])=>{let o=No();if(!o||o.injector.get(jo,!1))if(t)t(n.concat(e).concat({provide:s,useValue:!0}));else{const t=n.concat(e).concat({provide:s,useValue:!0},{provide:Rr,useValue:\"platform\"});!function(t){if(Oo&&!Oo.destroyed&&!Oo.injector.get(jo,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");Oo=t.get(Po);const e=t.get(no,null);e&&e.forEach(t=>t())}(Gr.create({providers:t,name:r}))}return function(t){const e=No();if(!e)throw new Error(\"No platform exists!\");if(!e.injector.get(t,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return e}(s)}}function No(){return Oo&&!Oo.destroyed?Oo:null}let Po=(()=>{class t{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t,e){let n;return n=\"noop\"===t?new To:(\"zone.js\"===t?void 0:t)||new vo({enableLongStackTrace:Me(),shouldCoalesceEventChangeDetection:e}),n}(e?e.ngZone:void 0,e&&e.ngZoneEventCoalescing||!1),r=[{provide:vo,useValue:n}];return n.run(()=>{const e=Gr.create({providers:r,parent:this.injector,name:t.moduleType.name}),s=t.create(e),o=s.injector.get(kn,null);if(!o)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return s.onDestroy(()=>Fo(this._modules,s)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{o.handleError(t)}})),function(t,e,n){try{const r=n();return rs(r)?r.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(o,n,()=>{const t=s.injector.get(Ys);return t.runInitializers(),t.donePromise.then(()=>(hs(s.injector.get(io,cs)||cs),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,e=[]){const n=Ro({},e);return function(t,e,n){const r=new Gs(n);return Promise.resolve(r)}(0,0,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(Mo);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${J(t.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. Please define one of these.`);t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Gr))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Ro(t,e){return Array.isArray(e)?e.reduce(Ro,t):Object.assign(Object.assign({},t),e)}let Mo=(()=>{class t{constructor(t,e,n,r,s,o){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Me(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),l=new g(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{vo.assertNotInAngularZone(),go(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{vo.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=function(...t){let e=Number.POSITIVE_INFINITY,n=null,r=t[t.length-1];var s;return(s=r)&&\"function\"==typeof s.schedule?(n=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(e=t.pop())):\"number\"==typeof r&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof g?t[0]:function(t=Number.POSITIVE_INFINITY){return H(m,t)}(e)(function(t,e){return e?function(t,e){return new g(n=>{const r=new h;let s=0;return r.add(e.schedule(function(){s!==t.length?(n.next(t[s++]),n.closed||r.add(this.schedule())):n.complete()})),r})}(t,e):new g(S(t))}(t,n))}(i,l.pipe(t=>{return R()((e=Z,function(t){let n;n=\"function\"==typeof e?e:function(){return e};const r=Object.create(t,L);return r.source=t,r.subjectFactory=n,r})(t));var e}))}bootstrap(t,e){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=t instanceof ds?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(Ls),s=n.create(Gr.NULL,[],e||n.selector,r);s.onDestroy(()=>{this._unloadComponent(s)});const o=s.injector.get(So,null);return o&&s.injector.get(Io).registerApplication(s.location.nativeElement,o),this._loadComponent(s),Me()&&this._console.log(\"Angular is running in development mode. Call enableProdMode() to enable production mode.\"),s}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Fo(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(so,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),Fo(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo),Gt(oo),Gt(Gr),Gt(kn),Gt(ps),Gt(Ys))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Fo(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const Vo=Ho(null,\"core\",[{provide:ro,useValue:\"unknown\"},{provide:Po,deps:[Gr]},{provide:Io,deps:[]},{provide:oo,deps:[]}]),Lo=[{provide:Mo,useClass:Mo,deps:[vo,oo,Gr,kn,ps,Ys]},{provide:$s,deps:[vo],useFactory:function(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:Ys,useClass:Ys,deps:[[new q,Ks]]},{provide:yo,useClass:yo,deps:[]},to,{provide:Hs,useFactory:function(){return Fs},deps:[]},{provide:Ns,useFactory:function(){return Vs},deps:[]},{provide:io,useFactory:function(t){return hs(t=t||\"undefined\"!=typeof $localize&&$localize.locale||cs),t},deps:[[new W(io),new q,new G]]},{provide:lo,useValue:\"USD\"}];let Bo=(()=>{class t{constructor(t){}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(Mo))},providers:Lo}),t})(),Zo=null;function zo(){return Zo}const $o=new ut(\"DocumentToken\");var Uo=function(t){return t[t.Zero=0]=\"Zero\",t[t.One=1]=\"One\",t[t.Two=2]=\"Two\",t[t.Few=3]=\"Few\",t[t.Many=4]=\"Many\",t[t.Other=5]=\"Other\",t}({});class Wo{}let qo=(()=>{class t extends Wo{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(function(t){return function(t){const e=function(t){return t.toLowerCase().replace(/_/g,\"-\")}(t);let n=ls(e);if(n)return n;const r=e.split(\"-\")[0];if(n=ls(r),n)return n;if(\"en\"===r)return os;throw new Error(`Missing locale data for the locale \"${t}\".`)}(t)[us.PluralCase]}(e||this.locale)(t)){case Uo.Zero:return\"zero\";case Uo.One:return\"one\";case Uo.Two:return\"two\";case Uo.Few:return\"few\";case Uo.Many:return\"many\";default:return\"other\"}}}return t.\\u0275fac=function(e){return new(e||t)(Gt(io))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Qo=(()=>{class t{}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[{provide:Wo,useClass:qo}]}),t})();class Go extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var t;t=new Go,Zo||(Zo=t)}getProperty(t,e){return t[e]}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}getValue(t){return t.value}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return\"window\"===e?window:\"document\"===e?t:\"body\"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=Ko||(Ko=document.querySelector(\"base\"),Ko)?Ko.getAttribute(\"href\"):null;return null==e?null:(n=e,Jo||(Jo=document.createElement(\"a\")),Jo.setAttribute(\"href\",n),\"/\"===Jo.pathname.charAt(0)?Jo.pathname:\"/\"+Jo.pathname);var n}resetBaseElement(){Ko=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return function(t,e){e=encodeURIComponent(e);for(const n of t.split(\";\")){const t=n.indexOf(\"=\"),[r,s]=-1==t?[n,\"\"]:[n.slice(0,t),n.slice(t+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}(document.cookie,t)}}let Jo,Ko=null;const Yo=new ut(\"TRANSITION_ID\"),Xo=[{provide:Ks,useFactory:function(t,e,n){return()=>{n.get(Ys).donePromise.then(()=>{const n=zo();Array.prototype.slice.apply(e.querySelectorAll(\"style[ng-transition]\")).filter(e=>e.getAttribute(\"ng-transition\")===t).forEach(t=>n.remove(t))})}},deps:[Yo,$o,Gr],multi:!0}];class ti{static init(){var t;t=new ti,Do=t}addToWindow(t){pt.getAngularTestability=(e,n=!0)=>{const r=t.findTestabilityInTree(e,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},pt.getAllAngularTestabilities=()=>t.getAllTestabilities(),pt.getAllAngularRootElements=()=>t.getAllRootElements(),pt.frameworkStabilizers||(pt.frameworkStabilizers=[]),pt.frameworkStabilizers.push(t=>{const e=pt.getAllAngularTestabilities();let n=e.length,r=!1;const s=function(e){r=r||e,n--,0==n&&t(r)};e.forEach(function(t){t.whenStable(s)})})}findTestabilityInTree(t,e,n){if(null==e)return null;const r=t.getTestability(e);return null!=r?r:n?zo().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}const ei=new ut(\"EventManagerPlugins\");let ni=(()=>{class t{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let r=0;r<n.length;r++){const e=n[r];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(\"No event manager plugin found for event \"+t)}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ei),Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class ri{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const r=zo().getGlobalEventTarget(this._doc,t);if(!r)throw new Error(`Unsupported event target ${r} for event ${e}`);return this.addEventListener(r,e,n)}}let si=(()=>{class t{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),oi=(()=>{class t extends si{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement(\"style\");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>zo().remove(t))}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const ii={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},li=/%COMP%/g;function ui(t,e,n){for(let r=0;r<e.length;r++){let s=e[r];Array.isArray(s)?ui(t,s,n):(s=s.replace(li,t),n.push(s))}return n}function ci(t){return e=>{if(\"__ngUnwrap__\"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let ai=(()=>{class t{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new hi(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case vt.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new di(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case 1:case vt.ShadowDom:return new fi(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=ui(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ni),Gt(oi),Gt(Xs))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class hi{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(ii[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n=\"string\"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector \"${t}\" did not match any elements`);return e||(n.textContent=\"\"),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,r){if(r){e=r+\":\"+e;const s=ii[r];s?t.setAttributeNS(s,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const r=ii[n];r?t.removeAttributeNS(r,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,r){r&(An.DashCase|An.Important)?t.style.setProperty(e,n,r&An.Important?\"important\":\"\"):t.style[e]=n}removeStyle(t,e,n){n&An.DashCase?t.style.removeProperty(e):t.style[e]=\"\"}setProperty(t,e,n){t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return\"string\"==typeof t?this.eventManager.addGlobalEventListener(t,e,ci(n)):this.eventManager.addEventListener(t,e,ci(n))}}class di extends hi{constructor(t,e,n,r){super(t),this.component=n;const s=ui(r+\"-\"+n.id,n.styles,[]);e.addStyles(s),this.contentAttr=\"_ngcontent-%COMP%\".replace(li,r+\"-\"+n.id),this.hostAttr=\"_nghost-%COMP%\".replace(li,r+\"-\"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,\"\")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,\"\"),n}}class fi extends hi{constructor(t,e,n,r){super(t),this.sharedStylesHost=e,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:\"open\"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=ui(r.id,r.styles,[]);for(let o=0;o<s.length;o++){const t=document.createElement(\"style\");t.textContent=s[o],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}let pi=(()=>{class t extends ri{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,n){return t.addEventListener(e,n,!1),()=>this.removeEventListener(t,e,n)}removeEventListener(t,e,n){return t.removeEventListener(e,n)}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const _i=[\"alt\",\"control\",\"meta\",\"shift\"],yi={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},mi={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},gi={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let vi=(()=>{class t extends ri{constructor(t){super(t)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,n,r){const s=t.parseEventName(n),o=t.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>zo().onAndCancel(e,s.domEventName,o))}static parseEventName(e){const n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const s=t._normalizeKey(n.pop());let o=\"\";if(_i.forEach(t=>{const e=n.indexOf(t);e>-1&&(n.splice(e,1),o+=t+\".\")}),o+=s,0!=n.length||0===s.length)return null;const i={};return i.domEventName=r,i.fullKey=o,i}static getEventFullKey(t){let e=\"\",n=function(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return\"Unidentified\";e.startsWith(\"U+\")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&mi.hasOwnProperty(e)&&(e=mi[e]))}return yi[e]||e}(t);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),_i.forEach(r=>{r!=n&&(0,gi[r])(t)&&(e+=r+\".\")}),e+=n,e}static eventCallback(e,n,r){return s=>{t.getEventFullKey(s)===e&&r.runGuarded(()=>n(s))}}static _normalizeKey(t){switch(t){case\"esc\":return\"escape\";default:return t}}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const bi=Ho(Vo,\"browser\",[{provide:ro,useValue:\"browser\"},{provide:no,useValue:function(){Go.makeCurrent(),ti.init()},multi:!0},{provide:$o,useFactory:function(){return function(t){Kt=t}(document),document},deps:[]}]),wi=[[],{provide:Rr,useValue:\"root\"},{provide:kn,useFactory:function(){return new kn},deps:[]},{provide:ei,useClass:pi,multi:!0,deps:[$o,vo,ro]},{provide:ei,useClass:vi,multi:!0,deps:[$o]},[],{provide:ai,useClass:ai,deps:[ni,oi,Xs]},{provide:vs,useExisting:ai},{provide:si,useExisting:oi},{provide:oi,useClass:oi,deps:[$o]},{provide:So,useClass:So,deps:[vo]},{provide:ni,useClass:ni,deps:[ei,vo]},[]];let Ci=(()=>{class t{constructor(t){if(t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(e){return{ngModule:t,providers:[{provide:Xs,useValue:e.appId},{provide:Yo,useExisting:Xs},Xo]}}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(t,12))},providers:wi,imports:[Qo,Bo]}),t})();\"undefined\"!=typeof window&&window;let Ei=(()=>{class t{constructor(){this.title=\"example\"}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=(e={type:t,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(t,e){1&t&&(ns(0,\"div\",0),function(t,e=\"\"){const n=_e(),r=ye(),s=t+Yt,o=r.firstCreatePass?lr(r,s,1,e,null):r.data[s],i=n[s]=function(t,e){return re(t)?t.createText(e):t.createTextNode(e)}(n[11],e);Bn(r,n,i,o),ve(o,!1)}(1,\" Hello, World\\n\"),function(){let t=me();be()?fe.lFrame.isParent=!1:(t=t.parent,ve(t,!1));const e=t;fe.lFrame.elementDepthCount--;const n=ye();n.firstCreatePass&&(Ue(n,t),ee(t)&&n.queries.elementEnd(t)),null!=e.classesWithoutHost&&function(t){return 0!=(16&t.flags)}(e)&&es(n,e,_e(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function(t){return 0!=(32&t.flags)}(e)&&es(n,e,_e(),e.stylesWithoutHost,!1)}())},styles:[\"\"]},z(()=>{const t={},n={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===ct.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||wt,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||vt.Emulated,id:\"c\",styles:e.styles||wt,_:null,setInput:null,schemas:e.schemas||null,tView:null},r=e.directives,s=e.features,o=e.pipes;return n.id+=At++,n.inputs=Nt(e.inputs,t),n.outputs=Nt(e.outputs),s&&s.forEach(t=>t(n)),n.directiveDefs=r?()=>(\"function\"==typeof r?r():r).map(Ot):null,n.pipeDefs=o?()=>(\"function\"==typeof o?o():o).map(Dt):null,n})),t;var e})(),xi=(()=>{class t{}return t.\\u0275mod=Ht({type:t,bootstrap:[Ei]}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[],imports:[[Ci]]}),t})();(function(){if(Re)throw new Error(\"Cannot enable prod mode after platform setup.\");Pe=!1})(),bi().bootstrapModule(xi).catch(t=>console.error(t))},zn8P:function(t,e){function n(t){return Promise.resolve().then(function(){var e=new Error(\"Cannot find module '\"+t+\"'\");throw e.code=\"MODULE_NOT_FOUND\",e})}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/dist/example/polyfills.bf99d438b005d57b2b31.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{1:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const i=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(i||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class a{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==C.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=a.current;for(;e.parent;)e=e.parent;return e}static get current(){return z.zone}static get currentTask(){return j}static __load_patch(t,r){if(C.hasOwnProperty(t)){if(i)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),C[t]=r(e,a,O),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){z={parent:z,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{z=z.parent}}runGuarded(e,t=null,n,o){z={parent:z,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{z=z.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,T),e.runCount++;const r=j;j=e,z={parent:z,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(T,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),z=z.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(b,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,b,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==b&&e._transitionTo(T,b),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,T,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}a.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new a(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");k(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,i){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=i,!o)throw new Error(\"callback is not defined\");this.callback=o;const a=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,a,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,b)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],_=!1;function k(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!_){for(_=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){O.onUnhandledError(e)}}}O.microtaskDrainDone(),_=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",b=\"scheduling\",T=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",C={},O={symbol:s,currentZoneFrame:()=>z,onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:k,showUncaughtError:()=>!a[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:N,patchMethod:()=>N,bindArguments:()=>[],patchThen:()=>N,patchMacroTask:()=>N,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>N,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>N,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>N,wrapWithCurrentZone:()=>N,filterProperties:()=>[],attachOriginToPatched:()=>N,_redefineProperty:()=>N,patchCallbacks:()=>N};let z={parent:null,zone:new a(null,null)},j=null,I=0;function N(){}o(\"Zone\",\"Zone\"),e.Zone=a}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,i=[],a=!0===e[s(\"DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION\")],c=s(\"Promise\"),l=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;i.length;){const t=i.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){h(e)}}};const u=s(\"unhandledPromiseRejectionHandler\");function h(e){n.onUnhandledError(e);try{const n=t[u];\"function\"==typeof n&&n.call(this,e)}catch(o){}}function p(e){return e&&e.then}function f(e){return e}function d(e){return O.reject(e)}const g=s(\"state\"),_=s(\"value\"),k=s(\"finally\"),m=s(\"parentPromiseValue\"),y=s(\"parentPromiseState\"),v=null,b=!0,T=!1;function E(e,t){return n=>{try{Z(e,t,n)}catch(o){Z(e,!1,o)}}}const w=s(\"currentTaskTrace\");function Z(e,o,s){const c=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(e[g]===v){let h=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(h=s&&s.then)}catch(u){return c(()=>{Z(e,!1,u)})(),e}if(o!==T&&s instanceof O&&s.hasOwnProperty(g)&&s.hasOwnProperty(_)&&s[g]!==v)D(s),Z(e,s[g],s[_]);else if(o!==T&&\"function\"==typeof h)try{h.call(s,c(E(e,o)),c(E(e,!1)))}catch(u){c(()=>{Z(e,!1,u)})()}else{e[g]=o;const c=e[_];if(e[_]=s,e[k]===k&&o===b&&(e[g]=e[y],e[_]=e[m]),o===T&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,w,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<c.length;)P(e,c[t++],c[t++],c[t++],c[t++]);if(0==c.length&&o==T){e[g]=0;let o=s;if(!a)try{throw new Error(\"Uncaught (in promise): \"+((l=s)&&l.toString===Object.prototype.toString?(l.constructor&&l.constructor.name||\"\")+\": \"+JSON.stringify(l):l?l.toString():Object.prototype.toString.call(l))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(u){o=u}o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,i.push(o),n.scheduleMicroTask()}}}var l;return e}const S=s(\"rejectionHandledHandler\");function D(e){if(0===e[g]){try{const n=t[S];n&&\"function\"==typeof n&&n.call(this,{rejection:e[_],promise:e})}catch(n){}e[g]=T;for(let t=0;t<i.length;t++)e===i[t].promise&&i.splice(t,1)}}function P(e,t,n,o,r){D(e);const s=e[g],i=s?\"function\"==typeof o?o:f:\"function\"==typeof r?r:d;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[_],r=!!n&&k===n[k];r&&(n[m]=o,n[y]=s);const a=t.run(i,void 0,r&&i!==d&&i!==f?[]:[o]);Z(n,!0,a)}catch(o){Z(n,!1,o)}},n)}const C=function(){};class O{static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return Z(new this(null),b,e)}static reject(e){return Z(new this(null),T,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let i of e)p(i)||(i=this.resolve(i)),i.then(r,s);return o}static all(e){return O.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof O?this:O).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,i=0;const a=[];for(let l of e){p(l)||(l=this.resolve(l));const e=i;try{l.then(o=>{a[e]=t?t.thenCallback(o):o,s--,0===s&&n(a)},r=>{t?(a[e]=t.errorCallback(r),s--,0===s&&n(a)):o(r)})}catch(c){o(c)}s++,i++}return s-=2,0===s&&n(a),r}constructor(e){const t=this;if(!(t instanceof O))throw new Error(\"Must be an instanceof Promise.\");t[g]=v,t[_]=[];try{e&&e(E(t,b),E(t,T))}catch(n){Z(t,!1,n)}}get[Symbol.toStringTag](){return\"Promise\"}get[Symbol.species](){return O}then(e,n){let o=this.constructor[Symbol.species];o&&\"function\"==typeof o||(o=this.constructor||O);const r=new o(C),s=t.current;return this[g]==v?this[_].push(s,r,e,n):P(this,s,r,e,n),r}catch(e){return this.then(null,e)}finally(e){let n=this.constructor[Symbol.species];n&&\"function\"==typeof n||(n=O);const o=new n(C);o[k]=k;const r=t.current;return this[g]==v?this[_].push(r,o,e,e):P(this,r,o,e,e),o}}O.resolve=O.resolve,O.reject=O.reject,O.race=O.race,O.all=O.all;const z=e[c]=e.Promise,j=t.__symbol__(\"ZoneAwarePromise\");let I=o(e,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return e[j]?e[j]:e[c]},I.set=function(t){t===O?e[j]=t:(e[c]=t,t.prototype[l]||R(t),n.setNativePromise(t))},r(e,\"Promise\",I)),e.Promise=O;const N=s(\"thenPatched\");function R(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[l]=r,e.prototype.then=function(e,t){return new O((e,t)=>{r.call(this,e,t)}).then(e,t)},e[N]=!0}if(n.patchThen=R,z){R(z);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(x=t,function(){let e=x.apply(this,arguments);if(e instanceof O)return e;let t=e.constructor;return t[N]||R(t),e}))}var x;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=i,O});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=\"addEventListener\",i=\"removeEventListener\",a=Zone.__symbol__(s),c=Zone.__symbol__(i),l=\"true\",u=\"false\",h=Zone.__symbol__(\"\");function p(e,t){return Zone.current.wrap(e,t)}function f(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const d=Zone.__symbol__,g=\"undefined\"!=typeof window,_=g?window:void 0,k=g&&_||\"object\"==typeof self&&self||global,m=[null];function y(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=p(e[n],t+\"_\"+n));return e}function v(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const b=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,T=!(\"nw\"in k)&&void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process),E=!T&&!b&&!(!g||!_.HTMLElement),w=void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process)&&!b&&!(!g||!_.HTMLElement),Z={},S=function(e){if(!(e=e||k.event))return;let t=Z[e.type];t||(t=Z[e.type]=d(\"ON_PROPERTY\"+e.type));const n=this||e.target||k,o=n[t];let r;if(E&&n===_&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function D(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const i=d(\"on\"+o+\"patched\");if(n.hasOwnProperty(i)&&n[i])return;delete s.writable,delete s.value;const a=s.get,c=s.set,l=o.substr(2);let u=Z[l];u||(u=Z[l]=d(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==k||(t=k),t&&(t[u]&&t.removeEventListener(l,S),c&&c.apply(t,m),\"function\"==typeof e?(t[u]=e,t.addEventListener(l,S,!1)):t[u]=null)},s.get=function(){let e=this;if(e||n!==k||(e=k),!e)return null;const t=e[u];if(t)return t;if(a){let t=a&&a.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[i]=!0}function P(e,t,n){if(t)for(let o=0;o<t.length;o++)D(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)D(e,t[o],n)}}const C=d(\"originalInstance\");function O(e){const n=k[e];if(!n)return;k[d(e)]=n,k[e]=function(){const t=y(arguments,e);switch(t.length){case 0:this[C]=new n;break;case 1:this[C]=new n(t[0]);break;case 2:this[C]=new n(t[0],t[1]);break;case 3:this[C]=new n(t[0],t[1],t[2]);break;case 4:this[C]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},I(k[e],n);const o=new n(function(){});let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?k[e].prototype[n]=function(){return this[C][n].apply(this[C],arguments)}:t(k[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[C][n]=p(t,e+\".\"+n),I(this[C][n],t)):this[C][n]=t},get:function(){return this[C][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(k[e][r]=n[r])}function z(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const i=d(o);let a=null;if(s&&!(a=s[i])&&(a=s[i]=s[o],v(s&&e(s,o)))){const e=r(a,i,o);s[o]=function(){return e(this,arguments)},I(s[o],a)}return a}function j(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=z(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?f(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function I(e,t){e[d(\"OriginalDelegate\")]=t}let N=!1,R=!1;function x(){try{const e=_.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function M(){if(N)return R;N=!0;try{const e=_.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(R=!0)}catch(e){}return R}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=d(\"OriginalDelegate\"),o=d(\"Promise\"),r=d(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const i=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":i.call(this)}});let L=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){L=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(he){L=!1}const A={useG:!0},H={},F={},G=new RegExp(\"^\"+h+\"(\\\\w+)(true|false)$\"),B=d(\"propagationStopped\");function q(e,t){const n=(t?t(e):e)+u,o=(t?t(e):e)+l,r=h+n,s=h+o;H[e]={},H[e].false=r,H[e].true=s}function W(e,t,o){const r=o&&o.add||s,a=o&&o.rm||i,c=o&&o.listeners||\"eventListeners\",p=o&&o.rmAll||\"removeAllListeners\",f=d(r),g=\".\"+r+\":\",_=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[a].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},k=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].false];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}},m=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].true];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}};function y(t,o){if(!t)return!1;let s=!0;o&&void 0!==o.useG&&(s=o.useG);const i=o&&o.vh;let _=!0;o&&void 0!==o.chkDup&&(_=o.chkDup);let y=!1;o&&void 0!==o.rt&&(y=o.rt);let v=t;for(;v&&!v.hasOwnProperty(r);)v=n(v);if(!v&&t[r]&&(v=t),!v)return!1;if(v[f])return!1;const b=o&&o.eventNameToString,E={},w=v[f]=v[r],Z=v[d(a)]=v[a],S=v[d(c)]=v[c],D=v[d(p)]=v[p];let P;function C(e,t){return!L&&\"object\"==typeof e&&e?!!e.capture:L&&t?\"boolean\"==typeof e?{capture:e,passive:!0}:e?\"object\"==typeof e&&!1!==e.passive?Object.assign(Object.assign({},e),{passive:!0}):e:{passive:!0}:e}o&&o.prepend&&(P=v[d(o.prepend)]=v[o.prepend]);const O=s?function(e){if(!E.isExisting)return w.call(E.target,E.eventName,E.capture?m:k,E.options)}:function(e){return w.call(E.target,E.eventName,e.invoke,E.options)},z=s?function(e){if(!e.isRemoved){const t=H[e.eventName];let n;t&&(n=t[e.capture?l:u]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return Z.call(e.target,e.eventName,e.capture?m:k,e.options)}:function(e){return Z.call(e.target,e.eventName,e.invoke,e.options)},j=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},N=Zone[d(\"BLACK_LISTED_EVENTS\")],R=e[d(\"PASSIVE_EVENTS\")],x=function(t,n,r,a,c=!1,h=!1){return function(){const p=this||e;let f=arguments[0];o&&o.transferEventName&&(f=o.transferEventName(f));let d=arguments[1];if(!d)return t.apply(this,arguments);if(T&&\"uncaughtException\"===f)return t.apply(this,arguments);let g=!1;if(\"function\"!=typeof d){if(!d.handleEvent)return t.apply(this,arguments);g=!0}if(i&&!i(t,d,p,arguments))return;const k=L&&!!R&&-1!==R.indexOf(f),m=C(arguments[2],k);if(N)for(let e=0;e<N.length;e++)if(f===N[e])return k?t.call(p,f,d,m):t.apply(this,arguments);const y=!!m&&(\"boolean\"==typeof m||m.capture),v=!(!m||\"object\"!=typeof m)&&m.once,w=Zone.current;let Z=H[f];Z||(q(f,b),Z=H[f]);const S=Z[y?l:u];let D,P=p[S],O=!1;if(P){if(O=!0,_)for(let e=0;e<P.length;e++)if(j(P[e],d))return}else P=p[S]=[];const z=p.constructor.name,I=F[z];I&&(D=I[f]),D||(D=z+n+(b?b(f):f)),E.options=m,v&&(E.options.once=!1),E.target=p,E.capture=y,E.eventName=f,E.isExisting=O;const x=s?A:void 0;x&&(x.taskData=E);const M=w.scheduleEventTask(D,d,x,r,a);return E.target=null,x&&(x.taskData=null),v&&(m.once=!0),(L||\"boolean\"!=typeof M.options)&&(M.options=m),M.target=p,M.capture=y,M.eventName=f,g&&(M.originalDelegate=d),h?P.unshift(M):P.push(M),c?p:void 0}};return v[r]=x(w,g,O,z,y),P&&(v.prependListener=x(P,\".prependListener:\",function(e){return P.call(E.target,E.eventName,e.invoke,E.options)},z,y,!0)),v[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2],s=!!r&&(\"boolean\"==typeof r||r.capture),a=arguments[1];if(!a)return Z.apply(this,arguments);if(i&&!i(Z,a,t,arguments))return;const c=H[n];let p;c&&(p=c[s?l:u]);const f=p&&t[p];if(f)for(let e=0;e<f.length;e++){const o=f[e];if(j(o,a))return f.splice(e,1),o.isRemoved=!0,0===f.length&&(o.allRemoved=!0,t[p]=null,\"string\"==typeof n)&&(t[h+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),y?t:void 0}return Z.apply(this,arguments)},v[c]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=U(t,b?b(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},v[p]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=H[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=G.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[p].call(this,o)}this[p].call(this,\"removeListener\")}if(y)return this},I(v[r],w),I(v[a],Z),D&&I(v[p],D),S&&I(v[c],S),!0}let v=[];for(let n=0;n<t.length;n++)v[n]=y(t[n],o);return v}function U(e,t){if(!t){const n=[];for(let o in e){const r=G.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}let n=H[t];n||(q(t),n=H[t]);const o=e[n.false],r=e[n.true];return o?r?o.concat(r):o.slice():r?r.slice():[]}function V(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[B]=!0,e&&e.apply(t,n)})}function $(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const i=t[s]=t[o];t[o]=function(s,a,c){return a&&a.prototype&&r.forEach(function(t){const r=`${n}.${o}::`+t,s=a.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(a.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}),i.call(t,s,a,c)},e.attachOriginToPatched(t[o],i)}const X=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplayconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],J=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],Y=[\"load\"],K=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],Q=[\"bounce\",\"finish\",\"start\"],ee=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],te=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],ne=[\"close\",\"error\",\"open\",\"message\"],oe=[\"error\",\"message\"],re=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],X,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function se(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function ie(e,t,n,o){e&&P(e,se(e,t,n),o)}function ae(e,t){if(T&&!w)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(E){const e=window,t=x?[{target:e,ignoreProperties:[\"error\"]}]:[];ie(e,re.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),ie(Document.prototype,re,r),void 0!==e.SVGElement&&ie(e.SVGElement.prototype,re,r),ie(Element.prototype,re,r),ie(HTMLElement.prototype,re,r),ie(HTMLMediaElement.prototype,J,r),ie(HTMLFrameSetElement.prototype,X.concat(K),r),ie(HTMLBodyElement.prototype,X.concat(K),r),ie(HTMLFrameElement.prototype,Y,r),ie(HTMLIFrameElement.prototype,Y,r);const o=e.HTMLMarqueeElement;o&&ie(o.prototype,Q,r);const s=e.Worker;s&&ie(s.prototype,oe,r)}const s=t.XMLHttpRequest;s&&ie(s.prototype,ee,r);const i=t.XMLHttpRequestEventTarget;i&&ie(i&&i.prototype,ee,r),\"undefined\"!=typeof IDBIndex&&(ie(IDBIndex.prototype,te,r),ie(IDBRequest.prototype,te,r),ie(IDBOpenDBRequest.prototype,te,r),ie(IDBDatabase.prototype,te,r),ie(IDBTransaction.prototype,te,r),ie(IDBCursor.prototype,te,r)),o&&ie(WebSocket.prototype,ne,r)}Zone.__load_patch(\"util\",(n,a,c)=>{c.patchOnProperties=P,c.patchMethod=z,c.bindArguments=y,c.patchMacroTask=j;const f=a.__symbol__(\"BLACK_LISTED_EVENTS\"),d=a.__symbol__(\"UNPATCHED_EVENTS\");n[d]&&(n[f]=n[d]),n[f]&&(a[f]=a[d]=n[f]),c.patchEventPrototype=V,c.patchEventTarget=W,c.isIEOrEdge=M,c.ObjectDefineProperty=t,c.ObjectGetOwnPropertyDescriptor=e,c.ObjectCreate=o,c.ArraySlice=r,c.patchClass=O,c.wrapWithCurrentZone=p,c.filterProperties=se,c.attachOriginToPatched=I,c._redefineProperty=Object.defineProperty,c.patchCallbacks=$,c.getGlobalObjects=()=>({globalSources:F,zoneSymbolEventNames:H,eventNames:re,isBrowser:E,isMix:w,isNode:T,TRUE_STR:l,FALSE_STR:u,ZONE_SYMBOL_PREFIX:h,ADD_EVENT_LISTENER_STR:s,REMOVE_EVENT_LISTENER_STR:i})});const ce=d(\"zoneTask\");function le(e,t,n,o){let r=null,s=null;n+=o;const i={};function a(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete i[n.handleId]:n.handleId&&(n.handleId[ce]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=z(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=f(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},a,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?i[n]=e:n&&(n[ce]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=z(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=i[r]:(s=r&&r[ce],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete i[r]:r&&(r[ce]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function ue(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:i}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=i+(e+s),a=i+(e+r);o[e]={},o[e][s]=t,o[e][r]=a}const a=e.EventTarget;return a&&a.prototype?(t.patchEventTarget(e,[a&&a.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{const t=\"set\",n=\"clear\";le(e,t,n,\"Timeout\"),le(e,t,n,\"Interval\"),le(e,t,n,\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{le(e,\"request\",\"cancel\",\"AnimationFrame\"),le(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),le(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)z(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{(function(e,t){t.patchEventPrototype(e,t)})(e,n),ue(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),O(\"MutationObserver\"),O(\"WebKitMutationObserver\"),O(\"IntersectionObserver\"),O(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ae(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const u=e.XMLHttpRequest;if(!u)return;const h=u.prototype;let p=h[a],g=h[c];if(!p){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;p=e[a],g=e[c]}}const _=\"readystatechange\",k=\"scheduled\";function m(e){const o=e.data,i=o.target;i[s]=!1,i[l]=!1;const u=i[r];p||(p=i[a],g=i[c]),u&&g.call(i,_,u);const h=i[r]=()=>{if(i.readyState===i.DONE)if(!o.aborted&&i[s]&&e.state===k){const n=i[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=i[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||e.state!==k||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==i[s]||(i[l]=!0)};return p.call(i,_,h),i[n]||(i[n]=e),w.apply(i,o.args),i[s]=!0,e}function y(){}function v(e){const t=e.data;return t.aborted=!0,Z.apply(t.target,t.args)}const b=z(h,\"open\",()=>function(e,t){return e[o]=0==t[2],e[i]=t[1],b.apply(e,t)}),T=d(\"fetchTaskAborting\"),E=d(\"fetchTaskScheduling\"),w=z(h,\"send\",()=>function(e,n){if(!0===t.current[E])return w.apply(e,n);if(e[o])return w.apply(e,n);{const t={target:e,url:e[i],isPeriodic:!1,args:n,aborted:!1},o=f(\"XMLHttpRequest.send\",y,t,m,v);e&&!0===e[l]&&!t.aborted&&o.state===k&&o.invoke()}}),Z=z(h,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[T])return Z.apply(e,o)})}(e);const n=d(\"xhrTask\"),o=d(\"xhrSync\"),r=d(\"xhrListener\"),s=d(\"xhrScheduled\"),i=d(\"xhrURL\"),l=d(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],i=t[s];if(i){if(!v(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,y(arguments,o+\".\"+s))};return I(t,e),t})(i)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){U(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[d(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[d(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[1,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/dist/example/runtime.359d5ee4682f20e936e9.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/dist/example/styles.51422a5c94b8290ff190.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:initial}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:initial;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:initial;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:initial;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:initial}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:initial}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:initial}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:initial}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:initial}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:initial}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:initial}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:initial}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:initial;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:initial}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:initial;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:initial;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:initial;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:initial;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:initial;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:initial;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:initial;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:initial;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:initial!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:initial!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:initial;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule {}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { NgForm, FormGroup } from \"@angular/forms\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup, ProductFormControl } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n    formGroup: ProductFormGroup = new ProductFormGroup();\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    newProduct: Product = new Product();\n\n    get jsonProduct() {\n        return JSON.stringify(this.newProduct);\n    }\n\n    addProduct(p: Product) {\n        console.log(\"New Product: \" + this.jsonProduct);\n    }\n\n    formSubmitted: boolean = false;\n\n    submitForm() {\n        Object.keys(this.formGroup.controls)\n            .forEach(c => this.newProduct[c] = this.formGroup.controls[c].value);\n        this.formSubmitted = true;\n        if (this.formGroup.valid) {\n            this.addProduct(this.newProduct);\n            this.newProduct = new Product();\n            this.formGroup.reset();\n            this.formSubmitted = false;\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;\n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),\n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c =>\n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/app/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n      public name?: string,\n      public category?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n      let p = this.products.shift();\n      this.products.push(new Product(p.id, p.name, p.category, p.price));\n  }\n\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/app/template.html",
    "content": "<style>\n  input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\n  input.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n</style>\n\n<form class=\"m-2\" novalidate [formGroup]=\"formGroup\" (ngSubmit)=\"submitForm()\">\n\n  <div class=\"bg-danger text-white p-2 mb-2\"\n          *ngIf=\"formSubmitted && formGroup.invalid\">\n      There are problems with the form\n      <ul>\n          <li *ngFor=\"let error of formGroup.getFormValidationMessages()\">\n              {{error}}\n          </li>\n      </ul>\n  </div>\n\n  <div class=\"form-group\" *ngFor=\"let control of formGroup.productControls\">\n      <label>{{control.label}}</label>\n      <input class=\"form-control\"\n          name=\"{{control.modelProperty}}\"\n          formControlName=\"{{control.modelProperty}}\" />\n      <ul class=\"text-danger list-unstyled\"\n              *ngIf=\"(formSubmitted || control.dirty) && control.invalid\">\n          <li *ngFor=\"let error of control.getValidationMessages()\">\n              {{error}}\n          </li>\n      </ul>\n  </div>\n\n  <button class=\"btn btn-primary\" type=\"submit\"\n      [disabled]=\"formSubmitted && formGroup.invalid\"\n      [class.btn-secondary]=\"formSubmitted && formGroup.invalid\">\n          Create\n  </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 14/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncss-loader\nMIT\nCopyright JS Foundation and other contributors\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2020 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.51422a5c94b8290ff190.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime.359d5ee4682f20e936e9.js\" defer></script><script src=\"polyfills.bf99d438b005d57b2b31.js\" defer></script><script src=\"main.f78bdaa2683ef468e3b3.js\" defer></script></body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/dist/example/main.f78bdaa2683ef468e3b3.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(t,e,n){t.exports=n(\"zUnb\")},zUnb:function(t,e,n){\"use strict\";function r(t){return\"function\"==typeof t}n.r(e);let s=!1;const o={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else s&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");s=t},get useDeprecatedSynchronousErrorHandling(){return s}};function i(t){setTimeout(()=>{throw t},0)}const l={closed:!0,next(t){},error(t){if(o.useDeprecatedSynchronousErrorHandling)throw t;i(t)},complete(){}},u=(()=>Array.isArray||(t=>t&&\"number\"==typeof t.length))();function c(t){return null!==t&&\"object\"==typeof t}const a=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();let h=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:s,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(r(o)){s&&(this._unsubscribe=void 0);try{o.call(this)}catch(l){e=l instanceof a?d(l.errors):[l]}}if(u(i)){let t=-1,n=i.length;for(;++t<n;){const n=i[t];if(c(n))try{n.unsubscribe()}catch(l){e=e||[],l instanceof a?e=e.concat(d(l.errors)):e.push(l)}}}if(e)throw new a(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case\"function\":n=new t(e);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error(\"unrecognized teardown \"+e+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof t){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const s=this._subscriptions;return null===s?this._subscriptions=[n]:s.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}return t.EMPTY=function(t){return t.closed=!0,t}(new t),t})();function d(t){return t.reduce((t,e)=>t.concat(e instanceof a?e.errors:e),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!t){this.destination=l;break}if(\"object\"==typeof t){t instanceof p?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,t,e,n)}}[f](){return this}static create(t,e,n){const r=new p(t,e,n);return r.syncErrorThrowable=!1,r}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class _ extends p{constructor(t,e,n,s){let o;super(),this._parentSubscriber=t;let i=this;r(e)?o=e:e&&(o=e.next,n=e.error,s=e.complete,e!==l&&(i=Object.create(e),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=o,this._error=n,this._complete=s}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;o.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:n}=o;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):i(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;i(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);o.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),o.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(t,e,n){if(!o.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{e.call(this._context,n)}catch(r){return o.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=r,t.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const y=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function m(t){return t}let g=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:r}=this,s=function(t,e,n){if(t){if(t instanceof p)return t;if(t[f])return t[f]()}return t||e||n?new p(t,e,n):new p(l)}(t,e,n);if(s.add(r?r.call(s,this.source):this.source||o.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),o.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(t){try{return this._subscribe(t)}catch(e){o.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof p?n:null}return!0}(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=v(e))((e,n)=>{let r;r=this.subscribe(e=>{try{t(e)}catch(s){n(s),r&&r.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[y](){return this}pipe(...t){return 0===t.length?this:(0===(e=t).length?m:1===e.length?e[0]:function(t){return e.reduce((t,e)=>e(t),t)})(this);var e}toPromise(t){return new(t=v(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function v(t){if(t||(t=o.Promise||Promise),!t)throw new Error(\"no Promise impl found\");return t}const b=(()=>{function t(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return t.prototype=Object.create(Error.prototype),t})();class w extends h{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}class C extends p{constructor(t){super(t),this.destination=t}}let E=(()=>{class t extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(t){const e=new x(this,this);return e.operator=t,e}next(t){if(this.closed)throw new b;if(!this.isStopped){const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].next(t)}}error(t){if(this.closed)throw new b;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].error(t);this.observers.length=0}complete(){if(this.closed)throw new b;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let r=0;r<e;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new b;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new b;return this.hasError?(t.error(this.thrownError),h.EMPTY):this.isStopped?(t.complete(),h.EMPTY):(this.observers.push(t),new w(this,t))}asObservable(){const t=new g;return t.source=this,t}}return t.create=(t,e)=>new x(t,e),t})();class x extends E{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):h.EMPTY}}class k{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new T(t,this.project,this.thisArg))}}class T extends p{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}const S=t=>e=>{for(let n=0,r=t.length;n<r&&!e.closed;n++)e.next(t[n]);e.complete()};function I(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const A=I();const O=t=>{if(t&&\"function\"==typeof t[y])return o=t,t=>{const e=o[y]();if(\"function\"!=typeof e.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return e.subscribe(t)};if((e=t)&&\"number\"==typeof e.length&&\"function\"!=typeof e)return S(t);var e,n,r,s,o;if((n=t)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return s=t,t=>(s.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,i),t);if(t&&\"function\"==typeof t[A])return r=t,t=>{const e=r[A]();for(;;){let r;try{r=e.next()}catch(n){return t.error(n),t}if(r.done){t.complete();break}if(t.next(r.value),t.closed)break}return\"function\"==typeof e.return&&t.add(()=>{e.return&&e.return()}),t};{const e=c(t)?\"an invalid object\":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`)}};class D extends p{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class j extends p{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function H(t,e,n=Number.POSITIVE_INFINITY){return\"function\"==typeof e?r=>r.pipe(H((n,r)=>{return(s=t(n,r),s instanceof g?s:new g(O(s))).pipe(function(t,e){return function(e){return e.lift(new k(t,void 0))}}((t,s)=>e(n,t,r,s)));var s},n)):(\"number\"==typeof e&&(n=e),e=>e.lift(new N(t,n)))}class N{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new P(t,this.project,this.concurrent))}}class P extends j{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e)}_innerSub(t){const e=new D(this),n=this.destination;n.add(e);const r=function(t,e){if(!e.closed)return t instanceof g?t.subscribe(e):O(t)(e)}(t,e);r!==e&&n.add(r)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t){this.destination.next(t)}notifyComplete(){const t=this.buffer;this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function R(){return function(t){return t.lift(new M(t))}}class M{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const r=new F(t,n),s=e.subscribe(r);return r.closed||(r.connection=n.connect()),s}}class F extends p{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:n}=this,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new h,t.add(this.source.subscribe(new B(this.getSubject(),this))),t.closed&&(this._connection=null,t=h.EMPTY)),t}refCount(){return R()(this)}}const L=(()=>{const t=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class B extends C{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}function Z(){return new E}function z(t){return{toString:t}.toString()}const $=\"__parameters__\";function U(t,e,n){return z(()=>{const r=function(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}(e);function s(...t){if(this instanceof s)return r.apply(this,t),this;const e=new s(...t);return n.annotation=e,n;function n(t,n,r){const s=t.hasOwnProperty($)?t[$]:Object.defineProperty(t,$,{value:[]})[$];for(;s.length<=r;)s.push(null);return(s[r]=s[r]||[]).push(e),t}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s})}const W=U(\"Inject\",t=>({token:t})),q=U(\"Optional\"),Q=U(\"Self\"),G=U(\"SkipSelf\");function J(t){if(\"string\"==typeof t)return t;if(Array.isArray(t))return\"[\"+t.map(J).join(\", \")+\"]\";if(null==t)return\"\"+t;if(t.overriddenName)return\"\"+t.overriddenName;if(t.name)return\"\"+t.name;const e=t.toString();if(null==e)return\"\"+e;const n=e.indexOf(\"\\n\");return-1===n?e:e.substring(0,n)}function K(t,e){return null==t||\"\"===t?null===e?\"\":e:null==e||\"\"===e?t:t+\" \"+e}function Y(t){for(let e in t)if(t[e]===Y)return e;throw Error(\"Could not find renamed property on target object.\")}function X(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function tt(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function et(t){return nt(t,st)||nt(t,it)}function nt(t,e){return t.hasOwnProperty(e)?t[e]:null}function rt(t){return t&&(t.hasOwnProperty(ot)||t.hasOwnProperty(lt))?t[ot]:null}const st=Y({\"\\u0275prov\":Y}),ot=Y({\"\\u0275inj\":Y}),it=Y({ngInjectableDef:Y}),lt=Y({ngInjectorDef:Y});class ut{constructor(t,e){this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\\u0275prov=X({token:this,providedIn:e.providedIn||\"root\",factory:e.factory}))}toString(){return\"InjectionToken \"+this._desc}}var ct=function(t){return t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\",t}({});const at=\"undefined\"!=typeof globalThis&&globalThis,ht=\"undefined\"!=typeof window&&window,dt=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,ft=\"undefined\"!=typeof global&&global,pt=at||ft||ht||dt,_t=Y({__forward_ref__:Y});function yt(t){return t.__forward_ref__=yt,t.toString=function(){return J(this())},t}function mt(t){return\"function\"==typeof(e=t)&&e.hasOwnProperty(_t)&&e.__forward_ref__===yt?t():t;var e}function gt(t,e){t.forEach(t=>Array.isArray(t)?gt(t,e):e(t))}var vt=function(t){return t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\",t}({});const bt={},wt=[],Ct=Y({\"\\u0275cmp\":Y}),Et=Y({\"\\u0275dir\":Y}),xt=Y({\"\\u0275pipe\":Y}),kt=Y({\"\\u0275mod\":Y}),Tt=Y({\"\\u0275loc\":Y}),St=Y({\"\\u0275fac\":Y}),It=Y({__NG_ELEMENT_ID__:Y});let At=0;function Ot(t){return Pt(t)||function(t){return t[Et]||null}(t)}function Dt(t){return function(t){return t[xt]||null}(t)}const jt={};function Ht(t){const e={type:t.type,bootstrap:t.bootstrap||wt,declarations:t.declarations||wt,imports:t.imports||wt,exports:t.exports||wt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&z(()=>{jt[t.id]=t.type}),e}function Nt(t,e){if(null==t)return bt;const n={};for(const r in t)if(t.hasOwnProperty(r)){let s=t[r],o=s;Array.isArray(s)&&(o=s[1],s=s[0]),n[s]=r,e&&(e[s]=o)}return n}function Pt(t){return t[Ct]||null}function Rt(t,e){const n=t[kt]||null;if(!n&&!0===e)throw new Error(`Type ${J(t)} does not have '\\u0275mod' property.`);return n}function Mt(t){return\"function\"==typeof t?t.name||t.toString():\"object\"==typeof t&&null!=t&&\"function\"==typeof t.type?t.type.name||t.type.toString():function(t){return\"string\"==typeof t?t:null==t?\"\":\"\"+t}(t)}var Ft=function(t){return t[t.Default=0]=\"Default\",t[t.Host=1]=\"Host\",t[t.Self=2]=\"Self\",t[t.SkipSelf=4]=\"SkipSelf\",t[t.Optional=8]=\"Optional\",t}({});let Vt;function Lt(t){const e=Vt;return Vt=t,e}function Bt(t,e,n){const r=et(t);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Ft.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${J(t)}]`)}const Zt={},zt=/\\n/gm,$t=\"__source\",Ut=Y({provide:String,useValue:Y});let Wt=void 0;function qt(t){const e=Wt;return Wt=t,e}function Qt(t,e=Ft.Default){if(void 0===Wt)throw new Error(\"inject() must be called from an injection context\");return null===Wt?Bt(t,void 0,e):Wt.get(t,e&Ft.Optional?null:void 0,e)}function Gt(t,e=Ft.Default){return(Vt||Qt)(mt(t),e)}function Jt(t){const e=[];for(let n=0;n<t.length;n++){const r=mt(t[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let t=void 0,n=Ft.Default;for(let e=0;e<r.length;e++){const s=r[e];s instanceof q||\"Optional\"===s.ngMetadataName||s===q?n|=Ft.Optional:s instanceof G||\"SkipSelf\"===s.ngMetadataName||s===G?n|=Ft.SkipSelf:s instanceof Q||\"Self\"===s.ngMetadataName||s===Q?n|=Ft.Self:t=s instanceof W||s===W?s.token:s}e.push(Gt(t,n))}else e.push(Gt(r))}return e}let Kt=void 0;const Yt=20;function Xt(t){return Array.isArray(t)&&\"object\"==typeof t[1]}function te(t){return Array.isArray(t)&&!0===t[1]}function ee(t){return 0!=(8&t.flags)}function ne(t){return null!==t.template}function re(t){return!!t.listen}const se={createRenderer:(t,e)=>void 0!==Kt?Kt:\"undefined\"!=typeof document?document:void 0};function oe(t){for(;Array.isArray(t);)t=t[0];return t}function ie(t,e){return oe(e[t.index])}function le(t,e){const n=e[t];return Xt(n)?n:n[0]}function ue(t){const e=function(t){return t.__ngContext__||null}(t);return e?Array.isArray(e)?e:e.lView:null}function ce(t){return 128==(128&t[2])}function ae(t,e){return null==e?null:t[e]}function he(t){t[18]=0}function de(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const fe={lFrame:Oe(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function pe(){return fe.bindingsEnabled}function _e(){return fe.lFrame.lView}function ye(){return fe.lFrame.tView}function me(){let t=ge();for(;null!==t&&64===t.type;)t=t.parent;return t}function ge(){return fe.lFrame.currentTNode}function ve(t,e){const n=fe.lFrame;n.currentTNode=t,n.isParent=e}function be(){return fe.lFrame.isParent}function we(){return fe.isInCheckNoChangesMode}function Ce(t){fe.isInCheckNoChangesMode=t}function Ee(t,e){const n=fe.lFrame;n.bindingIndex=n.bindingRootIndex=t,xe(e)}function xe(t){fe.lFrame.currentDirectiveIndex=t}function ke(t){fe.lFrame.currentQueryIndex=t}function Te(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function Se(t,e,n){if(n&Ft.SkipSelf){let r=e,s=t;for(;r=r.parent,!(null!==r||n&Ft.Host||(r=Te(s),null===r)||(s=s[15],10&r.type)););if(null===r)return!1;e=r,t=s}const r=fe.lFrame=Ae();return r.currentTNode=e,r.lView=t,!0}function Ie(t){const e=Ae(),n=t[1];fe.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function Ae(){const t=fe.lFrame,e=null===t?null:t.child;return null===e?Oe(t):e}function Oe(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function De(){const t=fe.lFrame;return fe.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const je=De;function He(){const t=De();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Ne(t){fe.lFrame.selectedIndex=t}let Pe=!0,Re=!1;function Me(){return Re=!0,Pe}function Fe(t,e){return t.hasOwnProperty(St)?t[St]:null}class Ve extends Error{constructor(t,e){super(function(t,e){return`${t?`NG0${t}: `:\"\"}${e}`}(t,e)),this.code=t}}function Le(t,e){const n=e?\" in \"+e:\"\";throw new Ve(\"201\",`No provider for ${Mt(t)} found${n}`)}class Be{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function Ze(){const t=$e(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===bt)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}}function ze(t,e,n,r){const s=$e(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:bt,current:null}),o=s.current||(s.current={}),i=s.previous,l=this.declaredInputs[n],u=i[l];o[l]=new Be(u&&u.currentValue,e,i===bt),t[r]=e}function $e(t){return t.__ngSimpleChanges__||null}function Ue(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n<r;n++){const e=t.data[n].type.prototype,{ngAfterContentInit:r,ngAfterContentChecked:s,ngAfterViewInit:o,ngAfterViewChecked:i,ngOnDestroy:l}=e;r&&(t.contentHooks||(t.contentHooks=[])).push(-n,r),s&&((t.contentHooks||(t.contentHooks=[])).push(n,s),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,s)),o&&(t.viewHooks||(t.viewHooks=[])).push(-n,o),i&&((t.viewHooks||(t.viewHooks=[])).push(n,i),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,i)),null!=l&&(t.destroyHooks||(t.destroyHooks=[])).push(n,l)}}function We(t,e,n){Ge(t,e,3,n)}function qe(t,e,n,r){(3&t[2])===n&&Ge(t,e,n,r)}function Qe(t,e){let n=t[2];(3&n)===e&&(n&=2047,n+=1,t[2]=n)}function Ge(t,e,n,r){const s=null!=r?r:-1;let o=0;for(let i=void 0!==r?65535&t[18]:0;i<e.length;i++)if(\"number\"==typeof e[i+1]){if(o=e[i],null!=r&&o>=r)break}else e[i]<0&&(t[18]+=65536),(o<s||-1==s)&&(Je(t,n,e,i),t[18]=(4294901760&t[18])+i+2),i++}function Je(t,e,n,r){const s=n[r]<0,o=n[r+1],i=t[s?-n[r]:n[r]];s?t[2]>>11<t[18]>>16&&(3&t[2])===e&&(t[2]+=2048,o.call(i)):o.call(i)}const Ke=-1;class Ye{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}function Xe(t,e,n){const r=re(t);let s=0;for(;s<n.length;){const o=n[s];if(\"number\"==typeof o){if(0!==o)break;s++;const i=n[s++],l=n[s++],u=n[s++];r?t.setAttribute(e,l,u,i):e.setAttributeNS(i,l,u)}else{const i=o,l=n[++s];64===i.charCodeAt(0)?r&&t.setProperty(e,i,l):r?t.setAttribute(e,i,l):e.setAttribute(i,l),s++}}return s}function tn(t,e){if(null===e||0===e.length);else if(null===t||0===t.length)t=e.slice();else{let n=-1;for(let r=0;r<e.length;r++){const s=e[r];\"number\"==typeof s?n=s:0===n||en(t,n,s,null,-1===n||2===n?e[++r]:null)}}return t}function en(t,e,n,r,s){let o=0,i=t.length;if(-1===e)i=-1;else for(;o<t.length;){const n=t[o++];if(\"number\"==typeof n){if(n===e){i=-1;break}if(n>e){i=o-1;break}}}for(;o<t.length;){const e=t[o];if(\"number\"==typeof e)break;if(e===n){if(null===r)return void(null!==s&&(t[o+1]=s));if(r===t[o+1])return void(t[o+2]=s)}o++,null!==r&&o++,null!==s&&o++}-1!==i&&(t.splice(i,0,e),o=i+1),t.splice(o++,0,n),null!==r&&t.splice(o++,0,r),null!==s&&t.splice(o++,0,s)}function nn(t){return 32767&t}function rn(t,e){let n=t>>16,r=e;for(;n>0;)r=r[15],n--;return r}let sn=!0;function on(t){const e=sn;return sn=t,e}let ln=0;function un(t,e){const n=an(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,cn(r.data,t),cn(e,null),cn(r.blueprint,null));const s=hn(t,e),o=t.injectorIndex;if(s!==Ke){const t=nn(s),n=rn(s,e),r=n[1].data;for(let s=0;s<8;s++)e[o+s]=n[t+s]|r[t+s]}return e[o+8]=s,o}function cn(t,e){t.push(0,0,0,0,0,0,0,0,e)}function an(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function hn(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,s=e;for(;null!==s;){const t=s[1],e=t.type;if(r=2===e?t.declTNode:1===e?s[6]:null,null===r)return Ke;if(n++,s=s[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return Ke}function dn(t,e,n){!function(t,e,n){let r;\"string\"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(It)&&(r=n[It]),null==r&&(r=n[It]=ln++);const s=255&r,o=1<<s,i=64&s,l=32&s,u=e.data;128&s?i?l?u[t+7]|=o:u[t+6]|=o:l?u[t+5]|=o:u[t+4]|=o:i?l?u[t+3]|=o:u[t+2]|=o:l?u[t+1]|=o:u[t]|=o}(t,e,n)}function fn(t,e,n){if(n&Ft.Optional)return t;Le(e,\"NodeInjector\")}function pn(t,e,n,r){if(n&Ft.Optional&&void 0===r&&(r=null),0==(n&(Ft.Self|Ft.Host))){const s=t[9],o=Lt(void 0);try{return s?s.get(e,r,n&Ft.Optional):Bt(e,r,n&Ft.Optional)}finally{Lt(o)}}return fn(r,e,n)}const _n={};function yn(){return new wn(me(),_e())}function mn(t,e,n,r,s,o){const i=e[1],l=i.data[t+8],u=function(t,e,n,r,s){const o=t.providerIndexes,i=e.data,l=1048575&o,u=t.directiveStart,c=o>>20,a=s?l+c:t.directiveEnd;for(let h=r?l:l+c;h<a;h++){const t=i[h];if(h<u&&n===t||h>=u&&t.type===n)return h}if(s){const t=i[u];if(t&&ne(t)&&t.type===n)return u}return null}(l,i,n,null==r?function(t){return 2==(2&t.flags)}(l)&&sn:r!=i&&0!=(3&l.type),s&Ft.Host&&o===l);return null!==u?gn(e,i,u,l):_n}function gn(t,e,n,r){let s=t[n];const o=e.data;if(s instanceof Ye){const i=s;i.resolving&&function(t,e){throw new Ve(\"200\",\"Circular dependency in DI detected for \"+t)}(Mt(o[n]));const l=on(i.canSeeViewProviders);i.resolving=!0;const u=i.injectImpl?Lt(i.injectImpl):null;Se(t,r,Ft.Default);try{s=t[n]=i.factory(void 0,o,t,r),e.firstCreatePass&&n>=r.directiveStart&&function(t,e,n){const{ngOnChanges:r,ngOnInit:s,ngDoCheck:o}=e.type.prototype;if(r){const r=((i=e).type.prototype.ngOnChanges&&(i.setInput=ze),Ze);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,r)}var i;s&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,s),o&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,o))}(n,o[n],e)}finally{null!==u&&Lt(u),on(l),i.resolving=!1,je()}}return s}function vn(t,e,n){const r=64&t,s=32&t;let o;return o=128&t?r?s?n[e+7]:n[e+6]:s?n[e+5]:n[e+4]:r?s?n[e+3]:n[e+2]:s?n[e+1]:n[e],!!(o&1<<t)}function bn(t,e){return!(t&Ft.Self||t&Ft.Host&&e)}class wn{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return function(t,e,n,r=Ft.Default,s){if(null!==t){const o=function(t){if(\"string\"==typeof t)return t.charCodeAt(0)||0;const e=t.hasOwnProperty(It)?t[It]:void 0;return\"number\"==typeof e?e>=0?255&e:yn:e}(n);if(\"function\"==typeof o){if(!Se(e,t,r))return r&Ft.Host?fn(s,n,r):pn(e,n,r,s);try{const t=o();if(null!=t||r&Ft.Optional)return t;Le(n)}finally{je()}}else if(\"number\"==typeof o){let s=null,i=an(t,e),l=Ke,u=r&Ft.Host?e[16][6]:null;for((-1===i||r&Ft.SkipSelf)&&(l=-1===i?hn(t,e):e[i+8],l!==Ke&&bn(r,!1)?(s=e[1],i=nn(l),e=rn(l,e)):i=-1);-1!==i;){const t=e[1];if(vn(o,i,t.data)){const t=mn(i,e,n,s,r,u);if(t!==_n)return t}l=e[i+8],l!==Ke&&bn(r,e[1].data[i+8]===u)&&vn(o,i,e)?(s=t,i=nn(l),e=rn(l,e)):i=-1}}}return pn(e,n,r,s)}(this._tNode,this._lView,t,void 0,e)}}function Cn(t){return t.ngDebugContext}function En(t){return t.ngOriginalError}function xn(t,...e){t.error(...e)}class kn{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),r=function(t){return t.ngErrorLogger||xn}(t);r(this._console,\"ERROR\",t),e&&r(this._console,\"ORIGINAL ERROR\",e),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(t){return t?Cn(t)?Cn(t):this._findContext(En(t)):null}_findOriginalError(t){let e=En(t);for(;e&&En(e);)e=En(e);return e}}function Tn(t,e){t.__ngContext__=e}const Sn=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(pt))();function In(t){return t instanceof Function?t():t}var An=function(t){return t[t.Important=1]=\"Important\",t[t.DashCase=2]=\"DashCase\",t}({});function On(t,e){return(void 0)(t,e)}function Dn(t){const e=t[3];return te(e)?e[3]:e}function jn(t){return Nn(t[13])}function Hn(t){return Nn(t[4])}function Nn(t){for(;null!==t&&!te(t);)t=t[4];return t}function Pn(t,e,n,r,s){if(null!=r){let o,i=!1;te(r)?o=r:Xt(r)&&(i=!0,r=r[0]);const l=oe(r);0===t&&null!==n?null==s?Vn(e,n,l):Fn(e,n,l,s||null,!0):1===t&&null!==n?Fn(e,n,l,s||null,!0):2===t?function(t,e,n){const r=function(t,e){return re(t)?t.parentNode(e):e.parentNode}(t,e);r&&function(t,e,n,r){re(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,l,i):3===t&&e.destroyNode(l),null!=o&&function(t,e,n,r,s){const o=n[7];o!==oe(n)&&Pn(e,t,r,o,s);for(let i=10;i<n.length;i++){const s=n[i];zn(s[1],s,t,e,r,o)}}(e,t,o,n,s)}}function Rn(t,e,n){return re(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Mn(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r<n.length;r+=2){const t=e[n[r]];if(!(t instanceof Ye)){const e=n[r+1];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)e[n+1].call(t[e[n]]);else e.call(t)}}}(t,e),function(t,e){const n=t.cleanup;if(null!==n){const t=e[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const s=n[r+1],o=\"function\"==typeof s?s(e):oe(e[s]),i=t[n[r+2]],l=n[r+3];\"boolean\"==typeof l?o.removeEventListener(n[r],i,l):l>=0?t[l]():t[-l].unsubscribe(),r+=2}else n[r].call(t[n[r+1]]);e[7]=null}}(t,e),1===e[1].type&&re(e[11])&&e[11].destroy();const n=e[17];if(null!==n&&te(e[3])){n!==e[3]&&function(t,e){const n=t[9],r=n.indexOf(e),s=e[3];1024&e[2]&&(e[2]&=-1025,de(s,-1)),n.splice(r,1)}(n,e);const r=e[19];null!==r&&r.detachView(t)}}}function Fn(t,e,n,r,s){re(t)?t.insertBefore(e,n,r,s):e.insertBefore(n,r,s)}function Vn(t,e,n){re(t)?t.appendChild(e,n):e.appendChild(n)}function Ln(t,e,n,r,s){null!==r?Fn(t,e,n,r,s):Vn(t,e,n)}function Bn(t,e,n,r){const s=function(t,e,n){return function(t,e,n){let r=e;for(;null!==r&&40&r.type;)r=(e=r).parent;if(null===r)return n[0];if(2&r.flags){const e=t.data[r.directiveStart].encapsulation;if(e===vt.None||e===vt.Emulated)return null}return ie(r,n)}(t,e.parent,n)}(t,r,e),o=e[11],i=function(t,e,n){return function(t,e,n){return 40&t.type?ie(t,n):null}(t,0,n)}(r.parent||e[6],0,e);if(null!=s)if(Array.isArray(n))for(let l=0;l<n.length;l++)Ln(o,s,n[l],i,!1);else Ln(o,s,n,i,!1)}function Zn(t,e,n,r,s,o,i){for(;null!=n;){const l=r[n.index],u=n.type;if(i&&0===e&&(l&&Tn(oe(l),r),n.flags|=4),64!=(64&n.flags))if(8&u)Zn(t,e,n.child,r,s,o,!1),Pn(e,t,s,l,o);else if(32&u){const i=On(n,r);let u;for(;u=i();)Pn(e,t,s,u,o);Pn(e,t,s,l,o)}else 16&u?$n(t,e,r,n,s,o):Pn(e,t,s,l,o);n=i?n.projectionNext:n.next}}function zn(t,e,n,r,s,o){Zn(n,r,t.firstChild,e,s,o,!1)}function $n(t,e,n,r,s,o){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)Pn(e,t,s,l[u],o);else Zn(t,e,l,i[3],s,o,!0)}function Un(t,e,n){re(t)?t.setAttribute(e,\"style\",n):e.style.cssText=n}function Wn(t,e,n){re(t)?\"\"===n?t.removeAttribute(e,\"class\"):t.setAttribute(e,\"class\",n):e.className=n}function qn(t,e,n){let r=t.length;for(;;){const s=t.indexOf(e,n);if(-1===s)return s;if(0===s||t.charCodeAt(s-1)<=32){const n=e.length;if(s+n===r||t.charCodeAt(s+n)<=32)return s}n=s+1}}const Qn=\"ng-template\";function Gn(t,e,n){let r=0;for(;r<t.length;){let s=t[r++];if(n&&\"class\"===s){if(s=t[r],-1!==qn(s.toLowerCase(),e,0))return!0}else if(1===s){for(;r<t.length&&\"string\"==typeof(s=t[r++]);)if(s.toLowerCase()===e)return!0;return!1}}return!1}function Jn(t){return 4===t.type&&t.value!==Qn}function Kn(t,e,n){return e===(4!==t.type||n?t.value:Qn)}function Yn(t,e,n){let r=4;const s=t.attrs||[],o=function(t){for(let n=0;n<t.length;n++)if(3===(e=t[n])||4===e||6===e)return n;var e;return t.length}(s);let i=!1;for(let l=0;l<e.length;l++){const u=e[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!Kn(t,u,n)||\"\"===u&&1===e.length){if(Xn(r))return!1;i=!0}}else{const c=8&r?u:e[++l];if(8&r&&null!==t.attrs){if(!Gn(t.attrs,c,n)){if(Xn(r))return!1;i=!0}continue}const a=tr(8&r?\"class\":u,s,Jn(t),n);if(-1===a){if(Xn(r))return!1;i=!0;continue}if(\"\"!==c){let t;t=a>o?\"\":s[a+1].toLowerCase();const e=8&r?t:null;if(e&&-1!==qn(e,c,0)||2&r&&c!==t){if(Xn(r))return!1;i=!0}}}}else{if(!i&&!Xn(r)&&!Xn(u))return!1;if(i&&Xn(u))continue;i=!1,r=u|1&r}}return Xn(r)||i}function Xn(t){return 0==(1&t)}function tr(t,e,n,r){if(null===e)return-1;let s=0;if(r||!n){let n=!1;for(;s<e.length;){const r=e[s];if(r===t)return s;if(3===r||6===r)n=!0;else{if(1===r||2===r){let t=e[++s];for(;\"string\"==typeof t;)t=e[++s];continue}if(4===r)break;if(0===r){s+=4;continue}}s+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){const r=t[n];if(\"number\"==typeof r)return-1;if(r===e)return n;n++}return-1}(e,t)}function er(t,e,n=!1){for(let r=0;r<e.length;r++)if(Yn(t,e[r],n))return!0;return!1}function nr(t,e){return t?\":not(\"+e.trim()+\")\":e}function rr(t){let e=t[0],n=1,r=2,s=\"\",o=!1;for(;n<t.length;){let i=t[n];if(\"string\"==typeof i)if(2&r){const e=t[++n];s+=\"[\"+i+(e.length>0?'=\"'+e+'\"':\"\")+\"]\"}else 8&r?s+=\".\"+i:4&r&&(s+=\" \"+i);else\"\"===s||Xn(i)||(e+=nr(o,s),s=\"\"),r=i,o=o||!Xn(r);n++}return\"\"!==s&&(e+=nr(o,s)),e}const sr={};function or(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const s=n[r],o=n[r+1];if(-1!==o){const n=t.data[o];ke(s),n.contentQueries(2,e[o],o)}}}function ir(t,e,n,r,s,o,i,l,u,c){const a=e.blueprint.slice();return a[0]=s,a[2]=140|r,he(a),a[3]=a[15]=t,a[8]=n,a[10]=i||t&&t[10],a[11]=l||t&&t[11],a[12]=u||t&&t[12]||null,a[9]=c||t&&t[9]||null,a[6]=o,a[16]=2==e.type?t[16]:a,a}function lr(t,e,n,r,s){let o=t.data[e];if(null===o)o=function(t,e,n,r,s){const o=ge(),i=be(),l=t.data[e]=function(t,e,n,r,s,o){return{type:n,index:r,insertBeforeIndex:null,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:s,attrs:o,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,i?o:o&&o.parent,n,e,r,s);return null===t.firstChild&&(t.firstChild=l),null!==o&&(i?null==o.child&&null!==l.parent&&(o.child=l):null===o.next&&(o.next=l)),l}(t,e,n,r,s),fe.lFrame.inI18n&&(o.flags|=64);else if(64&o.type){o.type=n,o.value=r,o.attrs=s;const t=function(){const t=fe.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}();o.injectorIndex=null===t?-1:t.injectorIndex}return ve(o,!0),o}function ur(t,e,n,r){if(0===n)return-1;const s=e.length;for(let o=0;o<n;o++)e.push(r),t.blueprint.push(r),t.data.push(null);return s}function cr(t,e,n){Ie(e);try{const r=t.viewQuery;null!==r&&Dr(1,r,n);const s=t.template;null!==s&&dr(t,e,s,1,n),t.firstCreatePass&&(t.firstCreatePass=!1),t.staticContentQueries&&or(t,e),t.staticViewQueries&&Dr(2,t.viewQuery,n);const o=t.components;null!==o&&function(t,e){for(let n=0;n<e.length;n++)Sr(t,e[n])}(e,o)}catch(r){throw t.firstCreatePass&&(t.incompleteFirstPass=!0),r}finally{e[2]&=-5,He()}}function ar(t,e,n,r){const s=e[2];if(256==(256&s))return;Ie(e);const o=we();try{he(e),fe.lFrame.bindingIndex=t.bindingStartIndex,null!==n&&dr(t,e,n,2,r);const i=3==(3&s);if(!o)if(i){const n=t.preOrderCheckHooks;null!==n&&We(e,n,null)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,null),Qe(e,0)}if(function(t){for(let e=jn(t);null!==e;e=Hn(e)){if(!e[2])continue;const t=e[9];for(let e=0;e<t.length;e++){const n=t[e],r=n[3];0==(1024&n[2])&&de(r,1),n[2]|=1024}}}(e),function(t){for(let e=jn(t);null!==e;e=Hn(e))for(let t=10;t<e.length;t++){const n=e[t],r=n[1];ce(n)&&ar(r,n,r.template,n[8])}}(e),null!==t.contentQueries&&or(t,e),!o)if(i){const n=t.contentCheckHooks;null!==n&&We(e,n)}else{const n=t.contentHooks;null!==n&&qe(e,n,1),Qe(e,1)}!function(t,e){const n=t.hostBindingOpCodes;if(null!==n)try{for(let t=0;t<n.length;t++){const r=n[t];if(r<0)Ne(~r);else{const s=r,o=n[++t],i=n[++t];Ee(o,s),i(2,e[s])}}}finally{Ne(-1)}}(t,e);const l=t.components;null!==l&&function(t,e){for(let n=0;n<e.length;n++)kr(t,e[n])}(e,l);const u=t.viewQuery;if(null!==u&&Dr(2,u,r),!o)if(i){const n=t.viewCheckHooks;null!==n&&We(e,n)}else{const n=t.viewHooks;null!==n&&qe(e,n,2),Qe(e,2)}!0===t.firstUpdatePass&&(t.firstUpdatePass=!1),o||(e[2]&=-73),1024&e[2]&&(e[2]&=-1025,de(e[3],-1))}finally{He()}}function hr(t,e,n,r){const s=e[10],o=!we(),i=4==(4&e[2]);try{o&&!i&&s.begin&&s.begin(),i&&cr(t,e,r),ar(t,e,n,r)}finally{o&&!i&&s.end&&s.end()}}function dr(t,e,n,r,s){const o=fe.lFrame.selectedIndex;try{Ne(-1),2&r&&e.length>Yt&&function(t,e,n,r){if(!r)if(3==(3&e[2])){const n=t.preOrderCheckHooks;null!==n&&We(e,n,20)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,20)}Ne(20)}(t,e,0,we()),n(r,s)}finally{Ne(o)}}function fr(t){const e=t.tView;return null===e||e.incompleteFirstPass?t.tView=pr(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts):e}function pr(t,e,n,r,s,o,i,l,u,c){const a=Yt+r,h=a+s,d=function(t,e){const n=[];for(let r=0;r<e;r++)n.push(r<t?null:sr);return n}(a,h),f=\"function\"==typeof c?c():c;return d[1]={type:t,blueprint:d,template:n,queries:null,viewQuery:l,declTNode:e,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof o?o():o,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:f,incompleteFirstPass:!1}}function _r(t,e,n){for(let r in t)if(t.hasOwnProperty(r)){const s=t[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(e,s):n[r]=[e,s]}return n}function yr(t,e,n,r,s,o){const i=o.hostBindings;if(i){let n=t.hostBindingOpCodes;null===n&&(n=t.hostBindingOpCodes=[]);const o=~e.index;(function(t){let e=t.length;for(;e>0;){const n=t[--e];if(\"number\"==typeof n&&n<0)return n}return 0})(n)!=o&&n.push(o),n.push(r,s,i)}}function mr(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function gr(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function vr(t,e,n){if(n){if(e.exportAs)for(let r=0;r<e.exportAs.length;r++)n[e.exportAs[r]]=t;ne(e)&&(n[\"\"]=t)}}function br(t,e,n){t.flags|=1,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function wr(t,e,n,r,s){t.data[r]=s;const o=s.factory||(s.factory=Fe(s.type)),i=new Ye(o,ne(s),null);t.blueprint[r]=i,n[r]=i,yr(t,e,0,r,ur(t,n,s.hostVars,sr),s)}function Cr(t,e,n){const r=ie(e,t),s=fr(n),o=t[10],i=Ir(t,ir(t,s,null,n.onPush?64:16,r,e,o,o.createRenderer(r,n),null,null));t[e.index]=i}function Er(t,e,n,r,s,o){const i=o[e];if(null!==i){const t=r.setInput;for(let e=0;e<i.length;){const s=i[e++],o=i[e++],l=i[e++];null!==t?r.setInput(n,l,s,o):n[o]=l}}}function xr(t,e){let n=null,r=0;for(;r<e.length;){const s=e[r];if(0!==s)if(5!==s){if(\"number\"==typeof s)break;t.hasOwnProperty(s)&&(null===n&&(n=[]),n.push(s,t[s],e[r+1])),r+=2}else r+=2;else r+=4}return n}function kr(t,e){const n=le(e,t);if(ce(n)){const t=n[1];80&n[2]?ar(t,n,t.template,n[8]):n[5]>0&&Tr(n)}}function Tr(t){for(let n=jn(t);null!==n;n=Hn(n))for(let t=10;t<n.length;t++){const e=n[t];if(1024&e[2]){const t=e[1];ar(t,e,t.template,e[8])}else e[5]>0&&Tr(e)}const e=t[1].components;if(null!==e)for(let n=0;n<e.length;n++){const r=le(e[n],t);ce(r)&&r[5]>0&&Tr(r)}}function Sr(t,e){const n=le(e,t),r=n[1];!function(t,e){for(let n=e.length;n<t.blueprint.length;n++)e.push(t.blueprint[n])}(r,n),cr(r,n,n[8])}function Ir(t,e){return t[13]?t[14][4]=e:t[13]=e,t[14]=e,e}function Ar(t,e,n){const r=e[10];r.begin&&r.begin();try{ar(t,e,t.template,n)}catch(s){throw function(t,e){const n=t[9],r=n?n.get(kn,null):null;r&&r.handleError(e)}(e,s),s}finally{r.end&&r.end()}}function Or(t){!function(t){for(let e=0;e<t.components.length;e++){const n=t.components[e],r=ue(n),s=r[1];hr(s,r,s.template,n)}}(t[8])}function Dr(t,e,n){ke(0),e(t,n)}const jr=(()=>Promise.resolve(null))();function Hr(t,e,n){let r=n?t.styles:null,s=n?t.classes:null,o=0;if(null!==e)for(let i=0;i<e.length;i++){const t=e[i];\"number\"==typeof t?o=t:1==o?s=K(s,t):2==o&&(r=K(r,t+\": \"+e[++i]+\";\"))}n?t.styles=r:t.stylesWithoutHost=r,n?t.classes=s:t.classesWithoutHost=s}const Nr=new ut(\"INJECTOR\",-1);class Pr{get(t,e=Zt){if(e===Zt){const e=new Error(`NullInjectorError: No provider for ${J(t)}!`);throw e.name=\"NullInjectorError\",e}return e}}const Rr=new ut(\"Set Injector scope.\"),Mr={},Fr={},Vr=[];let Lr=void 0;function Br(){return void 0===Lr&&(Lr=new Pr),Lr}function Zr(t,e=null,n=null,r){return new zr(t,n,e||Br(),r)}class zr{constructor(t,e,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];e&&gt(e,n=>this.processProvider(n,t,e)),gt([t],t=>this.processInjectorType(t,[],s)),this.records.set(Nr,Ur(void 0,this));const o=this.records.get(Rr);this.scope=null!=o?o.value:null,this.source=r||(\"object\"==typeof t?null:J(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Zt,n=Ft.Default){this.assertNotDestroyed();const r=qt(this);try{if(!(n&Ft.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=(\"function\"==typeof(s=t)||\"object\"==typeof s&&s instanceof ut)&&et(t);e=n&&this.injectableDefInScope(n)?Ur($r(t),Mr):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(n&Ft.Self?Br():this.parent).get(t,e=n&Ft.Optional&&e===Zt?null:e)}catch(o){if(\"NullInjectorError\"===o.name){if((o.ngTempTokenPath=o.ngTempTokenPath||[]).unshift(J(t)),r)throw o;return function(t,e,n,r){const s=t.ngTempTokenPath;throw e[$t]&&s.unshift(e[$t]),t.message=function(t,e,n,r=null){t=t&&\"\\n\"===t.charAt(0)&&\"\\u0275\"==t.charAt(1)?t.substr(2):t;let s=J(e);if(Array.isArray(e))s=e.map(J).join(\" -> \");else if(\"object\"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];t.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):J(r)))}s=`{${t.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${s}]: ${t.replace(zt,\"\\n  \")}`}(\"\\n\"+t.message,s,n,r),t.ngTokenPath=s,t.ngTempTokenPath=null,t}(o,t,\"R3InjectorError\",this.source)}throw o}finally{qt(r)}var s}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((e,n)=>t.push(J(n))),`R3Injector[${t.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(t,e,n){if(!(t=mt(t)))return!1;let r=rt(t);const s=null==r&&t.ngModule||void 0,o=void 0===s?t:s,i=-1!==n.indexOf(o);if(void 0!==s&&(r=rt(s)),null==r)return!1;if(null!=r.imports&&!i){let t;n.push(o);try{gt(r.imports,r=>{this.processInjectorType(r,e,n)&&(void 0===t&&(t=[]),t.push(r))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:r}=t[e];gt(r,t=>this.processProvider(t,n,r||Vr))}}this.injectorDefTypes.add(o),this.records.set(o,Ur(r.factory,Mr));const l=r.providers;if(null!=l&&!i){const e=t;gt(l,t=>this.processProvider(t,e,l))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,n){let r=qr(t=mt(t))?t:mt(t&&t.provide);const s=function(t,e,n){return Wr(t)?Ur(void 0,t.useValue):Ur(function(t,e,n){let r=void 0;if(qr(t)){const e=mt(t);return Fe(e)||$r(e)}if(Wr(t))r=()=>mt(t.useValue);else if((s=t)&&s.useFactory)r=()=>t.useFactory(...Jt(t.deps||[]));else if(function(t){return!(!t||!t.useExisting)}(t))r=()=>Gt(mt(t.useExisting));else{const e=mt(t&&(t.useClass||t.provide));if(!function(t){return!!t.deps}(t))return Fe(e)||$r(e);r=()=>new e(...Jt(t.deps))}var s;return r}(t),Mr)}(t);if(qr(t)||!0!==t.multi)this.records.get(r);else{let e=this.records.get(r);e||(e=Ur(void 0,Mr,!0),e.factory=()=>Jt(e.multi),this.records.set(r,e)),r=t,e.multi.push(t)}this.records.set(r,s)}hydrate(t,e){var n;return e.value===Mr&&(e.value=Fr,e.value=e.factory()),\"object\"==typeof e.value&&e.value&&null!==(n=e.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&(\"string\"==typeof t.providedIn?\"any\"===t.providedIn||t.providedIn===this.scope:this.injectorDefTypes.has(t.providedIn))}}function $r(t){const e=et(t),n=null!==e?e.factory:Fe(t);if(null!==n)return n;const r=rt(t);if(null!==r)return r.factory;if(t instanceof ut)throw new Error(`Token ${J(t)} is missing a \\u0275prov definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=function(t,e){const n=[];for(let r=0;r<t;r++)n.push(\"?\");return n}(e);throw new Error(`Can't resolve all parameters for ${J(t)}: (${n.join(\", \")}).`)}const n=function(t){const e=t&&(t[st]||t[it]);if(e){const n=function(t){if(t.hasOwnProperty(\"name\"))return t.name;const e=(\"\"+t).match(/^function\\s*([^\\s(]+)/);return null===e?\"\":e[1]}(t);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\nThis will become an error in a future version of Angular. Please add @Injectable() to the \"${n}\" class.`),e}return null}(t);return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error(\"unreachable\")}function Ur(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Wr(t){return null!==t&&\"object\"==typeof t&&Ut in t}function qr(t){return\"function\"==typeof t}const Qr=function(t,e,n){return function(t,e=null,n=null,r){const s=Zr(t,e,n,r);return s._resolveInjectorDefTypes(),s}({name:n},e,t,n)};let Gr=(()=>{class t{static create(t,e){return Array.isArray(t)?Qr(t,e,\"\"):Qr(t.providers,t.parent,t.name||\"\")}}return t.THROW_IF_NOT_FOUND=Zt,t.NULL=new Pr,t.\\u0275prov=X({token:t,providedIn:\"any\",factory:()=>Gt(Nr)}),t.__NG_ELEMENT_ID__=-1,t})();function Jr(t,e){Ue(ue(t)[1],me())}let Kr=null;function Yr(){if(!Kr){const t=pt.Symbol;if(t&&t.iterator)Kr=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Kr=n)}}}return Kr}function Xr(t){return!!ts(t)&&(Array.isArray(t)||!(t instanceof Map)&&Yr()in t)}function ts(t){return null!==t&&(\"function\"==typeof t||\"object\"==typeof t)}function es(t,e,n,r,s){const o=s?\"class\":\"style\";!function(t,e,n,r,s){for(let o=0;o<n.length;){const i=n[o++],l=n[o++],u=e[i],c=t.data[i];null!==c.setInput?c.setInput(u,s,r,l):u[l]=s}}(t,n,e.inputs[o],o,r)}function ns(t,e,n,r){const s=_e(),o=ye(),i=Yt+t,l=s[11],u=s[i]=Rn(l,e,fe.lFrame.currentNamespace),c=o.firstCreatePass?function(t,e,n,r,s,o,i){const l=e.consts,u=lr(e,t,2,s,ae(l,o));return function(t,e,n,r){let s=!1;if(pe()){const o=function(t,e,n){const r=t.directiveRegistry;let s=null;if(r)for(let o=0;o<r.length;o++){const i=r[o];er(n,i.selectors,!1)&&(s||(s=[]),dn(un(n,e),t,i.type),ne(i)?(gr(t,n),s.unshift(i)):s.push(i))}return s}(t,e,n),i=null===r?null:{\"\":-1};if(null!==o){s=!0,br(n,t.data.length,o.length);for(let t=0;t<o.length;t++){const e=o[t];e.providersResolver&&e.providersResolver(e)}let r=!1,l=!1,u=ur(t,e,o.length,null);for(let s=0;s<o.length;s++){const c=o[s];n.mergedAttrs=tn(n.mergedAttrs,c.hostAttrs),wr(t,n,e,u,c),vr(u,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128);const a=c.type.prototype;!r&&(a.ngOnChanges||a.ngOnInit||a.ngDoCheck)&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n.index),r=!0),l||!a.ngOnChanges&&!a.ngDoCheck||((t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n.index),l=!0),u++}!function(t,e){const n=e.directiveEnd,r=t.data,s=e.attrs,o=[];let i=null,l=null;for(let u=e.directiveStart;u<n;u++){const t=r[u],n=t.inputs,c=null===s||Jn(e)?null:xr(n,s);o.push(c),i=_r(n,u,i),l=_r(t.outputs,u,l)}null!==i&&(i.hasOwnProperty(\"class\")&&(e.flags|=16),i.hasOwnProperty(\"style\")&&(e.flags|=32)),e.initialInputs=o,e.inputs=i,e.outputs=l}(t,n)}i&&function(t,e,n){if(e){const r=t.localNames=[];for(let t=0;t<e.length;t+=2){const s=n[e[t+1]];if(null==s)throw new Ve(\"301\",`Export of name '${e[t+1]}' not found!`);r.push(e[t],s)}}}(n,r,i)}n.mergedAttrs=tn(n.mergedAttrs,n.attrs)}(e,n,u,ae(l,i)),null!==u.attrs&&Hr(u,u.attrs,!1),null!==u.mergedAttrs&&Hr(u,u.mergedAttrs,!0),null!==e.queries&&e.queries.elementStart(e,u),u}(i,o,s,0,e,n,r):o.data[i];ve(c,!0);const a=c.mergedAttrs;null!==a&&Xe(l,u,a);const h=c.classes;null!==h&&Wn(l,u,h);const d=c.styles;null!==d&&Un(l,u,d),64!=(64&c.flags)&&Bn(o,s,u,c),0===fe.lFrame.elementDepthCount&&Tn(u,s),fe.lFrame.elementDepthCount++,function(t){return 1==(1&t.flags)}(c)&&(function(t,e,n){pe()&&(function(t,e,n,r){const s=n.directiveStart,o=n.directiveEnd;t.firstCreatePass||un(n,e),Tn(r,e);const i=n.initialInputs;for(let l=s;l<o;l++){const r=t.data[l],o=ne(r);o&&Cr(e,n,r);const u=gn(e,t,l,n);Tn(u,e),null!==i&&Er(0,l-s,u,r,0,i),o&&(le(n.index,e)[8]=u)}}(t,e,n,ie(n,e)),128==(128&n.flags)&&function(t,e,n){const r=n.directiveStart,s=n.directiveEnd,o=n.index,i=fe.lFrame.currentDirectiveIndex;try{Ne(o);for(let n=r;n<s;n++){const r=t.data[n],s=e[n];xe(n),null===r.hostBindings&&0===r.hostVars&&null===r.hostAttrs||mr(r,s)}}finally{Ne(-1),xe(i)}}(t,e,n))}(o,s,c),function(t,e,n){if(ee(e)){const r=e.directiveEnd;for(let s=e.directiveStart;s<r;s++){const e=t.data[s];e.contentQueries&&e.contentQueries(1,n[s],s)}}}(o,c,s)),null!==r&&function(t,e,n=ie){const r=e.localNames;if(null!==r){let s=e.index+1;for(let o=0;o<r.length;o+=2){const i=r[o+1],l=-1===i?n(e,t):t[i];t[s++]=l}}}(s,c)}function rs(t){return!!t&&\"function\"==typeof t.then}const ss=void 0;var os=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],ss],[[\"AM\",\"PM\"],ss,ss],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],ss,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],ss,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",ss,\"{1} 'at' {0}\",ss],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},\"ltr\",function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===e&&0===n?1:5}];let is={};function ls(t){return t in is||(is[t]=pt.ng&&pt.ng.common&&pt.ng.common.locales&&pt.ng.common.locales[t]),is[t]}var us=function(t){return t[t.LocaleId=0]=\"LocaleId\",t[t.DayPeriodsFormat=1]=\"DayPeriodsFormat\",t[t.DayPeriodsStandalone=2]=\"DayPeriodsStandalone\",t[t.DaysFormat=3]=\"DaysFormat\",t[t.DaysStandalone=4]=\"DaysStandalone\",t[t.MonthsFormat=5]=\"MonthsFormat\",t[t.MonthsStandalone=6]=\"MonthsStandalone\",t[t.Eras=7]=\"Eras\",t[t.FirstDayOfWeek=8]=\"FirstDayOfWeek\",t[t.WeekendRange=9]=\"WeekendRange\",t[t.DateFormat=10]=\"DateFormat\",t[t.TimeFormat=11]=\"TimeFormat\",t[t.DateTimeFormat=12]=\"DateTimeFormat\",t[t.NumberSymbols=13]=\"NumberSymbols\",t[t.NumberFormats=14]=\"NumberFormats\",t[t.CurrencyCode=15]=\"CurrencyCode\",t[t.CurrencySymbol=16]=\"CurrencySymbol\",t[t.CurrencyName=17]=\"CurrencyName\",t[t.Currencies=18]=\"Currencies\",t[t.Directionality=19]=\"Directionality\",t[t.PluralCase=20]=\"PluralCase\",t[t.ExtraData=21]=\"ExtraData\",t}({});const cs=\"en-US\";let as=cs;function hs(t){var e,n;n=\"Expected localeId to be defined\",null==(e=t)&&function(t,e,n,r){throw new Error(\"ASSERTION ERROR: \"+t+` [Expected=> null != ${e} <=Actual]`)}(n,e),\"string\"==typeof t&&(as=t.toLowerCase().replace(/_/g,\"-\"))}class ds{}class fs{resolveComponentFactory(t){throw function(t){const e=Error(`No component factory found for ${J(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(t)}}let ps=(()=>{class t{}return t.NULL=new fs,t})();function _s(...t){}function ys(t,e){return new gs(ie(t,e))}const ms=function(){return ys(me(),_e())};let gs=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=ms,t})();class vs{}let bs=(()=>{class t{}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>null}),t})();class ws{constructor(t){this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}}const Cs=new ws(\"11.0.2\");class Es{constructor(){}supports(t){return Xr(t)}create(t){return new ks(t)}}const xs=(t,e)=>e;class ks{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||xs}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,r=0,s=null;for(;e||n;){const o=!n||e&&e.currentIndex<As(n,r,s)?e:n,i=As(o,r,s),l=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(e=e._next,null==o.previousIndex)r++;else{s||(s=[]);const t=i-r,e=l-r;if(t!=e){for(let n=0;n<t;n++){const r=n<s.length?s[n]:s[n]=0,o=r+n;e<=o&&o<t&&(s[n]=r+1)}s[o.previousIndex]=e-t}}i!==l&&t(o,i,l)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!Xr(t))throw new Error(`Error trying to diff '${J(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,r,s=this._itHead,o=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],r=this._trackByFn(e,n),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,n,r,e)),Object.is(s.item,n)||this._addIdentityChange(s,n)):(s=this._mismatch(s,n,r,e),o=!0),s=s._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[Yr()]();let r;for(;!(r=n.next()).done;)e(r.value)}}(t,t=>{r=this._trackByFn(e,t),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,t,r,e)),Object.is(s.item,t)||this._addIdentityChange(s,t)):(s=this._mismatch(s,t,r,e),o=!0),s=s._next,e++}),this.length=e;return this._truncate(s),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):t=this._addAfter(new Ts(e,n),s,r),t}_verifyReinsertion(t,e,n,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Is),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Is),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class Ts{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Ss{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class Is{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new Ss,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function As(t,e,n){const r=t.previousIndex;if(null===r)return r;let s=0;return n&&r<n.length&&(s=n[r]),r+e+s}class Os{constructor(){}supports(t){return t instanceof Map||ts(t)}create(){return new Ds}}class Ds{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||ts(t)))throw new Error(`Error trying to diff '${J(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const n=this._records.get(t);this._maybeAddToChanges(n,e);const r=n._prev,s=n._next;return r&&(r._next=s),s&&(s._prev=r),n._next=null,n._prev=null,n}const n=new js(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(n=>e(t[n],n))}}class js{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let Hs=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Es])}),t})(),Ns=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Os])}),t})();function Ps(t,e,n,r,s=!1){for(;null!==n;){const o=e[n.index];if(null!==o&&r.push(oe(o)),te(o))for(let t=10;t<o.length;t++){const e=o[t],n=e[1].firstChild;null!==n&&Ps(e[1],e,n,r)}const i=n.type;if(8&i)Ps(t,e,n.child,r);else if(32&i){const t=On(n,e);let s;for(;s=t();)r.push(s)}else if(16&i){const t=e[16],s=t[6].projection[n.projection];if(Array.isArray(s))r.push(...s);else{const e=Dn(t);Ps(e[1],e,s,r,!0)}}n=s?n.projectionNext:n.next}return r}class Rs extends class{constructor(t,e){this._lView=t,this._cdRefInjectingView=e,this._appRef=null,this._viewContainerRef=null}get rootNodes(){const t=this._lView,e=t[1];return Ps(e,t,e.firstChild,[])}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}!function(t,e){if(!(256&e[2])){const n=e[11];re(n)&&n.destroyNode&&zn(t,e,n,3,null,null),function(t){let e=t[13];if(!e)return Mn(t[1],t);for(;e;){let n=null;if(Xt(e))n=e[13];else{const t=e[10];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)Xt(e)&&Mn(e[1],e),e=e[3];null===e&&(e=t),Xt(e)&&Mn(e[1],e),n=e&&e[4]}e=n}}(e)}}(this._lView[1],this._lView)}onDestroy(t){!function(t,e,n,r){const s=(o=e)[7]||(o[7]=[]);var o;s.push(null),t.firstCreatePass&&function(t){return t.cleanup||(t.cleanup=[])}(t).push(r,s.length-1)}(this._lView[1],this._lView,0,t)}markForCheck(){!function(t){for(;t;){t[2]|=64;const e=Dn(t);if(0!=(512&t[2])&&!e)return t;t=e}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){Ar(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(t,e,n){Ce(!0);try{Ar(t,e,n)}finally{Ce(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=t}detachFromAppRef(){var t;this._appRef=null,zn(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=t}}{constructor(t){super(t),this._view=t}detectChanges(){Or(this._view)}checkNoChanges(){!function(t){Ce(!0);try{Or(t)}finally{Ce(!1)}}(this._view)}get context(){return null}}const Ms=[new Os],Fs=new Hs([new Es]),Vs=new Ns(Ms);class Ls{}const Bs={};class Zs extends ps{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=Pt(t);return new Us(e,this.ngModule)}}function zs(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const $s=new ut(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Sn});class Us extends ds{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors.map(rr).join(\",\"),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return zs(this.componentDef.inputs)}get outputs(){return zs(this.componentDef.outputs)}create(t,e,n,r){const s=(r=r||this.ngModule)?function(t,e){return{get:(n,r,s)=>{const o=t.get(n,Bs,s);return o!==Bs||r===Bs?o:e.get(n,r,s)}}}(t,r.injector):t,o=s.get(vs,se),i=s.get(bs,null),l=o.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(t,e,n){if(re(t))return t.selectRootElement(e,n===vt.ShadowDom);let r=\"string\"==typeof e?t.querySelector(e):e;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Rn(o.createRenderer(null,this.componentDef),u,function(t){const e=t.toLowerCase();return\"svg\"===e?\"http://www.w3.org/2000/svg\":\"math\"===e?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h={components:[],scheduler:Sn,clean:jr,playerHandler:null,flags:0},d=pr(0,null,null,1,0,null,null,null,null,null),f=ir(null,d,h,a,null,null,o,l,i,s);let p,_;Ie(f);try{const t=function(t,e,n,r,s,o){const i=n[1];n[20]=t;const l=lr(i,20,2,\"#host\",null),u=l.mergedAttrs=e.hostAttrs;null!==u&&(Hr(l,u,!0),null!==t&&(Xe(s,t,u),null!==l.classes&&Wn(s,t,l.classes),null!==l.styles&&Un(s,t,l.styles)));const c=r.createRenderer(t,e),a=ir(n,fr(e),null,e.onPush?64:16,n[20],l,r,c,null,null);return i.firstCreatePass&&(dn(un(l,n),i,e.type),gr(i,l),br(l,n.length,1)),Ir(n,a),n[20]=a}(c,this.componentDef,f,o,l);if(c)if(n)Xe(l,c,[\"ng-version\",Cs.full]);else{const{attrs:t,classes:e}=function(t){const e=[],n=[];let r=1,s=2;for(;r<t.length;){let o=t[r];if(\"string\"==typeof o)2===s?\"\"!==o&&e.push(o,t[++r]):8===s&&n.push(o);else{if(!Xn(s))break;s=o}r++}return{attrs:e,classes:n}}(this.componentDef.selectors[0]);t&&Xe(l,c,t),e&&e.length>0&&Wn(l,c,e.join(\" \"))}if(_=d.data[20],void 0!==e){const t=_.projection=[];for(let n=0;n<this.ngContentSelectors.length;n++){const r=e[n];t.push(null!=r?Array.from(r):null)}}p=function(t,e,n,r,s){const o=n[1],i=function(t,e,n){const r=me();t.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),wr(t,r,e,ur(t,e,1,null),n));const s=gn(e,t,r.directiveStart,r);Tn(s,e);const o=ie(r,e);return o&&Tn(o,e),s}(o,n,e);if(r.components.push(i),t[8]=i,s&&s.forEach(t=>t(i,e)),e.contentQueries){const t=me();e.contentQueries(1,i,t.directiveStart)}const l=me();return!o.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(Ne(l.index),yr(n[1],l,0,l.directiveStart,l.directiveEnd,e),mr(e,i)),i}(t,this.componentDef,f,h,[Jr]),cr(d,f,null)}finally{He()}return new Ws(this.componentType,p,ys(_,f),f,_)}}class Ws extends class{}{constructor(t,e,n,r,s){super(),this.location=n,this._rootLView=r,this._tNode=s,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new Rs(r),this.componentType=t}get injector(){return new wn(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const qs=new Map;class Qs extends Ls{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Zs(this);const n=Rt(t),r=t[Tt]||null;r&&hs(r),this._bootstrapComponents=In(n.bootstrap),this._r3Injector=Zr(t,e,[{provide:Ls,useValue:this},{provide:ps,useValue:this.componentFactoryResolver}],J(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=Gr.THROW_IF_NOT_FOUND,n=Ft.Default){return t===Gr||t===Ls||t===Nr?this:this._r3Injector.get(t,e,n)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Gs extends class{}{constructor(t){super(),this.moduleType=t,null!==Rt(t)&&function(t){const e=new Set;!function t(n){const r=Rt(n,!0),s=r.id;null!==s&&(function(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${J(e)} vs ${J(e.name)}`)}(s,qs.get(s),n),qs.set(s,n));const o=In(r.imports);for(const i of o)e.has(i)||(e.add(i),t(i))}(t)}(t)}create(t){return new Qs(this.moduleType,t)}}const Js=class extends E{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let r,s=t=>null,o=()=>null;t&&\"object\"==typeof t?(r=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(s=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(o=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(r=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(s=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(o=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,s,o);return t instanceof h&&t.add(i),i}},Ks=new ut(\"Application Initializer\");let Ys=(()=>{class t{constructor(t){this.appInits=t,this.resolve=_s,this.reject=_s,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();rs(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Ks,8))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const Xs=new ut(\"AppId\"),to={provide:Xs,useFactory:function(){return`${eo()}${eo()}${eo()}`},deps:[]};function eo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const no=new ut(\"Platform Initializer\"),ro=new ut(\"Platform ID\"),so=new ut(\"appBootstrapListener\");let oo=(()=>{class t{log(t){console.log(t)}warn(t){console.warn(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const io=new ut(\"LocaleId\"),lo=new ut(\"DefaultCurrencyCode\");class uo{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const co=function(t){return new Gs(t)},ao=co,ho=function(t){return Promise.resolve(co(t))},fo=function(t){const e=co(t),n=In(Rt(t).declarations).reduce((t,e)=>{const n=Pt(e);return n&&t.push(new Us(n)),t},[]);return new uo(e,n)},po=fo,_o=function(t){return Promise.resolve(fo(t))};let yo=(()=>{class t{constructor(){this.compileModuleSync=ao,this.compileModuleAsync=ho,this.compileModuleAndAllComponentsSync=po,this.compileModuleAndAllComponentsAsync=_o}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const mo=(()=>Promise.resolve(0))();function go(t){\"undefined\"==typeof Zone?mo.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",t)}class vo{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Js(!1),this.onMicrotaskEmpty=new Js(!1),this.onStable=new Js(!1),this.onError=new Js(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched();const n=this;n._nesting=0,n._outer=n._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(n._inner=n._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(n._inner=n._inner.fork(Zone.longStackTraceZoneSpec)),n.shouldCoalesceEventChangeDetection=e,n.lastRequestAnimationFrameId=-1,n.nativeRequestAnimationFrame=function(){let t=pt.requestAnimationFrame,e=pt.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__(\"OriginalDelegate\")];n&&(t=n);const r=e[Zone.__symbol__(\"OriginalDelegate\")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function(t){const e=!!t.shouldCoalesceEventChangeDetection&&t.nativeRequestAnimationFrame&&(()=>{!function(t){-1===t.lastRequestAnimationFrameId&&(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(pt,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask(\"fakeTopEventTask\",()=>{t.lastRequestAnimationFrameId=-1,Eo(t),Co(t)},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Eo(t))}(t)});t._inner=t._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:e},onInvokeTask:(n,r,s,o,i,l)=>{try{return xo(t),n.invokeTask(s,o,i,l)}finally{e&&\"eventTask\"===o.type&&e(),ko(t)}},onInvoke:(e,n,r,s,o,i,l)=>{try{return xo(t),e.invoke(r,s,o,i,l)}finally{ko(t)}},onHasTask:(e,n,r,s)=>{e.hasTask(r,s),n===r&&(\"microTask\"==s.change?(t._hasPendingMicrotasks=s.microTask,Eo(t),Co(t)):\"macroTask\"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,n,r,s)=>(e.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(n)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!vo.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(vo.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,r){const s=this._inner,o=s.scheduleEventTask(\"NgZoneEvent: \"+r,t,wo,bo,bo);try{return s.runTask(o,e,n)}finally{s.cancelTask(o)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function bo(){}const wo={};function Co(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Eo(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||t.shouldCoalesceEventChangeDetection&&-1!==t.lastRequestAnimationFrameId)}function xo(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ko(t){t._nesting--,Co(t)}class To{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Js,this.onMicrotaskEmpty=new Js,this.onStable=new Js,this.onError=new Js}run(t,e,n){return t.apply(e,n)}runGuarded(t,e,n){return t.apply(e,n)}runOutsideAngular(t){return t()}runTask(t,e,n,r){return t.apply(e,n)}}let So=(()=>{class t{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{vo.assertNotInAngularZone(),go(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())go(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let r=-1;e&&e>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==r),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Io=(()=>{class t{constructor(){this._applications=new Map,Do.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return Do.findTestabilityInTree(this,t,e)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class Ao{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}let Oo,Do=new Ao;const jo=new ut(\"AllowMultipleToken\");function Ho(t,e,n=[]){const r=\"Platform: \"+e,s=new ut(r);return(e=[])=>{let o=No();if(!o||o.injector.get(jo,!1))if(t)t(n.concat(e).concat({provide:s,useValue:!0}));else{const t=n.concat(e).concat({provide:s,useValue:!0},{provide:Rr,useValue:\"platform\"});!function(t){if(Oo&&!Oo.destroyed&&!Oo.injector.get(jo,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");Oo=t.get(Po);const e=t.get(no,null);e&&e.forEach(t=>t())}(Gr.create({providers:t,name:r}))}return function(t){const e=No();if(!e)throw new Error(\"No platform exists!\");if(!e.injector.get(t,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return e}(s)}}function No(){return Oo&&!Oo.destroyed?Oo:null}let Po=(()=>{class t{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t,e){let n;return n=\"noop\"===t?new To:(\"zone.js\"===t?void 0:t)||new vo({enableLongStackTrace:Me(),shouldCoalesceEventChangeDetection:e}),n}(e?e.ngZone:void 0,e&&e.ngZoneEventCoalescing||!1),r=[{provide:vo,useValue:n}];return n.run(()=>{const e=Gr.create({providers:r,parent:this.injector,name:t.moduleType.name}),s=t.create(e),o=s.injector.get(kn,null);if(!o)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return s.onDestroy(()=>Fo(this._modules,s)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{o.handleError(t)}})),function(t,e,n){try{const r=n();return rs(r)?r.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(o,n,()=>{const t=s.injector.get(Ys);return t.runInitializers(),t.donePromise.then(()=>(hs(s.injector.get(io,cs)||cs),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,e=[]){const n=Ro({},e);return function(t,e,n){const r=new Gs(n);return Promise.resolve(r)}(0,0,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(Mo);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${J(t.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. Please define one of these.`);t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Gr))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Ro(t,e){return Array.isArray(e)?e.reduce(Ro,t):Object.assign(Object.assign({},t),e)}let Mo=(()=>{class t{constructor(t,e,n,r,s,o){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Me(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),l=new g(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{vo.assertNotInAngularZone(),go(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{vo.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=function(...t){let e=Number.POSITIVE_INFINITY,n=null,r=t[t.length-1];var s;return(s=r)&&\"function\"==typeof s.schedule?(n=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(e=t.pop())):\"number\"==typeof r&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof g?t[0]:function(t=Number.POSITIVE_INFINITY){return H(m,t)}(e)(function(t,e){return e?function(t,e){return new g(n=>{const r=new h;let s=0;return r.add(e.schedule(function(){s!==t.length?(n.next(t[s++]),n.closed||r.add(this.schedule())):n.complete()})),r})}(t,e):new g(S(t))}(t,n))}(i,l.pipe(t=>{return R()((e=Z,function(t){let n;n=\"function\"==typeof e?e:function(){return e};const r=Object.create(t,L);return r.source=t,r.subjectFactory=n,r})(t));var e}))}bootstrap(t,e){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=t instanceof ds?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(Ls),s=n.create(Gr.NULL,[],e||n.selector,r);s.onDestroy(()=>{this._unloadComponent(s)});const o=s.injector.get(So,null);return o&&s.injector.get(Io).registerApplication(s.location.nativeElement,o),this._loadComponent(s),Me()&&this._console.log(\"Angular is running in development mode. Call enableProdMode() to enable production mode.\"),s}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Fo(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(so,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),Fo(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo),Gt(oo),Gt(Gr),Gt(kn),Gt(ps),Gt(Ys))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Fo(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const Vo=Ho(null,\"core\",[{provide:ro,useValue:\"unknown\"},{provide:Po,deps:[Gr]},{provide:Io,deps:[]},{provide:oo,deps:[]}]),Lo=[{provide:Mo,useClass:Mo,deps:[vo,oo,Gr,kn,ps,Ys]},{provide:$s,deps:[vo],useFactory:function(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:Ys,useClass:Ys,deps:[[new q,Ks]]},{provide:yo,useClass:yo,deps:[]},to,{provide:Hs,useFactory:function(){return Fs},deps:[]},{provide:Ns,useFactory:function(){return Vs},deps:[]},{provide:io,useFactory:function(t){return hs(t=t||\"undefined\"!=typeof $localize&&$localize.locale||cs),t},deps:[[new W(io),new q,new G]]},{provide:lo,useValue:\"USD\"}];let Bo=(()=>{class t{constructor(t){}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(Mo))},providers:Lo}),t})(),Zo=null;function zo(){return Zo}const $o=new ut(\"DocumentToken\");var Uo=function(t){return t[t.Zero=0]=\"Zero\",t[t.One=1]=\"One\",t[t.Two=2]=\"Two\",t[t.Few=3]=\"Few\",t[t.Many=4]=\"Many\",t[t.Other=5]=\"Other\",t}({});class Wo{}let qo=(()=>{class t extends Wo{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(function(t){return function(t){const e=function(t){return t.toLowerCase().replace(/_/g,\"-\")}(t);let n=ls(e);if(n)return n;const r=e.split(\"-\")[0];if(n=ls(r),n)return n;if(\"en\"===r)return os;throw new Error(`Missing locale data for the locale \"${t}\".`)}(t)[us.PluralCase]}(e||this.locale)(t)){case Uo.Zero:return\"zero\";case Uo.One:return\"one\";case Uo.Two:return\"two\";case Uo.Few:return\"few\";case Uo.Many:return\"many\";default:return\"other\"}}}return t.\\u0275fac=function(e){return new(e||t)(Gt(io))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Qo=(()=>{class t{}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[{provide:Wo,useClass:qo}]}),t})();class Go extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var t;t=new Go,Zo||(Zo=t)}getProperty(t,e){return t[e]}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}getValue(t){return t.value}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return\"window\"===e?window:\"document\"===e?t:\"body\"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=Ko||(Ko=document.querySelector(\"base\"),Ko)?Ko.getAttribute(\"href\"):null;return null==e?null:(n=e,Jo||(Jo=document.createElement(\"a\")),Jo.setAttribute(\"href\",n),\"/\"===Jo.pathname.charAt(0)?Jo.pathname:\"/\"+Jo.pathname);var n}resetBaseElement(){Ko=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return function(t,e){e=encodeURIComponent(e);for(const n of t.split(\";\")){const t=n.indexOf(\"=\"),[r,s]=-1==t?[n,\"\"]:[n.slice(0,t),n.slice(t+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}(document.cookie,t)}}let Jo,Ko=null;const Yo=new ut(\"TRANSITION_ID\"),Xo=[{provide:Ks,useFactory:function(t,e,n){return()=>{n.get(Ys).donePromise.then(()=>{const n=zo();Array.prototype.slice.apply(e.querySelectorAll(\"style[ng-transition]\")).filter(e=>e.getAttribute(\"ng-transition\")===t).forEach(t=>n.remove(t))})}},deps:[Yo,$o,Gr],multi:!0}];class ti{static init(){var t;t=new ti,Do=t}addToWindow(t){pt.getAngularTestability=(e,n=!0)=>{const r=t.findTestabilityInTree(e,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},pt.getAllAngularTestabilities=()=>t.getAllTestabilities(),pt.getAllAngularRootElements=()=>t.getAllRootElements(),pt.frameworkStabilizers||(pt.frameworkStabilizers=[]),pt.frameworkStabilizers.push(t=>{const e=pt.getAllAngularTestabilities();let n=e.length,r=!1;const s=function(e){r=r||e,n--,0==n&&t(r)};e.forEach(function(t){t.whenStable(s)})})}findTestabilityInTree(t,e,n){if(null==e)return null;const r=t.getTestability(e);return null!=r?r:n?zo().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}const ei=new ut(\"EventManagerPlugins\");let ni=(()=>{class t{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let r=0;r<n.length;r++){const e=n[r];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(\"No event manager plugin found for event \"+t)}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ei),Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class ri{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const r=zo().getGlobalEventTarget(this._doc,t);if(!r)throw new Error(`Unsupported event target ${r} for event ${e}`);return this.addEventListener(r,e,n)}}let si=(()=>{class t{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),oi=(()=>{class t extends si{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement(\"style\");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>zo().remove(t))}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const ii={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},li=/%COMP%/g;function ui(t,e,n){for(let r=0;r<e.length;r++){let s=e[r];Array.isArray(s)?ui(t,s,n):(s=s.replace(li,t),n.push(s))}return n}function ci(t){return e=>{if(\"__ngUnwrap__\"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let ai=(()=>{class t{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new hi(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case vt.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new di(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case 1:case vt.ShadowDom:return new fi(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=ui(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ni),Gt(oi),Gt(Xs))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class hi{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(ii[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n=\"string\"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector \"${t}\" did not match any elements`);return e||(n.textContent=\"\"),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,r){if(r){e=r+\":\"+e;const s=ii[r];s?t.setAttributeNS(s,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const r=ii[n];r?t.removeAttributeNS(r,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,r){r&(An.DashCase|An.Important)?t.style.setProperty(e,n,r&An.Important?\"important\":\"\"):t.style[e]=n}removeStyle(t,e,n){n&An.DashCase?t.style.removeProperty(e):t.style[e]=\"\"}setProperty(t,e,n){t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return\"string\"==typeof t?this.eventManager.addGlobalEventListener(t,e,ci(n)):this.eventManager.addEventListener(t,e,ci(n))}}class di extends hi{constructor(t,e,n,r){super(t),this.component=n;const s=ui(r+\"-\"+n.id,n.styles,[]);e.addStyles(s),this.contentAttr=\"_ngcontent-%COMP%\".replace(li,r+\"-\"+n.id),this.hostAttr=\"_nghost-%COMP%\".replace(li,r+\"-\"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,\"\")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,\"\"),n}}class fi extends hi{constructor(t,e,n,r){super(t),this.sharedStylesHost=e,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:\"open\"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=ui(r.id,r.styles,[]);for(let o=0;o<s.length;o++){const t=document.createElement(\"style\");t.textContent=s[o],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}let pi=(()=>{class t extends ri{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,n){return t.addEventListener(e,n,!1),()=>this.removeEventListener(t,e,n)}removeEventListener(t,e,n){return t.removeEventListener(e,n)}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const _i=[\"alt\",\"control\",\"meta\",\"shift\"],yi={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},mi={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},gi={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let vi=(()=>{class t extends ri{constructor(t){super(t)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,n,r){const s=t.parseEventName(n),o=t.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>zo().onAndCancel(e,s.domEventName,o))}static parseEventName(e){const n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const s=t._normalizeKey(n.pop());let o=\"\";if(_i.forEach(t=>{const e=n.indexOf(t);e>-1&&(n.splice(e,1),o+=t+\".\")}),o+=s,0!=n.length||0===s.length)return null;const i={};return i.domEventName=r,i.fullKey=o,i}static getEventFullKey(t){let e=\"\",n=function(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return\"Unidentified\";e.startsWith(\"U+\")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&mi.hasOwnProperty(e)&&(e=mi[e]))}return yi[e]||e}(t);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),_i.forEach(r=>{r!=n&&(0,gi[r])(t)&&(e+=r+\".\")}),e+=n,e}static eventCallback(e,n,r){return s=>{t.getEventFullKey(s)===e&&r.runGuarded(()=>n(s))}}static _normalizeKey(t){switch(t){case\"esc\":return\"escape\";default:return t}}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const bi=Ho(Vo,\"browser\",[{provide:ro,useValue:\"browser\"},{provide:no,useValue:function(){Go.makeCurrent(),ti.init()},multi:!0},{provide:$o,useFactory:function(){return function(t){Kt=t}(document),document},deps:[]}]),wi=[[],{provide:Rr,useValue:\"root\"},{provide:kn,useFactory:function(){return new kn},deps:[]},{provide:ei,useClass:pi,multi:!0,deps:[$o,vo,ro]},{provide:ei,useClass:vi,multi:!0,deps:[$o]},[],{provide:ai,useClass:ai,deps:[ni,oi,Xs]},{provide:vs,useExisting:ai},{provide:si,useExisting:oi},{provide:oi,useClass:oi,deps:[$o]},{provide:So,useClass:So,deps:[vo]},{provide:ni,useClass:ni,deps:[ei,vo]},[]];let Ci=(()=>{class t{constructor(t){if(t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(e){return{ngModule:t,providers:[{provide:Xs,useValue:e.appId},{provide:Yo,useExisting:Xs},Xo]}}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(t,12))},providers:wi,imports:[Qo,Bo]}),t})();\"undefined\"!=typeof window&&window;let Ei=(()=>{class t{constructor(){this.title=\"example\"}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=(e={type:t,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(t,e){1&t&&(ns(0,\"div\",0),function(t,e=\"\"){const n=_e(),r=ye(),s=t+Yt,o=r.firstCreatePass?lr(r,s,1,e,null):r.data[s],i=n[s]=function(t,e){return re(t)?t.createText(e):t.createTextNode(e)}(n[11],e);Bn(r,n,i,o),ve(o,!1)}(1,\" Hello, World\\n\"),function(){let t=me();be()?fe.lFrame.isParent=!1:(t=t.parent,ve(t,!1));const e=t;fe.lFrame.elementDepthCount--;const n=ye();n.firstCreatePass&&(Ue(n,t),ee(t)&&n.queries.elementEnd(t)),null!=e.classesWithoutHost&&function(t){return 0!=(16&t.flags)}(e)&&es(n,e,_e(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function(t){return 0!=(32&t.flags)}(e)&&es(n,e,_e(),e.stylesWithoutHost,!1)}())},styles:[\"\"]},z(()=>{const t={},n={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===ct.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||wt,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||vt.Emulated,id:\"c\",styles:e.styles||wt,_:null,setInput:null,schemas:e.schemas||null,tView:null},r=e.directives,s=e.features,o=e.pipes;return n.id+=At++,n.inputs=Nt(e.inputs,t),n.outputs=Nt(e.outputs),s&&s.forEach(t=>t(n)),n.directiveDefs=r?()=>(\"function\"==typeof r?r():r).map(Ot):null,n.pipeDefs=o?()=>(\"function\"==typeof o?o():o).map(Dt):null,n})),t;var e})(),xi=(()=>{class t{}return t.\\u0275mod=Ht({type:t,bootstrap:[Ei]}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[],imports:[[Ci]]}),t})();(function(){if(Re)throw new Error(\"Cannot enable prod mode after platform setup.\");Pe=!1})(),bi().bootstrapModule(xi).catch(t=>console.error(t))},zn8P:function(t,e){function n(t){return Promise.resolve().then(function(){var e=new Error(\"Cannot find module '\"+t+\"'\");throw e.code=\"MODULE_NOT_FOUND\",e})}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/dist/example/polyfills.bf99d438b005d57b2b31.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{1:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const i=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(i||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class a{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==C.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=a.current;for(;e.parent;)e=e.parent;return e}static get current(){return z.zone}static get currentTask(){return j}static __load_patch(t,r){if(C.hasOwnProperty(t)){if(i)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),C[t]=r(e,a,O),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){z={parent:z,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{z=z.parent}}runGuarded(e,t=null,n,o){z={parent:z,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{z=z.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,T),e.runCount++;const r=j;j=e,z={parent:z,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(T,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),z=z.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(b,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,b,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==b&&e._transitionTo(T,b),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,T,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}a.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new a(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");k(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,i){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=i,!o)throw new Error(\"callback is not defined\");this.callback=o;const a=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,a,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,b)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],_=!1;function k(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!_){for(_=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){O.onUnhandledError(e)}}}O.microtaskDrainDone(),_=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",b=\"scheduling\",T=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",C={},O={symbol:s,currentZoneFrame:()=>z,onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:k,showUncaughtError:()=>!a[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:N,patchMethod:()=>N,bindArguments:()=>[],patchThen:()=>N,patchMacroTask:()=>N,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>N,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>N,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>N,wrapWithCurrentZone:()=>N,filterProperties:()=>[],attachOriginToPatched:()=>N,_redefineProperty:()=>N,patchCallbacks:()=>N};let z={parent:null,zone:new a(null,null)},j=null,I=0;function N(){}o(\"Zone\",\"Zone\"),e.Zone=a}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,i=[],a=!0===e[s(\"DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION\")],c=s(\"Promise\"),l=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;i.length;){const t=i.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){h(e)}}};const u=s(\"unhandledPromiseRejectionHandler\");function h(e){n.onUnhandledError(e);try{const n=t[u];\"function\"==typeof n&&n.call(this,e)}catch(o){}}function p(e){return e&&e.then}function f(e){return e}function d(e){return O.reject(e)}const g=s(\"state\"),_=s(\"value\"),k=s(\"finally\"),m=s(\"parentPromiseValue\"),y=s(\"parentPromiseState\"),v=null,b=!0,T=!1;function E(e,t){return n=>{try{Z(e,t,n)}catch(o){Z(e,!1,o)}}}const w=s(\"currentTaskTrace\");function Z(e,o,s){const c=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(e[g]===v){let h=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(h=s&&s.then)}catch(u){return c(()=>{Z(e,!1,u)})(),e}if(o!==T&&s instanceof O&&s.hasOwnProperty(g)&&s.hasOwnProperty(_)&&s[g]!==v)D(s),Z(e,s[g],s[_]);else if(o!==T&&\"function\"==typeof h)try{h.call(s,c(E(e,o)),c(E(e,!1)))}catch(u){c(()=>{Z(e,!1,u)})()}else{e[g]=o;const c=e[_];if(e[_]=s,e[k]===k&&o===b&&(e[g]=e[y],e[_]=e[m]),o===T&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,w,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<c.length;)P(e,c[t++],c[t++],c[t++],c[t++]);if(0==c.length&&o==T){e[g]=0;let o=s;if(!a)try{throw new Error(\"Uncaught (in promise): \"+((l=s)&&l.toString===Object.prototype.toString?(l.constructor&&l.constructor.name||\"\")+\": \"+JSON.stringify(l):l?l.toString():Object.prototype.toString.call(l))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(u){o=u}o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,i.push(o),n.scheduleMicroTask()}}}var l;return e}const S=s(\"rejectionHandledHandler\");function D(e){if(0===e[g]){try{const n=t[S];n&&\"function\"==typeof n&&n.call(this,{rejection:e[_],promise:e})}catch(n){}e[g]=T;for(let t=0;t<i.length;t++)e===i[t].promise&&i.splice(t,1)}}function P(e,t,n,o,r){D(e);const s=e[g],i=s?\"function\"==typeof o?o:f:\"function\"==typeof r?r:d;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[_],r=!!n&&k===n[k];r&&(n[m]=o,n[y]=s);const a=t.run(i,void 0,r&&i!==d&&i!==f?[]:[o]);Z(n,!0,a)}catch(o){Z(n,!1,o)}},n)}const C=function(){};class O{static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return Z(new this(null),b,e)}static reject(e){return Z(new this(null),T,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let i of e)p(i)||(i=this.resolve(i)),i.then(r,s);return o}static all(e){return O.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof O?this:O).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,i=0;const a=[];for(let l of e){p(l)||(l=this.resolve(l));const e=i;try{l.then(o=>{a[e]=t?t.thenCallback(o):o,s--,0===s&&n(a)},r=>{t?(a[e]=t.errorCallback(r),s--,0===s&&n(a)):o(r)})}catch(c){o(c)}s++,i++}return s-=2,0===s&&n(a),r}constructor(e){const t=this;if(!(t instanceof O))throw new Error(\"Must be an instanceof Promise.\");t[g]=v,t[_]=[];try{e&&e(E(t,b),E(t,T))}catch(n){Z(t,!1,n)}}get[Symbol.toStringTag](){return\"Promise\"}get[Symbol.species](){return O}then(e,n){let o=this.constructor[Symbol.species];o&&\"function\"==typeof o||(o=this.constructor||O);const r=new o(C),s=t.current;return this[g]==v?this[_].push(s,r,e,n):P(this,s,r,e,n),r}catch(e){return this.then(null,e)}finally(e){let n=this.constructor[Symbol.species];n&&\"function\"==typeof n||(n=O);const o=new n(C);o[k]=k;const r=t.current;return this[g]==v?this[_].push(r,o,e,e):P(this,r,o,e,e),o}}O.resolve=O.resolve,O.reject=O.reject,O.race=O.race,O.all=O.all;const z=e[c]=e.Promise,j=t.__symbol__(\"ZoneAwarePromise\");let I=o(e,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return e[j]?e[j]:e[c]},I.set=function(t){t===O?e[j]=t:(e[c]=t,t.prototype[l]||R(t),n.setNativePromise(t))},r(e,\"Promise\",I)),e.Promise=O;const N=s(\"thenPatched\");function R(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[l]=r,e.prototype.then=function(e,t){return new O((e,t)=>{r.call(this,e,t)}).then(e,t)},e[N]=!0}if(n.patchThen=R,z){R(z);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(x=t,function(){let e=x.apply(this,arguments);if(e instanceof O)return e;let t=e.constructor;return t[N]||R(t),e}))}var x;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=i,O});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=\"addEventListener\",i=\"removeEventListener\",a=Zone.__symbol__(s),c=Zone.__symbol__(i),l=\"true\",u=\"false\",h=Zone.__symbol__(\"\");function p(e,t){return Zone.current.wrap(e,t)}function f(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const d=Zone.__symbol__,g=\"undefined\"!=typeof window,_=g?window:void 0,k=g&&_||\"object\"==typeof self&&self||global,m=[null];function y(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=p(e[n],t+\"_\"+n));return e}function v(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const b=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,T=!(\"nw\"in k)&&void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process),E=!T&&!b&&!(!g||!_.HTMLElement),w=void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process)&&!b&&!(!g||!_.HTMLElement),Z={},S=function(e){if(!(e=e||k.event))return;let t=Z[e.type];t||(t=Z[e.type]=d(\"ON_PROPERTY\"+e.type));const n=this||e.target||k,o=n[t];let r;if(E&&n===_&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function D(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const i=d(\"on\"+o+\"patched\");if(n.hasOwnProperty(i)&&n[i])return;delete s.writable,delete s.value;const a=s.get,c=s.set,l=o.substr(2);let u=Z[l];u||(u=Z[l]=d(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==k||(t=k),t&&(t[u]&&t.removeEventListener(l,S),c&&c.apply(t,m),\"function\"==typeof e?(t[u]=e,t.addEventListener(l,S,!1)):t[u]=null)},s.get=function(){let e=this;if(e||n!==k||(e=k),!e)return null;const t=e[u];if(t)return t;if(a){let t=a&&a.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[i]=!0}function P(e,t,n){if(t)for(let o=0;o<t.length;o++)D(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)D(e,t[o],n)}}const C=d(\"originalInstance\");function O(e){const n=k[e];if(!n)return;k[d(e)]=n,k[e]=function(){const t=y(arguments,e);switch(t.length){case 0:this[C]=new n;break;case 1:this[C]=new n(t[0]);break;case 2:this[C]=new n(t[0],t[1]);break;case 3:this[C]=new n(t[0],t[1],t[2]);break;case 4:this[C]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},I(k[e],n);const o=new n(function(){});let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?k[e].prototype[n]=function(){return this[C][n].apply(this[C],arguments)}:t(k[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[C][n]=p(t,e+\".\"+n),I(this[C][n],t)):this[C][n]=t},get:function(){return this[C][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(k[e][r]=n[r])}function z(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const i=d(o);let a=null;if(s&&!(a=s[i])&&(a=s[i]=s[o],v(s&&e(s,o)))){const e=r(a,i,o);s[o]=function(){return e(this,arguments)},I(s[o],a)}return a}function j(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=z(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?f(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function I(e,t){e[d(\"OriginalDelegate\")]=t}let N=!1,R=!1;function x(){try{const e=_.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function M(){if(N)return R;N=!0;try{const e=_.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(R=!0)}catch(e){}return R}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=d(\"OriginalDelegate\"),o=d(\"Promise\"),r=d(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const i=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":i.call(this)}});let L=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){L=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(he){L=!1}const A={useG:!0},H={},F={},G=new RegExp(\"^\"+h+\"(\\\\w+)(true|false)$\"),B=d(\"propagationStopped\");function q(e,t){const n=(t?t(e):e)+u,o=(t?t(e):e)+l,r=h+n,s=h+o;H[e]={},H[e].false=r,H[e].true=s}function W(e,t,o){const r=o&&o.add||s,a=o&&o.rm||i,c=o&&o.listeners||\"eventListeners\",p=o&&o.rmAll||\"removeAllListeners\",f=d(r),g=\".\"+r+\":\",_=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[a].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},k=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].false];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}},m=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].true];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}};function y(t,o){if(!t)return!1;let s=!0;o&&void 0!==o.useG&&(s=o.useG);const i=o&&o.vh;let _=!0;o&&void 0!==o.chkDup&&(_=o.chkDup);let y=!1;o&&void 0!==o.rt&&(y=o.rt);let v=t;for(;v&&!v.hasOwnProperty(r);)v=n(v);if(!v&&t[r]&&(v=t),!v)return!1;if(v[f])return!1;const b=o&&o.eventNameToString,E={},w=v[f]=v[r],Z=v[d(a)]=v[a],S=v[d(c)]=v[c],D=v[d(p)]=v[p];let P;function C(e,t){return!L&&\"object\"==typeof e&&e?!!e.capture:L&&t?\"boolean\"==typeof e?{capture:e,passive:!0}:e?\"object\"==typeof e&&!1!==e.passive?Object.assign(Object.assign({},e),{passive:!0}):e:{passive:!0}:e}o&&o.prepend&&(P=v[d(o.prepend)]=v[o.prepend]);const O=s?function(e){if(!E.isExisting)return w.call(E.target,E.eventName,E.capture?m:k,E.options)}:function(e){return w.call(E.target,E.eventName,e.invoke,E.options)},z=s?function(e){if(!e.isRemoved){const t=H[e.eventName];let n;t&&(n=t[e.capture?l:u]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return Z.call(e.target,e.eventName,e.capture?m:k,e.options)}:function(e){return Z.call(e.target,e.eventName,e.invoke,e.options)},j=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},N=Zone[d(\"BLACK_LISTED_EVENTS\")],R=e[d(\"PASSIVE_EVENTS\")],x=function(t,n,r,a,c=!1,h=!1){return function(){const p=this||e;let f=arguments[0];o&&o.transferEventName&&(f=o.transferEventName(f));let d=arguments[1];if(!d)return t.apply(this,arguments);if(T&&\"uncaughtException\"===f)return t.apply(this,arguments);let g=!1;if(\"function\"!=typeof d){if(!d.handleEvent)return t.apply(this,arguments);g=!0}if(i&&!i(t,d,p,arguments))return;const k=L&&!!R&&-1!==R.indexOf(f),m=C(arguments[2],k);if(N)for(let e=0;e<N.length;e++)if(f===N[e])return k?t.call(p,f,d,m):t.apply(this,arguments);const y=!!m&&(\"boolean\"==typeof m||m.capture),v=!(!m||\"object\"!=typeof m)&&m.once,w=Zone.current;let Z=H[f];Z||(q(f,b),Z=H[f]);const S=Z[y?l:u];let D,P=p[S],O=!1;if(P){if(O=!0,_)for(let e=0;e<P.length;e++)if(j(P[e],d))return}else P=p[S]=[];const z=p.constructor.name,I=F[z];I&&(D=I[f]),D||(D=z+n+(b?b(f):f)),E.options=m,v&&(E.options.once=!1),E.target=p,E.capture=y,E.eventName=f,E.isExisting=O;const x=s?A:void 0;x&&(x.taskData=E);const M=w.scheduleEventTask(D,d,x,r,a);return E.target=null,x&&(x.taskData=null),v&&(m.once=!0),(L||\"boolean\"!=typeof M.options)&&(M.options=m),M.target=p,M.capture=y,M.eventName=f,g&&(M.originalDelegate=d),h?P.unshift(M):P.push(M),c?p:void 0}};return v[r]=x(w,g,O,z,y),P&&(v.prependListener=x(P,\".prependListener:\",function(e){return P.call(E.target,E.eventName,e.invoke,E.options)},z,y,!0)),v[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2],s=!!r&&(\"boolean\"==typeof r||r.capture),a=arguments[1];if(!a)return Z.apply(this,arguments);if(i&&!i(Z,a,t,arguments))return;const c=H[n];let p;c&&(p=c[s?l:u]);const f=p&&t[p];if(f)for(let e=0;e<f.length;e++){const o=f[e];if(j(o,a))return f.splice(e,1),o.isRemoved=!0,0===f.length&&(o.allRemoved=!0,t[p]=null,\"string\"==typeof n)&&(t[h+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),y?t:void 0}return Z.apply(this,arguments)},v[c]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=U(t,b?b(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},v[p]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=H[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=G.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[p].call(this,o)}this[p].call(this,\"removeListener\")}if(y)return this},I(v[r],w),I(v[a],Z),D&&I(v[p],D),S&&I(v[c],S),!0}let v=[];for(let n=0;n<t.length;n++)v[n]=y(t[n],o);return v}function U(e,t){if(!t){const n=[];for(let o in e){const r=G.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}let n=H[t];n||(q(t),n=H[t]);const o=e[n.false],r=e[n.true];return o?r?o.concat(r):o.slice():r?r.slice():[]}function V(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[B]=!0,e&&e.apply(t,n)})}function $(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const i=t[s]=t[o];t[o]=function(s,a,c){return a&&a.prototype&&r.forEach(function(t){const r=`${n}.${o}::`+t,s=a.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(a.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}),i.call(t,s,a,c)},e.attachOriginToPatched(t[o],i)}const X=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplayconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],J=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],Y=[\"load\"],K=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],Q=[\"bounce\",\"finish\",\"start\"],ee=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],te=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],ne=[\"close\",\"error\",\"open\",\"message\"],oe=[\"error\",\"message\"],re=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],X,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function se(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function ie(e,t,n,o){e&&P(e,se(e,t,n),o)}function ae(e,t){if(T&&!w)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(E){const e=window,t=x?[{target:e,ignoreProperties:[\"error\"]}]:[];ie(e,re.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),ie(Document.prototype,re,r),void 0!==e.SVGElement&&ie(e.SVGElement.prototype,re,r),ie(Element.prototype,re,r),ie(HTMLElement.prototype,re,r),ie(HTMLMediaElement.prototype,J,r),ie(HTMLFrameSetElement.prototype,X.concat(K),r),ie(HTMLBodyElement.prototype,X.concat(K),r),ie(HTMLFrameElement.prototype,Y,r),ie(HTMLIFrameElement.prototype,Y,r);const o=e.HTMLMarqueeElement;o&&ie(o.prototype,Q,r);const s=e.Worker;s&&ie(s.prototype,oe,r)}const s=t.XMLHttpRequest;s&&ie(s.prototype,ee,r);const i=t.XMLHttpRequestEventTarget;i&&ie(i&&i.prototype,ee,r),\"undefined\"!=typeof IDBIndex&&(ie(IDBIndex.prototype,te,r),ie(IDBRequest.prototype,te,r),ie(IDBOpenDBRequest.prototype,te,r),ie(IDBDatabase.prototype,te,r),ie(IDBTransaction.prototype,te,r),ie(IDBCursor.prototype,te,r)),o&&ie(WebSocket.prototype,ne,r)}Zone.__load_patch(\"util\",(n,a,c)=>{c.patchOnProperties=P,c.patchMethod=z,c.bindArguments=y,c.patchMacroTask=j;const f=a.__symbol__(\"BLACK_LISTED_EVENTS\"),d=a.__symbol__(\"UNPATCHED_EVENTS\");n[d]&&(n[f]=n[d]),n[f]&&(a[f]=a[d]=n[f]),c.patchEventPrototype=V,c.patchEventTarget=W,c.isIEOrEdge=M,c.ObjectDefineProperty=t,c.ObjectGetOwnPropertyDescriptor=e,c.ObjectCreate=o,c.ArraySlice=r,c.patchClass=O,c.wrapWithCurrentZone=p,c.filterProperties=se,c.attachOriginToPatched=I,c._redefineProperty=Object.defineProperty,c.patchCallbacks=$,c.getGlobalObjects=()=>({globalSources:F,zoneSymbolEventNames:H,eventNames:re,isBrowser:E,isMix:w,isNode:T,TRUE_STR:l,FALSE_STR:u,ZONE_SYMBOL_PREFIX:h,ADD_EVENT_LISTENER_STR:s,REMOVE_EVENT_LISTENER_STR:i})});const ce=d(\"zoneTask\");function le(e,t,n,o){let r=null,s=null;n+=o;const i={};function a(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete i[n.handleId]:n.handleId&&(n.handleId[ce]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=z(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=f(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},a,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?i[n]=e:n&&(n[ce]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=z(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=i[r]:(s=r&&r[ce],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete i[r]:r&&(r[ce]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function ue(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:i}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=i+(e+s),a=i+(e+r);o[e]={},o[e][s]=t,o[e][r]=a}const a=e.EventTarget;return a&&a.prototype?(t.patchEventTarget(e,[a&&a.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{const t=\"set\",n=\"clear\";le(e,t,n,\"Timeout\"),le(e,t,n,\"Interval\"),le(e,t,n,\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{le(e,\"request\",\"cancel\",\"AnimationFrame\"),le(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),le(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)z(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{(function(e,t){t.patchEventPrototype(e,t)})(e,n),ue(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),O(\"MutationObserver\"),O(\"WebKitMutationObserver\"),O(\"IntersectionObserver\"),O(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ae(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const u=e.XMLHttpRequest;if(!u)return;const h=u.prototype;let p=h[a],g=h[c];if(!p){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;p=e[a],g=e[c]}}const _=\"readystatechange\",k=\"scheduled\";function m(e){const o=e.data,i=o.target;i[s]=!1,i[l]=!1;const u=i[r];p||(p=i[a],g=i[c]),u&&g.call(i,_,u);const h=i[r]=()=>{if(i.readyState===i.DONE)if(!o.aborted&&i[s]&&e.state===k){const n=i[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=i[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||e.state!==k||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==i[s]||(i[l]=!0)};return p.call(i,_,h),i[n]||(i[n]=e),w.apply(i,o.args),i[s]=!0,e}function y(){}function v(e){const t=e.data;return t.aborted=!0,Z.apply(t.target,t.args)}const b=z(h,\"open\",()=>function(e,t){return e[o]=0==t[2],e[i]=t[1],b.apply(e,t)}),T=d(\"fetchTaskAborting\"),E=d(\"fetchTaskScheduling\"),w=z(h,\"send\",()=>function(e,n){if(!0===t.current[E])return w.apply(e,n);if(e[o])return w.apply(e,n);{const t={target:e,url:e[i],isPeriodic:!1,args:n,aborted:!1},o=f(\"XMLHttpRequest.send\",y,t,m,v);e&&!0===e[l]&&!t.aborted&&o.state===k&&o.invoke()}}),Z=z(h,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[T])return Z.apply(e,o)})}(e);const n=d(\"xhrTask\"),o=d(\"xhrSync\"),r=d(\"xhrListener\"),s=d(\"xhrScheduled\"),i=d(\"xhrURL\"),l=d(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],i=t[s];if(i){if(!v(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,y(arguments,o+\".\"+s))};return I(t,e),t})(i)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){U(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[d(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[d(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[1,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/dist/example/runtime.359d5ee4682f20e936e9.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/dist/example/styles.51422a5c94b8290ff190.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:initial}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:initial;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:initial;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:initial;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:initial}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:initial}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:initial}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:initial}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:initial}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:initial}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:initial}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:initial}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:initial;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:initial}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:initial;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:initial;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:initial;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:initial;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:initial;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:initial;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:initial;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:initial;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:initial!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:initial!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:initial;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule  } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent, PaAttrDirective, PaModel],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/app/attr.directive.ts",
    "content": "import {\n  Directive, ElementRef, Attribute, Input,\n  SimpleChange, Output, EventEmitter, HostListener, HostBinding\n}\n  from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Directive({\n  selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n  @Input(\"pa-attr\")\n  @HostBinding(\"class\")\n  bgClass: string;\n\n  @Input(\"pa-product\")\n  product: Product;\n\n  @Output(\"pa-category\")\n  click = new EventEmitter<string>();\n\n  @HostListener(\"click\")\n  triggerCustomEvent() {\n    if (this.product != null) {\n      this.click.emit(this.product.category);\n    }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { NgForm, FormGroup } from \"@angular/forms\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup, ProductFormControl } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n    formGroup: ProductFormGroup = new ProductFormGroup();\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    newProduct: Product = new Product();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n\n    formSubmitted: boolean = false;\n\n    submitForm() {\n        this.addProduct(this.newProduct);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;\n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),\n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c =>\n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/app/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n      public name?: string,\n      public category?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n      let p = this.products.shift();\n      this.products.push(new Product(p.id, p.name, p.category, p.price));\n  }\n\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/app/template.html",
    "content": "<style>\n  input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\n  input.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n</style>\n\n<div class=\"row m-2\">\n  <div class=\"col-6\">\n    <form class=\"m-2\" novalidate (ngSubmit)=\"submitForm()\">\n      <div class=\"form-group\">\n          <label>Name</label>\n          <input class=\"form-control\" name=\"name\" [(ngModel)]=\"newProduct.name\" />\n      </div>\n      <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\" name=\"category\"\n            [(ngModel)]=\"newProduct.category\" />\n      </div>\n      <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\" name=\"price\" [(ngModel)]=\"newProduct.price\" />\n      </div>\n      <button class=\"btn btn-primary\" type=\"submit\">Create</button>\n    </form>\n  </div>\n\n  <div class=\"col-6\">\n\n    <div class=\"form-group bg-info text-white p-2\">\n      <label>Name:</label>\n      <input class=\"bg-primary text-white\" [(paModel)]=\"newProduct.name\"\n          #paModel=\"paModel\" />\n      <div class=\"bg-primary text-white\">Direction: {{paModel.direction}}</div>\n  </div>\n\n\n    <table class=\"table table-sm table-bordered table-striped\">\n      <tr><th></th><th>Name</th><th>Category</th><th>Price</th></tr>\n      <tr *ngFor=\"let item of getProducts(); let i = index\"\n              [pa-attr]=\"getProducts().length < 6 ? 'bg-success' : 'bg-warning'\"\n              [pa-product]=\"item\" (pa-category)=\"newProduct.category = $event\">\n          <td>{{i + 1}}</td>\n          <td>{{item.name}}</td>\n          <td [pa-attr]=\"item.category == 'Soccer' ? 'bg-info' : null\">\n              {{item.category}}\n          </td>\n          <td [pa-attr]=\"'bg-info'\">{{item.price}}</td>\n      </tr>\n  </table>\n\n\n\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n  HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n  selector: \"input[paModel]\",\n  exportAs: \"paModel\"\n})\nexport class PaModel {\n\n  direction: string = \"None\";\n\n  @Input(\"paModel\")\n  modelProperty: string;\n\n  @HostBinding(\"value\")\n  fieldValue: string = \"\";\n\n  ngOnChanges(changes: { [property: string]: SimpleChange }) {\n      let change = changes[\"modelProperty\"];\n      if (change.currentValue != this.fieldValue) {\n          this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n          this.direction = \"Model\";\n      }\n  }\n\n  @Output(\"paModelChange\")\n  update = new EventEmitter<string>();\n\n  @HostListener(\"input\", [\"$event.target.value\"])\n  updateValue(newValue: string) {\n      this.fieldValue = newValue;\n      this.update.emit(newValue);\n      this.direction = \"Element\";\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 15/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncss-loader\nMIT\nCopyright JS Foundation and other contributors\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2020 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.51422a5c94b8290ff190.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime.359d5ee4682f20e936e9.js\" defer></script><script src=\"polyfills.bf99d438b005d57b2b31.js\" defer></script><script src=\"main.f78bdaa2683ef468e3b3.js\" defer></script></body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/dist/example/main.f78bdaa2683ef468e3b3.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(t,e,n){t.exports=n(\"zUnb\")},zUnb:function(t,e,n){\"use strict\";function r(t){return\"function\"==typeof t}n.r(e);let s=!1;const o={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else s&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");s=t},get useDeprecatedSynchronousErrorHandling(){return s}};function i(t){setTimeout(()=>{throw t},0)}const l={closed:!0,next(t){},error(t){if(o.useDeprecatedSynchronousErrorHandling)throw t;i(t)},complete(){}},u=(()=>Array.isArray||(t=>t&&\"number\"==typeof t.length))();function c(t){return null!==t&&\"object\"==typeof t}const a=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();let h=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:s,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(r(o)){s&&(this._unsubscribe=void 0);try{o.call(this)}catch(l){e=l instanceof a?d(l.errors):[l]}}if(u(i)){let t=-1,n=i.length;for(;++t<n;){const n=i[t];if(c(n))try{n.unsubscribe()}catch(l){e=e||[],l instanceof a?e=e.concat(d(l.errors)):e.push(l)}}}if(e)throw new a(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case\"function\":n=new t(e);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error(\"unrecognized teardown \"+e+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof t){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const s=this._subscriptions;return null===s?this._subscriptions=[n]:s.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}return t.EMPTY=function(t){return t.closed=!0,t}(new t),t})();function d(t){return t.reduce((t,e)=>t.concat(e instanceof a?e.errors:e),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!t){this.destination=l;break}if(\"object\"==typeof t){t instanceof p?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,t,e,n)}}[f](){return this}static create(t,e,n){const r=new p(t,e,n);return r.syncErrorThrowable=!1,r}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class _ extends p{constructor(t,e,n,s){let o;super(),this._parentSubscriber=t;let i=this;r(e)?o=e:e&&(o=e.next,n=e.error,s=e.complete,e!==l&&(i=Object.create(e),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=o,this._error=n,this._complete=s}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;o.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:n}=o;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):i(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;i(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);o.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),o.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(t,e,n){if(!o.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{e.call(this._context,n)}catch(r){return o.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=r,t.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const y=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function m(t){return t}let g=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:r}=this,s=function(t,e,n){if(t){if(t instanceof p)return t;if(t[f])return t[f]()}return t||e||n?new p(t,e,n):new p(l)}(t,e,n);if(s.add(r?r.call(s,this.source):this.source||o.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),o.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(t){try{return this._subscribe(t)}catch(e){o.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof p?n:null}return!0}(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=v(e))((e,n)=>{let r;r=this.subscribe(e=>{try{t(e)}catch(s){n(s),r&&r.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[y](){return this}pipe(...t){return 0===t.length?this:(0===(e=t).length?m:1===e.length?e[0]:function(t){return e.reduce((t,e)=>e(t),t)})(this);var e}toPromise(t){return new(t=v(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function v(t){if(t||(t=o.Promise||Promise),!t)throw new Error(\"no Promise impl found\");return t}const b=(()=>{function t(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return t.prototype=Object.create(Error.prototype),t})();class w extends h{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}class C extends p{constructor(t){super(t),this.destination=t}}let E=(()=>{class t extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(t){const e=new x(this,this);return e.operator=t,e}next(t){if(this.closed)throw new b;if(!this.isStopped){const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].next(t)}}error(t){if(this.closed)throw new b;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].error(t);this.observers.length=0}complete(){if(this.closed)throw new b;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let r=0;r<e;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new b;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new b;return this.hasError?(t.error(this.thrownError),h.EMPTY):this.isStopped?(t.complete(),h.EMPTY):(this.observers.push(t),new w(this,t))}asObservable(){const t=new g;return t.source=this,t}}return t.create=(t,e)=>new x(t,e),t})();class x extends E{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):h.EMPTY}}class k{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new T(t,this.project,this.thisArg))}}class T extends p{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}const S=t=>e=>{for(let n=0,r=t.length;n<r&&!e.closed;n++)e.next(t[n]);e.complete()};function I(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const A=I();const O=t=>{if(t&&\"function\"==typeof t[y])return o=t,t=>{const e=o[y]();if(\"function\"!=typeof e.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return e.subscribe(t)};if((e=t)&&\"number\"==typeof e.length&&\"function\"!=typeof e)return S(t);var e,n,r,s,o;if((n=t)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return s=t,t=>(s.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,i),t);if(t&&\"function\"==typeof t[A])return r=t,t=>{const e=r[A]();for(;;){let r;try{r=e.next()}catch(n){return t.error(n),t}if(r.done){t.complete();break}if(t.next(r.value),t.closed)break}return\"function\"==typeof e.return&&t.add(()=>{e.return&&e.return()}),t};{const e=c(t)?\"an invalid object\":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`)}};class D extends p{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class j extends p{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function H(t,e,n=Number.POSITIVE_INFINITY){return\"function\"==typeof e?r=>r.pipe(H((n,r)=>{return(s=t(n,r),s instanceof g?s:new g(O(s))).pipe(function(t,e){return function(e){return e.lift(new k(t,void 0))}}((t,s)=>e(n,t,r,s)));var s},n)):(\"number\"==typeof e&&(n=e),e=>e.lift(new N(t,n)))}class N{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new P(t,this.project,this.concurrent))}}class P extends j{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e)}_innerSub(t){const e=new D(this),n=this.destination;n.add(e);const r=function(t,e){if(!e.closed)return t instanceof g?t.subscribe(e):O(t)(e)}(t,e);r!==e&&n.add(r)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t){this.destination.next(t)}notifyComplete(){const t=this.buffer;this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function R(){return function(t){return t.lift(new M(t))}}class M{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const r=new F(t,n),s=e.subscribe(r);return r.closed||(r.connection=n.connect()),s}}class F extends p{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:n}=this,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new h,t.add(this.source.subscribe(new B(this.getSubject(),this))),t.closed&&(this._connection=null,t=h.EMPTY)),t}refCount(){return R()(this)}}const L=(()=>{const t=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class B extends C{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}function Z(){return new E}function z(t){return{toString:t}.toString()}const $=\"__parameters__\";function U(t,e,n){return z(()=>{const r=function(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}(e);function s(...t){if(this instanceof s)return r.apply(this,t),this;const e=new s(...t);return n.annotation=e,n;function n(t,n,r){const s=t.hasOwnProperty($)?t[$]:Object.defineProperty(t,$,{value:[]})[$];for(;s.length<=r;)s.push(null);return(s[r]=s[r]||[]).push(e),t}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s})}const W=U(\"Inject\",t=>({token:t})),q=U(\"Optional\"),Q=U(\"Self\"),G=U(\"SkipSelf\");function J(t){if(\"string\"==typeof t)return t;if(Array.isArray(t))return\"[\"+t.map(J).join(\", \")+\"]\";if(null==t)return\"\"+t;if(t.overriddenName)return\"\"+t.overriddenName;if(t.name)return\"\"+t.name;const e=t.toString();if(null==e)return\"\"+e;const n=e.indexOf(\"\\n\");return-1===n?e:e.substring(0,n)}function K(t,e){return null==t||\"\"===t?null===e?\"\":e:null==e||\"\"===e?t:t+\" \"+e}function Y(t){for(let e in t)if(t[e]===Y)return e;throw Error(\"Could not find renamed property on target object.\")}function X(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function tt(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function et(t){return nt(t,st)||nt(t,it)}function nt(t,e){return t.hasOwnProperty(e)?t[e]:null}function rt(t){return t&&(t.hasOwnProperty(ot)||t.hasOwnProperty(lt))?t[ot]:null}const st=Y({\"\\u0275prov\":Y}),ot=Y({\"\\u0275inj\":Y}),it=Y({ngInjectableDef:Y}),lt=Y({ngInjectorDef:Y});class ut{constructor(t,e){this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\\u0275prov=X({token:this,providedIn:e.providedIn||\"root\",factory:e.factory}))}toString(){return\"InjectionToken \"+this._desc}}var ct=function(t){return t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\",t}({});const at=\"undefined\"!=typeof globalThis&&globalThis,ht=\"undefined\"!=typeof window&&window,dt=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,ft=\"undefined\"!=typeof global&&global,pt=at||ft||ht||dt,_t=Y({__forward_ref__:Y});function yt(t){return t.__forward_ref__=yt,t.toString=function(){return J(this())},t}function mt(t){return\"function\"==typeof(e=t)&&e.hasOwnProperty(_t)&&e.__forward_ref__===yt?t():t;var e}function gt(t,e){t.forEach(t=>Array.isArray(t)?gt(t,e):e(t))}var vt=function(t){return t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\",t}({});const bt={},wt=[],Ct=Y({\"\\u0275cmp\":Y}),Et=Y({\"\\u0275dir\":Y}),xt=Y({\"\\u0275pipe\":Y}),kt=Y({\"\\u0275mod\":Y}),Tt=Y({\"\\u0275loc\":Y}),St=Y({\"\\u0275fac\":Y}),It=Y({__NG_ELEMENT_ID__:Y});let At=0;function Ot(t){return Pt(t)||function(t){return t[Et]||null}(t)}function Dt(t){return function(t){return t[xt]||null}(t)}const jt={};function Ht(t){const e={type:t.type,bootstrap:t.bootstrap||wt,declarations:t.declarations||wt,imports:t.imports||wt,exports:t.exports||wt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&z(()=>{jt[t.id]=t.type}),e}function Nt(t,e){if(null==t)return bt;const n={};for(const r in t)if(t.hasOwnProperty(r)){let s=t[r],o=s;Array.isArray(s)&&(o=s[1],s=s[0]),n[s]=r,e&&(e[s]=o)}return n}function Pt(t){return t[Ct]||null}function Rt(t,e){const n=t[kt]||null;if(!n&&!0===e)throw new Error(`Type ${J(t)} does not have '\\u0275mod' property.`);return n}function Mt(t){return\"function\"==typeof t?t.name||t.toString():\"object\"==typeof t&&null!=t&&\"function\"==typeof t.type?t.type.name||t.type.toString():function(t){return\"string\"==typeof t?t:null==t?\"\":\"\"+t}(t)}var Ft=function(t){return t[t.Default=0]=\"Default\",t[t.Host=1]=\"Host\",t[t.Self=2]=\"Self\",t[t.SkipSelf=4]=\"SkipSelf\",t[t.Optional=8]=\"Optional\",t}({});let Vt;function Lt(t){const e=Vt;return Vt=t,e}function Bt(t,e,n){const r=et(t);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Ft.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${J(t)}]`)}const Zt={},zt=/\\n/gm,$t=\"__source\",Ut=Y({provide:String,useValue:Y});let Wt=void 0;function qt(t){const e=Wt;return Wt=t,e}function Qt(t,e=Ft.Default){if(void 0===Wt)throw new Error(\"inject() must be called from an injection context\");return null===Wt?Bt(t,void 0,e):Wt.get(t,e&Ft.Optional?null:void 0,e)}function Gt(t,e=Ft.Default){return(Vt||Qt)(mt(t),e)}function Jt(t){const e=[];for(let n=0;n<t.length;n++){const r=mt(t[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let t=void 0,n=Ft.Default;for(let e=0;e<r.length;e++){const s=r[e];s instanceof q||\"Optional\"===s.ngMetadataName||s===q?n|=Ft.Optional:s instanceof G||\"SkipSelf\"===s.ngMetadataName||s===G?n|=Ft.SkipSelf:s instanceof Q||\"Self\"===s.ngMetadataName||s===Q?n|=Ft.Self:t=s instanceof W||s===W?s.token:s}e.push(Gt(t,n))}else e.push(Gt(r))}return e}let Kt=void 0;const Yt=20;function Xt(t){return Array.isArray(t)&&\"object\"==typeof t[1]}function te(t){return Array.isArray(t)&&!0===t[1]}function ee(t){return 0!=(8&t.flags)}function ne(t){return null!==t.template}function re(t){return!!t.listen}const se={createRenderer:(t,e)=>void 0!==Kt?Kt:\"undefined\"!=typeof document?document:void 0};function oe(t){for(;Array.isArray(t);)t=t[0];return t}function ie(t,e){return oe(e[t.index])}function le(t,e){const n=e[t];return Xt(n)?n:n[0]}function ue(t){const e=function(t){return t.__ngContext__||null}(t);return e?Array.isArray(e)?e:e.lView:null}function ce(t){return 128==(128&t[2])}function ae(t,e){return null==e?null:t[e]}function he(t){t[18]=0}function de(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const fe={lFrame:Oe(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function pe(){return fe.bindingsEnabled}function _e(){return fe.lFrame.lView}function ye(){return fe.lFrame.tView}function me(){let t=ge();for(;null!==t&&64===t.type;)t=t.parent;return t}function ge(){return fe.lFrame.currentTNode}function ve(t,e){const n=fe.lFrame;n.currentTNode=t,n.isParent=e}function be(){return fe.lFrame.isParent}function we(){return fe.isInCheckNoChangesMode}function Ce(t){fe.isInCheckNoChangesMode=t}function Ee(t,e){const n=fe.lFrame;n.bindingIndex=n.bindingRootIndex=t,xe(e)}function xe(t){fe.lFrame.currentDirectiveIndex=t}function ke(t){fe.lFrame.currentQueryIndex=t}function Te(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function Se(t,e,n){if(n&Ft.SkipSelf){let r=e,s=t;for(;r=r.parent,!(null!==r||n&Ft.Host||(r=Te(s),null===r)||(s=s[15],10&r.type)););if(null===r)return!1;e=r,t=s}const r=fe.lFrame=Ae();return r.currentTNode=e,r.lView=t,!0}function Ie(t){const e=Ae(),n=t[1];fe.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function Ae(){const t=fe.lFrame,e=null===t?null:t.child;return null===e?Oe(t):e}function Oe(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function De(){const t=fe.lFrame;return fe.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const je=De;function He(){const t=De();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Ne(t){fe.lFrame.selectedIndex=t}let Pe=!0,Re=!1;function Me(){return Re=!0,Pe}function Fe(t,e){return t.hasOwnProperty(St)?t[St]:null}class Ve extends Error{constructor(t,e){super(function(t,e){return`${t?`NG0${t}: `:\"\"}${e}`}(t,e)),this.code=t}}function Le(t,e){const n=e?\" in \"+e:\"\";throw new Ve(\"201\",`No provider for ${Mt(t)} found${n}`)}class Be{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function Ze(){const t=$e(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===bt)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}}function ze(t,e,n,r){const s=$e(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:bt,current:null}),o=s.current||(s.current={}),i=s.previous,l=this.declaredInputs[n],u=i[l];o[l]=new Be(u&&u.currentValue,e,i===bt),t[r]=e}function $e(t){return t.__ngSimpleChanges__||null}function Ue(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n<r;n++){const e=t.data[n].type.prototype,{ngAfterContentInit:r,ngAfterContentChecked:s,ngAfterViewInit:o,ngAfterViewChecked:i,ngOnDestroy:l}=e;r&&(t.contentHooks||(t.contentHooks=[])).push(-n,r),s&&((t.contentHooks||(t.contentHooks=[])).push(n,s),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,s)),o&&(t.viewHooks||(t.viewHooks=[])).push(-n,o),i&&((t.viewHooks||(t.viewHooks=[])).push(n,i),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,i)),null!=l&&(t.destroyHooks||(t.destroyHooks=[])).push(n,l)}}function We(t,e,n){Ge(t,e,3,n)}function qe(t,e,n,r){(3&t[2])===n&&Ge(t,e,n,r)}function Qe(t,e){let n=t[2];(3&n)===e&&(n&=2047,n+=1,t[2]=n)}function Ge(t,e,n,r){const s=null!=r?r:-1;let o=0;for(let i=void 0!==r?65535&t[18]:0;i<e.length;i++)if(\"number\"==typeof e[i+1]){if(o=e[i],null!=r&&o>=r)break}else e[i]<0&&(t[18]+=65536),(o<s||-1==s)&&(Je(t,n,e,i),t[18]=(4294901760&t[18])+i+2),i++}function Je(t,e,n,r){const s=n[r]<0,o=n[r+1],i=t[s?-n[r]:n[r]];s?t[2]>>11<t[18]>>16&&(3&t[2])===e&&(t[2]+=2048,o.call(i)):o.call(i)}const Ke=-1;class Ye{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}function Xe(t,e,n){const r=re(t);let s=0;for(;s<n.length;){const o=n[s];if(\"number\"==typeof o){if(0!==o)break;s++;const i=n[s++],l=n[s++],u=n[s++];r?t.setAttribute(e,l,u,i):e.setAttributeNS(i,l,u)}else{const i=o,l=n[++s];64===i.charCodeAt(0)?r&&t.setProperty(e,i,l):r?t.setAttribute(e,i,l):e.setAttribute(i,l),s++}}return s}function tn(t,e){if(null===e||0===e.length);else if(null===t||0===t.length)t=e.slice();else{let n=-1;for(let r=0;r<e.length;r++){const s=e[r];\"number\"==typeof s?n=s:0===n||en(t,n,s,null,-1===n||2===n?e[++r]:null)}}return t}function en(t,e,n,r,s){let o=0,i=t.length;if(-1===e)i=-1;else for(;o<t.length;){const n=t[o++];if(\"number\"==typeof n){if(n===e){i=-1;break}if(n>e){i=o-1;break}}}for(;o<t.length;){const e=t[o];if(\"number\"==typeof e)break;if(e===n){if(null===r)return void(null!==s&&(t[o+1]=s));if(r===t[o+1])return void(t[o+2]=s)}o++,null!==r&&o++,null!==s&&o++}-1!==i&&(t.splice(i,0,e),o=i+1),t.splice(o++,0,n),null!==r&&t.splice(o++,0,r),null!==s&&t.splice(o++,0,s)}function nn(t){return 32767&t}function rn(t,e){let n=t>>16,r=e;for(;n>0;)r=r[15],n--;return r}let sn=!0;function on(t){const e=sn;return sn=t,e}let ln=0;function un(t,e){const n=an(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,cn(r.data,t),cn(e,null),cn(r.blueprint,null));const s=hn(t,e),o=t.injectorIndex;if(s!==Ke){const t=nn(s),n=rn(s,e),r=n[1].data;for(let s=0;s<8;s++)e[o+s]=n[t+s]|r[t+s]}return e[o+8]=s,o}function cn(t,e){t.push(0,0,0,0,0,0,0,0,e)}function an(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function hn(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,s=e;for(;null!==s;){const t=s[1],e=t.type;if(r=2===e?t.declTNode:1===e?s[6]:null,null===r)return Ke;if(n++,s=s[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return Ke}function dn(t,e,n){!function(t,e,n){let r;\"string\"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(It)&&(r=n[It]),null==r&&(r=n[It]=ln++);const s=255&r,o=1<<s,i=64&s,l=32&s,u=e.data;128&s?i?l?u[t+7]|=o:u[t+6]|=o:l?u[t+5]|=o:u[t+4]|=o:i?l?u[t+3]|=o:u[t+2]|=o:l?u[t+1]|=o:u[t]|=o}(t,e,n)}function fn(t,e,n){if(n&Ft.Optional)return t;Le(e,\"NodeInjector\")}function pn(t,e,n,r){if(n&Ft.Optional&&void 0===r&&(r=null),0==(n&(Ft.Self|Ft.Host))){const s=t[9],o=Lt(void 0);try{return s?s.get(e,r,n&Ft.Optional):Bt(e,r,n&Ft.Optional)}finally{Lt(o)}}return fn(r,e,n)}const _n={};function yn(){return new wn(me(),_e())}function mn(t,e,n,r,s,o){const i=e[1],l=i.data[t+8],u=function(t,e,n,r,s){const o=t.providerIndexes,i=e.data,l=1048575&o,u=t.directiveStart,c=o>>20,a=s?l+c:t.directiveEnd;for(let h=r?l:l+c;h<a;h++){const t=i[h];if(h<u&&n===t||h>=u&&t.type===n)return h}if(s){const t=i[u];if(t&&ne(t)&&t.type===n)return u}return null}(l,i,n,null==r?function(t){return 2==(2&t.flags)}(l)&&sn:r!=i&&0!=(3&l.type),s&Ft.Host&&o===l);return null!==u?gn(e,i,u,l):_n}function gn(t,e,n,r){let s=t[n];const o=e.data;if(s instanceof Ye){const i=s;i.resolving&&function(t,e){throw new Ve(\"200\",\"Circular dependency in DI detected for \"+t)}(Mt(o[n]));const l=on(i.canSeeViewProviders);i.resolving=!0;const u=i.injectImpl?Lt(i.injectImpl):null;Se(t,r,Ft.Default);try{s=t[n]=i.factory(void 0,o,t,r),e.firstCreatePass&&n>=r.directiveStart&&function(t,e,n){const{ngOnChanges:r,ngOnInit:s,ngDoCheck:o}=e.type.prototype;if(r){const r=((i=e).type.prototype.ngOnChanges&&(i.setInput=ze),Ze);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,r)}var i;s&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,s),o&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,o))}(n,o[n],e)}finally{null!==u&&Lt(u),on(l),i.resolving=!1,je()}}return s}function vn(t,e,n){const r=64&t,s=32&t;let o;return o=128&t?r?s?n[e+7]:n[e+6]:s?n[e+5]:n[e+4]:r?s?n[e+3]:n[e+2]:s?n[e+1]:n[e],!!(o&1<<t)}function bn(t,e){return!(t&Ft.Self||t&Ft.Host&&e)}class wn{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return function(t,e,n,r=Ft.Default,s){if(null!==t){const o=function(t){if(\"string\"==typeof t)return t.charCodeAt(0)||0;const e=t.hasOwnProperty(It)?t[It]:void 0;return\"number\"==typeof e?e>=0?255&e:yn:e}(n);if(\"function\"==typeof o){if(!Se(e,t,r))return r&Ft.Host?fn(s,n,r):pn(e,n,r,s);try{const t=o();if(null!=t||r&Ft.Optional)return t;Le(n)}finally{je()}}else if(\"number\"==typeof o){let s=null,i=an(t,e),l=Ke,u=r&Ft.Host?e[16][6]:null;for((-1===i||r&Ft.SkipSelf)&&(l=-1===i?hn(t,e):e[i+8],l!==Ke&&bn(r,!1)?(s=e[1],i=nn(l),e=rn(l,e)):i=-1);-1!==i;){const t=e[1];if(vn(o,i,t.data)){const t=mn(i,e,n,s,r,u);if(t!==_n)return t}l=e[i+8],l!==Ke&&bn(r,e[1].data[i+8]===u)&&vn(o,i,e)?(s=t,i=nn(l),e=rn(l,e)):i=-1}}}return pn(e,n,r,s)}(this._tNode,this._lView,t,void 0,e)}}function Cn(t){return t.ngDebugContext}function En(t){return t.ngOriginalError}function xn(t,...e){t.error(...e)}class kn{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),r=function(t){return t.ngErrorLogger||xn}(t);r(this._console,\"ERROR\",t),e&&r(this._console,\"ORIGINAL ERROR\",e),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(t){return t?Cn(t)?Cn(t):this._findContext(En(t)):null}_findOriginalError(t){let e=En(t);for(;e&&En(e);)e=En(e);return e}}function Tn(t,e){t.__ngContext__=e}const Sn=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(pt))();function In(t){return t instanceof Function?t():t}var An=function(t){return t[t.Important=1]=\"Important\",t[t.DashCase=2]=\"DashCase\",t}({});function On(t,e){return(void 0)(t,e)}function Dn(t){const e=t[3];return te(e)?e[3]:e}function jn(t){return Nn(t[13])}function Hn(t){return Nn(t[4])}function Nn(t){for(;null!==t&&!te(t);)t=t[4];return t}function Pn(t,e,n,r,s){if(null!=r){let o,i=!1;te(r)?o=r:Xt(r)&&(i=!0,r=r[0]);const l=oe(r);0===t&&null!==n?null==s?Vn(e,n,l):Fn(e,n,l,s||null,!0):1===t&&null!==n?Fn(e,n,l,s||null,!0):2===t?function(t,e,n){const r=function(t,e){return re(t)?t.parentNode(e):e.parentNode}(t,e);r&&function(t,e,n,r){re(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,l,i):3===t&&e.destroyNode(l),null!=o&&function(t,e,n,r,s){const o=n[7];o!==oe(n)&&Pn(e,t,r,o,s);for(let i=10;i<n.length;i++){const s=n[i];zn(s[1],s,t,e,r,o)}}(e,t,o,n,s)}}function Rn(t,e,n){return re(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Mn(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r<n.length;r+=2){const t=e[n[r]];if(!(t instanceof Ye)){const e=n[r+1];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)e[n+1].call(t[e[n]]);else e.call(t)}}}(t,e),function(t,e){const n=t.cleanup;if(null!==n){const t=e[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const s=n[r+1],o=\"function\"==typeof s?s(e):oe(e[s]),i=t[n[r+2]],l=n[r+3];\"boolean\"==typeof l?o.removeEventListener(n[r],i,l):l>=0?t[l]():t[-l].unsubscribe(),r+=2}else n[r].call(t[n[r+1]]);e[7]=null}}(t,e),1===e[1].type&&re(e[11])&&e[11].destroy();const n=e[17];if(null!==n&&te(e[3])){n!==e[3]&&function(t,e){const n=t[9],r=n.indexOf(e),s=e[3];1024&e[2]&&(e[2]&=-1025,de(s,-1)),n.splice(r,1)}(n,e);const r=e[19];null!==r&&r.detachView(t)}}}function Fn(t,e,n,r,s){re(t)?t.insertBefore(e,n,r,s):e.insertBefore(n,r,s)}function Vn(t,e,n){re(t)?t.appendChild(e,n):e.appendChild(n)}function Ln(t,e,n,r,s){null!==r?Fn(t,e,n,r,s):Vn(t,e,n)}function Bn(t,e,n,r){const s=function(t,e,n){return function(t,e,n){let r=e;for(;null!==r&&40&r.type;)r=(e=r).parent;if(null===r)return n[0];if(2&r.flags){const e=t.data[r.directiveStart].encapsulation;if(e===vt.None||e===vt.Emulated)return null}return ie(r,n)}(t,e.parent,n)}(t,r,e),o=e[11],i=function(t,e,n){return function(t,e,n){return 40&t.type?ie(t,n):null}(t,0,n)}(r.parent||e[6],0,e);if(null!=s)if(Array.isArray(n))for(let l=0;l<n.length;l++)Ln(o,s,n[l],i,!1);else Ln(o,s,n,i,!1)}function Zn(t,e,n,r,s,o,i){for(;null!=n;){const l=r[n.index],u=n.type;if(i&&0===e&&(l&&Tn(oe(l),r),n.flags|=4),64!=(64&n.flags))if(8&u)Zn(t,e,n.child,r,s,o,!1),Pn(e,t,s,l,o);else if(32&u){const i=On(n,r);let u;for(;u=i();)Pn(e,t,s,u,o);Pn(e,t,s,l,o)}else 16&u?$n(t,e,r,n,s,o):Pn(e,t,s,l,o);n=i?n.projectionNext:n.next}}function zn(t,e,n,r,s,o){Zn(n,r,t.firstChild,e,s,o,!1)}function $n(t,e,n,r,s,o){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)Pn(e,t,s,l[u],o);else Zn(t,e,l,i[3],s,o,!0)}function Un(t,e,n){re(t)?t.setAttribute(e,\"style\",n):e.style.cssText=n}function Wn(t,e,n){re(t)?\"\"===n?t.removeAttribute(e,\"class\"):t.setAttribute(e,\"class\",n):e.className=n}function qn(t,e,n){let r=t.length;for(;;){const s=t.indexOf(e,n);if(-1===s)return s;if(0===s||t.charCodeAt(s-1)<=32){const n=e.length;if(s+n===r||t.charCodeAt(s+n)<=32)return s}n=s+1}}const Qn=\"ng-template\";function Gn(t,e,n){let r=0;for(;r<t.length;){let s=t[r++];if(n&&\"class\"===s){if(s=t[r],-1!==qn(s.toLowerCase(),e,0))return!0}else if(1===s){for(;r<t.length&&\"string\"==typeof(s=t[r++]);)if(s.toLowerCase()===e)return!0;return!1}}return!1}function Jn(t){return 4===t.type&&t.value!==Qn}function Kn(t,e,n){return e===(4!==t.type||n?t.value:Qn)}function Yn(t,e,n){let r=4;const s=t.attrs||[],o=function(t){for(let n=0;n<t.length;n++)if(3===(e=t[n])||4===e||6===e)return n;var e;return t.length}(s);let i=!1;for(let l=0;l<e.length;l++){const u=e[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!Kn(t,u,n)||\"\"===u&&1===e.length){if(Xn(r))return!1;i=!0}}else{const c=8&r?u:e[++l];if(8&r&&null!==t.attrs){if(!Gn(t.attrs,c,n)){if(Xn(r))return!1;i=!0}continue}const a=tr(8&r?\"class\":u,s,Jn(t),n);if(-1===a){if(Xn(r))return!1;i=!0;continue}if(\"\"!==c){let t;t=a>o?\"\":s[a+1].toLowerCase();const e=8&r?t:null;if(e&&-1!==qn(e,c,0)||2&r&&c!==t){if(Xn(r))return!1;i=!0}}}}else{if(!i&&!Xn(r)&&!Xn(u))return!1;if(i&&Xn(u))continue;i=!1,r=u|1&r}}return Xn(r)||i}function Xn(t){return 0==(1&t)}function tr(t,e,n,r){if(null===e)return-1;let s=0;if(r||!n){let n=!1;for(;s<e.length;){const r=e[s];if(r===t)return s;if(3===r||6===r)n=!0;else{if(1===r||2===r){let t=e[++s];for(;\"string\"==typeof t;)t=e[++s];continue}if(4===r)break;if(0===r){s+=4;continue}}s+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){const r=t[n];if(\"number\"==typeof r)return-1;if(r===e)return n;n++}return-1}(e,t)}function er(t,e,n=!1){for(let r=0;r<e.length;r++)if(Yn(t,e[r],n))return!0;return!1}function nr(t,e){return t?\":not(\"+e.trim()+\")\":e}function rr(t){let e=t[0],n=1,r=2,s=\"\",o=!1;for(;n<t.length;){let i=t[n];if(\"string\"==typeof i)if(2&r){const e=t[++n];s+=\"[\"+i+(e.length>0?'=\"'+e+'\"':\"\")+\"]\"}else 8&r?s+=\".\"+i:4&r&&(s+=\" \"+i);else\"\"===s||Xn(i)||(e+=nr(o,s),s=\"\"),r=i,o=o||!Xn(r);n++}return\"\"!==s&&(e+=nr(o,s)),e}const sr={};function or(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const s=n[r],o=n[r+1];if(-1!==o){const n=t.data[o];ke(s),n.contentQueries(2,e[o],o)}}}function ir(t,e,n,r,s,o,i,l,u,c){const a=e.blueprint.slice();return a[0]=s,a[2]=140|r,he(a),a[3]=a[15]=t,a[8]=n,a[10]=i||t&&t[10],a[11]=l||t&&t[11],a[12]=u||t&&t[12]||null,a[9]=c||t&&t[9]||null,a[6]=o,a[16]=2==e.type?t[16]:a,a}function lr(t,e,n,r,s){let o=t.data[e];if(null===o)o=function(t,e,n,r,s){const o=ge(),i=be(),l=t.data[e]=function(t,e,n,r,s,o){return{type:n,index:r,insertBeforeIndex:null,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:s,attrs:o,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,i?o:o&&o.parent,n,e,r,s);return null===t.firstChild&&(t.firstChild=l),null!==o&&(i?null==o.child&&null!==l.parent&&(o.child=l):null===o.next&&(o.next=l)),l}(t,e,n,r,s),fe.lFrame.inI18n&&(o.flags|=64);else if(64&o.type){o.type=n,o.value=r,o.attrs=s;const t=function(){const t=fe.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}();o.injectorIndex=null===t?-1:t.injectorIndex}return ve(o,!0),o}function ur(t,e,n,r){if(0===n)return-1;const s=e.length;for(let o=0;o<n;o++)e.push(r),t.blueprint.push(r),t.data.push(null);return s}function cr(t,e,n){Ie(e);try{const r=t.viewQuery;null!==r&&Dr(1,r,n);const s=t.template;null!==s&&dr(t,e,s,1,n),t.firstCreatePass&&(t.firstCreatePass=!1),t.staticContentQueries&&or(t,e),t.staticViewQueries&&Dr(2,t.viewQuery,n);const o=t.components;null!==o&&function(t,e){for(let n=0;n<e.length;n++)Sr(t,e[n])}(e,o)}catch(r){throw t.firstCreatePass&&(t.incompleteFirstPass=!0),r}finally{e[2]&=-5,He()}}function ar(t,e,n,r){const s=e[2];if(256==(256&s))return;Ie(e);const o=we();try{he(e),fe.lFrame.bindingIndex=t.bindingStartIndex,null!==n&&dr(t,e,n,2,r);const i=3==(3&s);if(!o)if(i){const n=t.preOrderCheckHooks;null!==n&&We(e,n,null)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,null),Qe(e,0)}if(function(t){for(let e=jn(t);null!==e;e=Hn(e)){if(!e[2])continue;const t=e[9];for(let e=0;e<t.length;e++){const n=t[e],r=n[3];0==(1024&n[2])&&de(r,1),n[2]|=1024}}}(e),function(t){for(let e=jn(t);null!==e;e=Hn(e))for(let t=10;t<e.length;t++){const n=e[t],r=n[1];ce(n)&&ar(r,n,r.template,n[8])}}(e),null!==t.contentQueries&&or(t,e),!o)if(i){const n=t.contentCheckHooks;null!==n&&We(e,n)}else{const n=t.contentHooks;null!==n&&qe(e,n,1),Qe(e,1)}!function(t,e){const n=t.hostBindingOpCodes;if(null!==n)try{for(let t=0;t<n.length;t++){const r=n[t];if(r<0)Ne(~r);else{const s=r,o=n[++t],i=n[++t];Ee(o,s),i(2,e[s])}}}finally{Ne(-1)}}(t,e);const l=t.components;null!==l&&function(t,e){for(let n=0;n<e.length;n++)kr(t,e[n])}(e,l);const u=t.viewQuery;if(null!==u&&Dr(2,u,r),!o)if(i){const n=t.viewCheckHooks;null!==n&&We(e,n)}else{const n=t.viewHooks;null!==n&&qe(e,n,2),Qe(e,2)}!0===t.firstUpdatePass&&(t.firstUpdatePass=!1),o||(e[2]&=-73),1024&e[2]&&(e[2]&=-1025,de(e[3],-1))}finally{He()}}function hr(t,e,n,r){const s=e[10],o=!we(),i=4==(4&e[2]);try{o&&!i&&s.begin&&s.begin(),i&&cr(t,e,r),ar(t,e,n,r)}finally{o&&!i&&s.end&&s.end()}}function dr(t,e,n,r,s){const o=fe.lFrame.selectedIndex;try{Ne(-1),2&r&&e.length>Yt&&function(t,e,n,r){if(!r)if(3==(3&e[2])){const n=t.preOrderCheckHooks;null!==n&&We(e,n,20)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,20)}Ne(20)}(t,e,0,we()),n(r,s)}finally{Ne(o)}}function fr(t){const e=t.tView;return null===e||e.incompleteFirstPass?t.tView=pr(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts):e}function pr(t,e,n,r,s,o,i,l,u,c){const a=Yt+r,h=a+s,d=function(t,e){const n=[];for(let r=0;r<e;r++)n.push(r<t?null:sr);return n}(a,h),f=\"function\"==typeof c?c():c;return d[1]={type:t,blueprint:d,template:n,queries:null,viewQuery:l,declTNode:e,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof o?o():o,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:f,incompleteFirstPass:!1}}function _r(t,e,n){for(let r in t)if(t.hasOwnProperty(r)){const s=t[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(e,s):n[r]=[e,s]}return n}function yr(t,e,n,r,s,o){const i=o.hostBindings;if(i){let n=t.hostBindingOpCodes;null===n&&(n=t.hostBindingOpCodes=[]);const o=~e.index;(function(t){let e=t.length;for(;e>0;){const n=t[--e];if(\"number\"==typeof n&&n<0)return n}return 0})(n)!=o&&n.push(o),n.push(r,s,i)}}function mr(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function gr(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function vr(t,e,n){if(n){if(e.exportAs)for(let r=0;r<e.exportAs.length;r++)n[e.exportAs[r]]=t;ne(e)&&(n[\"\"]=t)}}function br(t,e,n){t.flags|=1,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function wr(t,e,n,r,s){t.data[r]=s;const o=s.factory||(s.factory=Fe(s.type)),i=new Ye(o,ne(s),null);t.blueprint[r]=i,n[r]=i,yr(t,e,0,r,ur(t,n,s.hostVars,sr),s)}function Cr(t,e,n){const r=ie(e,t),s=fr(n),o=t[10],i=Ir(t,ir(t,s,null,n.onPush?64:16,r,e,o,o.createRenderer(r,n),null,null));t[e.index]=i}function Er(t,e,n,r,s,o){const i=o[e];if(null!==i){const t=r.setInput;for(let e=0;e<i.length;){const s=i[e++],o=i[e++],l=i[e++];null!==t?r.setInput(n,l,s,o):n[o]=l}}}function xr(t,e){let n=null,r=0;for(;r<e.length;){const s=e[r];if(0!==s)if(5!==s){if(\"number\"==typeof s)break;t.hasOwnProperty(s)&&(null===n&&(n=[]),n.push(s,t[s],e[r+1])),r+=2}else r+=2;else r+=4}return n}function kr(t,e){const n=le(e,t);if(ce(n)){const t=n[1];80&n[2]?ar(t,n,t.template,n[8]):n[5]>0&&Tr(n)}}function Tr(t){for(let n=jn(t);null!==n;n=Hn(n))for(let t=10;t<n.length;t++){const e=n[t];if(1024&e[2]){const t=e[1];ar(t,e,t.template,e[8])}else e[5]>0&&Tr(e)}const e=t[1].components;if(null!==e)for(let n=0;n<e.length;n++){const r=le(e[n],t);ce(r)&&r[5]>0&&Tr(r)}}function Sr(t,e){const n=le(e,t),r=n[1];!function(t,e){for(let n=e.length;n<t.blueprint.length;n++)e.push(t.blueprint[n])}(r,n),cr(r,n,n[8])}function Ir(t,e){return t[13]?t[14][4]=e:t[13]=e,t[14]=e,e}function Ar(t,e,n){const r=e[10];r.begin&&r.begin();try{ar(t,e,t.template,n)}catch(s){throw function(t,e){const n=t[9],r=n?n.get(kn,null):null;r&&r.handleError(e)}(e,s),s}finally{r.end&&r.end()}}function Or(t){!function(t){for(let e=0;e<t.components.length;e++){const n=t.components[e],r=ue(n),s=r[1];hr(s,r,s.template,n)}}(t[8])}function Dr(t,e,n){ke(0),e(t,n)}const jr=(()=>Promise.resolve(null))();function Hr(t,e,n){let r=n?t.styles:null,s=n?t.classes:null,o=0;if(null!==e)for(let i=0;i<e.length;i++){const t=e[i];\"number\"==typeof t?o=t:1==o?s=K(s,t):2==o&&(r=K(r,t+\": \"+e[++i]+\";\"))}n?t.styles=r:t.stylesWithoutHost=r,n?t.classes=s:t.classesWithoutHost=s}const Nr=new ut(\"INJECTOR\",-1);class Pr{get(t,e=Zt){if(e===Zt){const e=new Error(`NullInjectorError: No provider for ${J(t)}!`);throw e.name=\"NullInjectorError\",e}return e}}const Rr=new ut(\"Set Injector scope.\"),Mr={},Fr={},Vr=[];let Lr=void 0;function Br(){return void 0===Lr&&(Lr=new Pr),Lr}function Zr(t,e=null,n=null,r){return new zr(t,n,e||Br(),r)}class zr{constructor(t,e,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];e&&gt(e,n=>this.processProvider(n,t,e)),gt([t],t=>this.processInjectorType(t,[],s)),this.records.set(Nr,Ur(void 0,this));const o=this.records.get(Rr);this.scope=null!=o?o.value:null,this.source=r||(\"object\"==typeof t?null:J(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Zt,n=Ft.Default){this.assertNotDestroyed();const r=qt(this);try{if(!(n&Ft.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=(\"function\"==typeof(s=t)||\"object\"==typeof s&&s instanceof ut)&&et(t);e=n&&this.injectableDefInScope(n)?Ur($r(t),Mr):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(n&Ft.Self?Br():this.parent).get(t,e=n&Ft.Optional&&e===Zt?null:e)}catch(o){if(\"NullInjectorError\"===o.name){if((o.ngTempTokenPath=o.ngTempTokenPath||[]).unshift(J(t)),r)throw o;return function(t,e,n,r){const s=t.ngTempTokenPath;throw e[$t]&&s.unshift(e[$t]),t.message=function(t,e,n,r=null){t=t&&\"\\n\"===t.charAt(0)&&\"\\u0275\"==t.charAt(1)?t.substr(2):t;let s=J(e);if(Array.isArray(e))s=e.map(J).join(\" -> \");else if(\"object\"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];t.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):J(r)))}s=`{${t.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${s}]: ${t.replace(zt,\"\\n  \")}`}(\"\\n\"+t.message,s,n,r),t.ngTokenPath=s,t.ngTempTokenPath=null,t}(o,t,\"R3InjectorError\",this.source)}throw o}finally{qt(r)}var s}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((e,n)=>t.push(J(n))),`R3Injector[${t.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(t,e,n){if(!(t=mt(t)))return!1;let r=rt(t);const s=null==r&&t.ngModule||void 0,o=void 0===s?t:s,i=-1!==n.indexOf(o);if(void 0!==s&&(r=rt(s)),null==r)return!1;if(null!=r.imports&&!i){let t;n.push(o);try{gt(r.imports,r=>{this.processInjectorType(r,e,n)&&(void 0===t&&(t=[]),t.push(r))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:r}=t[e];gt(r,t=>this.processProvider(t,n,r||Vr))}}this.injectorDefTypes.add(o),this.records.set(o,Ur(r.factory,Mr));const l=r.providers;if(null!=l&&!i){const e=t;gt(l,t=>this.processProvider(t,e,l))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,n){let r=qr(t=mt(t))?t:mt(t&&t.provide);const s=function(t,e,n){return Wr(t)?Ur(void 0,t.useValue):Ur(function(t,e,n){let r=void 0;if(qr(t)){const e=mt(t);return Fe(e)||$r(e)}if(Wr(t))r=()=>mt(t.useValue);else if((s=t)&&s.useFactory)r=()=>t.useFactory(...Jt(t.deps||[]));else if(function(t){return!(!t||!t.useExisting)}(t))r=()=>Gt(mt(t.useExisting));else{const e=mt(t&&(t.useClass||t.provide));if(!function(t){return!!t.deps}(t))return Fe(e)||$r(e);r=()=>new e(...Jt(t.deps))}var s;return r}(t),Mr)}(t);if(qr(t)||!0!==t.multi)this.records.get(r);else{let e=this.records.get(r);e||(e=Ur(void 0,Mr,!0),e.factory=()=>Jt(e.multi),this.records.set(r,e)),r=t,e.multi.push(t)}this.records.set(r,s)}hydrate(t,e){var n;return e.value===Mr&&(e.value=Fr,e.value=e.factory()),\"object\"==typeof e.value&&e.value&&null!==(n=e.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&(\"string\"==typeof t.providedIn?\"any\"===t.providedIn||t.providedIn===this.scope:this.injectorDefTypes.has(t.providedIn))}}function $r(t){const e=et(t),n=null!==e?e.factory:Fe(t);if(null!==n)return n;const r=rt(t);if(null!==r)return r.factory;if(t instanceof ut)throw new Error(`Token ${J(t)} is missing a \\u0275prov definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=function(t,e){const n=[];for(let r=0;r<t;r++)n.push(\"?\");return n}(e);throw new Error(`Can't resolve all parameters for ${J(t)}: (${n.join(\", \")}).`)}const n=function(t){const e=t&&(t[st]||t[it]);if(e){const n=function(t){if(t.hasOwnProperty(\"name\"))return t.name;const e=(\"\"+t).match(/^function\\s*([^\\s(]+)/);return null===e?\"\":e[1]}(t);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\nThis will become an error in a future version of Angular. Please add @Injectable() to the \"${n}\" class.`),e}return null}(t);return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error(\"unreachable\")}function Ur(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Wr(t){return null!==t&&\"object\"==typeof t&&Ut in t}function qr(t){return\"function\"==typeof t}const Qr=function(t,e,n){return function(t,e=null,n=null,r){const s=Zr(t,e,n,r);return s._resolveInjectorDefTypes(),s}({name:n},e,t,n)};let Gr=(()=>{class t{static create(t,e){return Array.isArray(t)?Qr(t,e,\"\"):Qr(t.providers,t.parent,t.name||\"\")}}return t.THROW_IF_NOT_FOUND=Zt,t.NULL=new Pr,t.\\u0275prov=X({token:t,providedIn:\"any\",factory:()=>Gt(Nr)}),t.__NG_ELEMENT_ID__=-1,t})();function Jr(t,e){Ue(ue(t)[1],me())}let Kr=null;function Yr(){if(!Kr){const t=pt.Symbol;if(t&&t.iterator)Kr=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Kr=n)}}}return Kr}function Xr(t){return!!ts(t)&&(Array.isArray(t)||!(t instanceof Map)&&Yr()in t)}function ts(t){return null!==t&&(\"function\"==typeof t||\"object\"==typeof t)}function es(t,e,n,r,s){const o=s?\"class\":\"style\";!function(t,e,n,r,s){for(let o=0;o<n.length;){const i=n[o++],l=n[o++],u=e[i],c=t.data[i];null!==c.setInput?c.setInput(u,s,r,l):u[l]=s}}(t,n,e.inputs[o],o,r)}function ns(t,e,n,r){const s=_e(),o=ye(),i=Yt+t,l=s[11],u=s[i]=Rn(l,e,fe.lFrame.currentNamespace),c=o.firstCreatePass?function(t,e,n,r,s,o,i){const l=e.consts,u=lr(e,t,2,s,ae(l,o));return function(t,e,n,r){let s=!1;if(pe()){const o=function(t,e,n){const r=t.directiveRegistry;let s=null;if(r)for(let o=0;o<r.length;o++){const i=r[o];er(n,i.selectors,!1)&&(s||(s=[]),dn(un(n,e),t,i.type),ne(i)?(gr(t,n),s.unshift(i)):s.push(i))}return s}(t,e,n),i=null===r?null:{\"\":-1};if(null!==o){s=!0,br(n,t.data.length,o.length);for(let t=0;t<o.length;t++){const e=o[t];e.providersResolver&&e.providersResolver(e)}let r=!1,l=!1,u=ur(t,e,o.length,null);for(let s=0;s<o.length;s++){const c=o[s];n.mergedAttrs=tn(n.mergedAttrs,c.hostAttrs),wr(t,n,e,u,c),vr(u,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128);const a=c.type.prototype;!r&&(a.ngOnChanges||a.ngOnInit||a.ngDoCheck)&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n.index),r=!0),l||!a.ngOnChanges&&!a.ngDoCheck||((t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n.index),l=!0),u++}!function(t,e){const n=e.directiveEnd,r=t.data,s=e.attrs,o=[];let i=null,l=null;for(let u=e.directiveStart;u<n;u++){const t=r[u],n=t.inputs,c=null===s||Jn(e)?null:xr(n,s);o.push(c),i=_r(n,u,i),l=_r(t.outputs,u,l)}null!==i&&(i.hasOwnProperty(\"class\")&&(e.flags|=16),i.hasOwnProperty(\"style\")&&(e.flags|=32)),e.initialInputs=o,e.inputs=i,e.outputs=l}(t,n)}i&&function(t,e,n){if(e){const r=t.localNames=[];for(let t=0;t<e.length;t+=2){const s=n[e[t+1]];if(null==s)throw new Ve(\"301\",`Export of name '${e[t+1]}' not found!`);r.push(e[t],s)}}}(n,r,i)}n.mergedAttrs=tn(n.mergedAttrs,n.attrs)}(e,n,u,ae(l,i)),null!==u.attrs&&Hr(u,u.attrs,!1),null!==u.mergedAttrs&&Hr(u,u.mergedAttrs,!0),null!==e.queries&&e.queries.elementStart(e,u),u}(i,o,s,0,e,n,r):o.data[i];ve(c,!0);const a=c.mergedAttrs;null!==a&&Xe(l,u,a);const h=c.classes;null!==h&&Wn(l,u,h);const d=c.styles;null!==d&&Un(l,u,d),64!=(64&c.flags)&&Bn(o,s,u,c),0===fe.lFrame.elementDepthCount&&Tn(u,s),fe.lFrame.elementDepthCount++,function(t){return 1==(1&t.flags)}(c)&&(function(t,e,n){pe()&&(function(t,e,n,r){const s=n.directiveStart,o=n.directiveEnd;t.firstCreatePass||un(n,e),Tn(r,e);const i=n.initialInputs;for(let l=s;l<o;l++){const r=t.data[l],o=ne(r);o&&Cr(e,n,r);const u=gn(e,t,l,n);Tn(u,e),null!==i&&Er(0,l-s,u,r,0,i),o&&(le(n.index,e)[8]=u)}}(t,e,n,ie(n,e)),128==(128&n.flags)&&function(t,e,n){const r=n.directiveStart,s=n.directiveEnd,o=n.index,i=fe.lFrame.currentDirectiveIndex;try{Ne(o);for(let n=r;n<s;n++){const r=t.data[n],s=e[n];xe(n),null===r.hostBindings&&0===r.hostVars&&null===r.hostAttrs||mr(r,s)}}finally{Ne(-1),xe(i)}}(t,e,n))}(o,s,c),function(t,e,n){if(ee(e)){const r=e.directiveEnd;for(let s=e.directiveStart;s<r;s++){const e=t.data[s];e.contentQueries&&e.contentQueries(1,n[s],s)}}}(o,c,s)),null!==r&&function(t,e,n=ie){const r=e.localNames;if(null!==r){let s=e.index+1;for(let o=0;o<r.length;o+=2){const i=r[o+1],l=-1===i?n(e,t):t[i];t[s++]=l}}}(s,c)}function rs(t){return!!t&&\"function\"==typeof t.then}const ss=void 0;var os=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],ss],[[\"AM\",\"PM\"],ss,ss],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],ss,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],ss,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",ss,\"{1} 'at' {0}\",ss],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},\"ltr\",function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===e&&0===n?1:5}];let is={};function ls(t){return t in is||(is[t]=pt.ng&&pt.ng.common&&pt.ng.common.locales&&pt.ng.common.locales[t]),is[t]}var us=function(t){return t[t.LocaleId=0]=\"LocaleId\",t[t.DayPeriodsFormat=1]=\"DayPeriodsFormat\",t[t.DayPeriodsStandalone=2]=\"DayPeriodsStandalone\",t[t.DaysFormat=3]=\"DaysFormat\",t[t.DaysStandalone=4]=\"DaysStandalone\",t[t.MonthsFormat=5]=\"MonthsFormat\",t[t.MonthsStandalone=6]=\"MonthsStandalone\",t[t.Eras=7]=\"Eras\",t[t.FirstDayOfWeek=8]=\"FirstDayOfWeek\",t[t.WeekendRange=9]=\"WeekendRange\",t[t.DateFormat=10]=\"DateFormat\",t[t.TimeFormat=11]=\"TimeFormat\",t[t.DateTimeFormat=12]=\"DateTimeFormat\",t[t.NumberSymbols=13]=\"NumberSymbols\",t[t.NumberFormats=14]=\"NumberFormats\",t[t.CurrencyCode=15]=\"CurrencyCode\",t[t.CurrencySymbol=16]=\"CurrencySymbol\",t[t.CurrencyName=17]=\"CurrencyName\",t[t.Currencies=18]=\"Currencies\",t[t.Directionality=19]=\"Directionality\",t[t.PluralCase=20]=\"PluralCase\",t[t.ExtraData=21]=\"ExtraData\",t}({});const cs=\"en-US\";let as=cs;function hs(t){var e,n;n=\"Expected localeId to be defined\",null==(e=t)&&function(t,e,n,r){throw new Error(\"ASSERTION ERROR: \"+t+` [Expected=> null != ${e} <=Actual]`)}(n,e),\"string\"==typeof t&&(as=t.toLowerCase().replace(/_/g,\"-\"))}class ds{}class fs{resolveComponentFactory(t){throw function(t){const e=Error(`No component factory found for ${J(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(t)}}let ps=(()=>{class t{}return t.NULL=new fs,t})();function _s(...t){}function ys(t,e){return new gs(ie(t,e))}const ms=function(){return ys(me(),_e())};let gs=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=ms,t})();class vs{}let bs=(()=>{class t{}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>null}),t})();class ws{constructor(t){this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}}const Cs=new ws(\"11.0.2\");class Es{constructor(){}supports(t){return Xr(t)}create(t){return new ks(t)}}const xs=(t,e)=>e;class ks{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||xs}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,r=0,s=null;for(;e||n;){const o=!n||e&&e.currentIndex<As(n,r,s)?e:n,i=As(o,r,s),l=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(e=e._next,null==o.previousIndex)r++;else{s||(s=[]);const t=i-r,e=l-r;if(t!=e){for(let n=0;n<t;n++){const r=n<s.length?s[n]:s[n]=0,o=r+n;e<=o&&o<t&&(s[n]=r+1)}s[o.previousIndex]=e-t}}i!==l&&t(o,i,l)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!Xr(t))throw new Error(`Error trying to diff '${J(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,r,s=this._itHead,o=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],r=this._trackByFn(e,n),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,n,r,e)),Object.is(s.item,n)||this._addIdentityChange(s,n)):(s=this._mismatch(s,n,r,e),o=!0),s=s._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[Yr()]();let r;for(;!(r=n.next()).done;)e(r.value)}}(t,t=>{r=this._trackByFn(e,t),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,t,r,e)),Object.is(s.item,t)||this._addIdentityChange(s,t)):(s=this._mismatch(s,t,r,e),o=!0),s=s._next,e++}),this.length=e;return this._truncate(s),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):t=this._addAfter(new Ts(e,n),s,r),t}_verifyReinsertion(t,e,n,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Is),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Is),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class Ts{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Ss{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class Is{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new Ss,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function As(t,e,n){const r=t.previousIndex;if(null===r)return r;let s=0;return n&&r<n.length&&(s=n[r]),r+e+s}class Os{constructor(){}supports(t){return t instanceof Map||ts(t)}create(){return new Ds}}class Ds{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||ts(t)))throw new Error(`Error trying to diff '${J(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const n=this._records.get(t);this._maybeAddToChanges(n,e);const r=n._prev,s=n._next;return r&&(r._next=s),s&&(s._prev=r),n._next=null,n._prev=null,n}const n=new js(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(n=>e(t[n],n))}}class js{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let Hs=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Es])}),t})(),Ns=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Os])}),t})();function Ps(t,e,n,r,s=!1){for(;null!==n;){const o=e[n.index];if(null!==o&&r.push(oe(o)),te(o))for(let t=10;t<o.length;t++){const e=o[t],n=e[1].firstChild;null!==n&&Ps(e[1],e,n,r)}const i=n.type;if(8&i)Ps(t,e,n.child,r);else if(32&i){const t=On(n,e);let s;for(;s=t();)r.push(s)}else if(16&i){const t=e[16],s=t[6].projection[n.projection];if(Array.isArray(s))r.push(...s);else{const e=Dn(t);Ps(e[1],e,s,r,!0)}}n=s?n.projectionNext:n.next}return r}class Rs extends class{constructor(t,e){this._lView=t,this._cdRefInjectingView=e,this._appRef=null,this._viewContainerRef=null}get rootNodes(){const t=this._lView,e=t[1];return Ps(e,t,e.firstChild,[])}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}!function(t,e){if(!(256&e[2])){const n=e[11];re(n)&&n.destroyNode&&zn(t,e,n,3,null,null),function(t){let e=t[13];if(!e)return Mn(t[1],t);for(;e;){let n=null;if(Xt(e))n=e[13];else{const t=e[10];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)Xt(e)&&Mn(e[1],e),e=e[3];null===e&&(e=t),Xt(e)&&Mn(e[1],e),n=e&&e[4]}e=n}}(e)}}(this._lView[1],this._lView)}onDestroy(t){!function(t,e,n,r){const s=(o=e)[7]||(o[7]=[]);var o;s.push(null),t.firstCreatePass&&function(t){return t.cleanup||(t.cleanup=[])}(t).push(r,s.length-1)}(this._lView[1],this._lView,0,t)}markForCheck(){!function(t){for(;t;){t[2]|=64;const e=Dn(t);if(0!=(512&t[2])&&!e)return t;t=e}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){Ar(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(t,e,n){Ce(!0);try{Ar(t,e,n)}finally{Ce(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=t}detachFromAppRef(){var t;this._appRef=null,zn(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=t}}{constructor(t){super(t),this._view=t}detectChanges(){Or(this._view)}checkNoChanges(){!function(t){Ce(!0);try{Or(t)}finally{Ce(!1)}}(this._view)}get context(){return null}}const Ms=[new Os],Fs=new Hs([new Es]),Vs=new Ns(Ms);class Ls{}const Bs={};class Zs extends ps{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=Pt(t);return new Us(e,this.ngModule)}}function zs(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const $s=new ut(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Sn});class Us extends ds{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors.map(rr).join(\",\"),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return zs(this.componentDef.inputs)}get outputs(){return zs(this.componentDef.outputs)}create(t,e,n,r){const s=(r=r||this.ngModule)?function(t,e){return{get:(n,r,s)=>{const o=t.get(n,Bs,s);return o!==Bs||r===Bs?o:e.get(n,r,s)}}}(t,r.injector):t,o=s.get(vs,se),i=s.get(bs,null),l=o.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(t,e,n){if(re(t))return t.selectRootElement(e,n===vt.ShadowDom);let r=\"string\"==typeof e?t.querySelector(e):e;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Rn(o.createRenderer(null,this.componentDef),u,function(t){const e=t.toLowerCase();return\"svg\"===e?\"http://www.w3.org/2000/svg\":\"math\"===e?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h={components:[],scheduler:Sn,clean:jr,playerHandler:null,flags:0},d=pr(0,null,null,1,0,null,null,null,null,null),f=ir(null,d,h,a,null,null,o,l,i,s);let p,_;Ie(f);try{const t=function(t,e,n,r,s,o){const i=n[1];n[20]=t;const l=lr(i,20,2,\"#host\",null),u=l.mergedAttrs=e.hostAttrs;null!==u&&(Hr(l,u,!0),null!==t&&(Xe(s,t,u),null!==l.classes&&Wn(s,t,l.classes),null!==l.styles&&Un(s,t,l.styles)));const c=r.createRenderer(t,e),a=ir(n,fr(e),null,e.onPush?64:16,n[20],l,r,c,null,null);return i.firstCreatePass&&(dn(un(l,n),i,e.type),gr(i,l),br(l,n.length,1)),Ir(n,a),n[20]=a}(c,this.componentDef,f,o,l);if(c)if(n)Xe(l,c,[\"ng-version\",Cs.full]);else{const{attrs:t,classes:e}=function(t){const e=[],n=[];let r=1,s=2;for(;r<t.length;){let o=t[r];if(\"string\"==typeof o)2===s?\"\"!==o&&e.push(o,t[++r]):8===s&&n.push(o);else{if(!Xn(s))break;s=o}r++}return{attrs:e,classes:n}}(this.componentDef.selectors[0]);t&&Xe(l,c,t),e&&e.length>0&&Wn(l,c,e.join(\" \"))}if(_=d.data[20],void 0!==e){const t=_.projection=[];for(let n=0;n<this.ngContentSelectors.length;n++){const r=e[n];t.push(null!=r?Array.from(r):null)}}p=function(t,e,n,r,s){const o=n[1],i=function(t,e,n){const r=me();t.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),wr(t,r,e,ur(t,e,1,null),n));const s=gn(e,t,r.directiveStart,r);Tn(s,e);const o=ie(r,e);return o&&Tn(o,e),s}(o,n,e);if(r.components.push(i),t[8]=i,s&&s.forEach(t=>t(i,e)),e.contentQueries){const t=me();e.contentQueries(1,i,t.directiveStart)}const l=me();return!o.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(Ne(l.index),yr(n[1],l,0,l.directiveStart,l.directiveEnd,e),mr(e,i)),i}(t,this.componentDef,f,h,[Jr]),cr(d,f,null)}finally{He()}return new Ws(this.componentType,p,ys(_,f),f,_)}}class Ws extends class{}{constructor(t,e,n,r,s){super(),this.location=n,this._rootLView=r,this._tNode=s,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new Rs(r),this.componentType=t}get injector(){return new wn(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const qs=new Map;class Qs extends Ls{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Zs(this);const n=Rt(t),r=t[Tt]||null;r&&hs(r),this._bootstrapComponents=In(n.bootstrap),this._r3Injector=Zr(t,e,[{provide:Ls,useValue:this},{provide:ps,useValue:this.componentFactoryResolver}],J(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=Gr.THROW_IF_NOT_FOUND,n=Ft.Default){return t===Gr||t===Ls||t===Nr?this:this._r3Injector.get(t,e,n)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Gs extends class{}{constructor(t){super(),this.moduleType=t,null!==Rt(t)&&function(t){const e=new Set;!function t(n){const r=Rt(n,!0),s=r.id;null!==s&&(function(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${J(e)} vs ${J(e.name)}`)}(s,qs.get(s),n),qs.set(s,n));const o=In(r.imports);for(const i of o)e.has(i)||(e.add(i),t(i))}(t)}(t)}create(t){return new Qs(this.moduleType,t)}}const Js=class extends E{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let r,s=t=>null,o=()=>null;t&&\"object\"==typeof t?(r=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(s=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(o=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(r=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(s=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(o=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,s,o);return t instanceof h&&t.add(i),i}},Ks=new ut(\"Application Initializer\");let Ys=(()=>{class t{constructor(t){this.appInits=t,this.resolve=_s,this.reject=_s,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();rs(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Ks,8))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const Xs=new ut(\"AppId\"),to={provide:Xs,useFactory:function(){return`${eo()}${eo()}${eo()}`},deps:[]};function eo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const no=new ut(\"Platform Initializer\"),ro=new ut(\"Platform ID\"),so=new ut(\"appBootstrapListener\");let oo=(()=>{class t{log(t){console.log(t)}warn(t){console.warn(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const io=new ut(\"LocaleId\"),lo=new ut(\"DefaultCurrencyCode\");class uo{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const co=function(t){return new Gs(t)},ao=co,ho=function(t){return Promise.resolve(co(t))},fo=function(t){const e=co(t),n=In(Rt(t).declarations).reduce((t,e)=>{const n=Pt(e);return n&&t.push(new Us(n)),t},[]);return new uo(e,n)},po=fo,_o=function(t){return Promise.resolve(fo(t))};let yo=(()=>{class t{constructor(){this.compileModuleSync=ao,this.compileModuleAsync=ho,this.compileModuleAndAllComponentsSync=po,this.compileModuleAndAllComponentsAsync=_o}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const mo=(()=>Promise.resolve(0))();function go(t){\"undefined\"==typeof Zone?mo.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",t)}class vo{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Js(!1),this.onMicrotaskEmpty=new Js(!1),this.onStable=new Js(!1),this.onError=new Js(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched();const n=this;n._nesting=0,n._outer=n._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(n._inner=n._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(n._inner=n._inner.fork(Zone.longStackTraceZoneSpec)),n.shouldCoalesceEventChangeDetection=e,n.lastRequestAnimationFrameId=-1,n.nativeRequestAnimationFrame=function(){let t=pt.requestAnimationFrame,e=pt.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__(\"OriginalDelegate\")];n&&(t=n);const r=e[Zone.__symbol__(\"OriginalDelegate\")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function(t){const e=!!t.shouldCoalesceEventChangeDetection&&t.nativeRequestAnimationFrame&&(()=>{!function(t){-1===t.lastRequestAnimationFrameId&&(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(pt,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask(\"fakeTopEventTask\",()=>{t.lastRequestAnimationFrameId=-1,Eo(t),Co(t)},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Eo(t))}(t)});t._inner=t._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:e},onInvokeTask:(n,r,s,o,i,l)=>{try{return xo(t),n.invokeTask(s,o,i,l)}finally{e&&\"eventTask\"===o.type&&e(),ko(t)}},onInvoke:(e,n,r,s,o,i,l)=>{try{return xo(t),e.invoke(r,s,o,i,l)}finally{ko(t)}},onHasTask:(e,n,r,s)=>{e.hasTask(r,s),n===r&&(\"microTask\"==s.change?(t._hasPendingMicrotasks=s.microTask,Eo(t),Co(t)):\"macroTask\"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,n,r,s)=>(e.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(n)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!vo.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(vo.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,r){const s=this._inner,o=s.scheduleEventTask(\"NgZoneEvent: \"+r,t,wo,bo,bo);try{return s.runTask(o,e,n)}finally{s.cancelTask(o)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function bo(){}const wo={};function Co(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Eo(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||t.shouldCoalesceEventChangeDetection&&-1!==t.lastRequestAnimationFrameId)}function xo(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ko(t){t._nesting--,Co(t)}class To{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Js,this.onMicrotaskEmpty=new Js,this.onStable=new Js,this.onError=new Js}run(t,e,n){return t.apply(e,n)}runGuarded(t,e,n){return t.apply(e,n)}runOutsideAngular(t){return t()}runTask(t,e,n,r){return t.apply(e,n)}}let So=(()=>{class t{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{vo.assertNotInAngularZone(),go(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())go(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let r=-1;e&&e>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==r),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Io=(()=>{class t{constructor(){this._applications=new Map,Do.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return Do.findTestabilityInTree(this,t,e)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class Ao{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}let Oo,Do=new Ao;const jo=new ut(\"AllowMultipleToken\");function Ho(t,e,n=[]){const r=\"Platform: \"+e,s=new ut(r);return(e=[])=>{let o=No();if(!o||o.injector.get(jo,!1))if(t)t(n.concat(e).concat({provide:s,useValue:!0}));else{const t=n.concat(e).concat({provide:s,useValue:!0},{provide:Rr,useValue:\"platform\"});!function(t){if(Oo&&!Oo.destroyed&&!Oo.injector.get(jo,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");Oo=t.get(Po);const e=t.get(no,null);e&&e.forEach(t=>t())}(Gr.create({providers:t,name:r}))}return function(t){const e=No();if(!e)throw new Error(\"No platform exists!\");if(!e.injector.get(t,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return e}(s)}}function No(){return Oo&&!Oo.destroyed?Oo:null}let Po=(()=>{class t{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t,e){let n;return n=\"noop\"===t?new To:(\"zone.js\"===t?void 0:t)||new vo({enableLongStackTrace:Me(),shouldCoalesceEventChangeDetection:e}),n}(e?e.ngZone:void 0,e&&e.ngZoneEventCoalescing||!1),r=[{provide:vo,useValue:n}];return n.run(()=>{const e=Gr.create({providers:r,parent:this.injector,name:t.moduleType.name}),s=t.create(e),o=s.injector.get(kn,null);if(!o)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return s.onDestroy(()=>Fo(this._modules,s)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{o.handleError(t)}})),function(t,e,n){try{const r=n();return rs(r)?r.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(o,n,()=>{const t=s.injector.get(Ys);return t.runInitializers(),t.donePromise.then(()=>(hs(s.injector.get(io,cs)||cs),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,e=[]){const n=Ro({},e);return function(t,e,n){const r=new Gs(n);return Promise.resolve(r)}(0,0,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(Mo);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${J(t.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. Please define one of these.`);t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Gr))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Ro(t,e){return Array.isArray(e)?e.reduce(Ro,t):Object.assign(Object.assign({},t),e)}let Mo=(()=>{class t{constructor(t,e,n,r,s,o){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Me(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),l=new g(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{vo.assertNotInAngularZone(),go(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{vo.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=function(...t){let e=Number.POSITIVE_INFINITY,n=null,r=t[t.length-1];var s;return(s=r)&&\"function\"==typeof s.schedule?(n=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(e=t.pop())):\"number\"==typeof r&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof g?t[0]:function(t=Number.POSITIVE_INFINITY){return H(m,t)}(e)(function(t,e){return e?function(t,e){return new g(n=>{const r=new h;let s=0;return r.add(e.schedule(function(){s!==t.length?(n.next(t[s++]),n.closed||r.add(this.schedule())):n.complete()})),r})}(t,e):new g(S(t))}(t,n))}(i,l.pipe(t=>{return R()((e=Z,function(t){let n;n=\"function\"==typeof e?e:function(){return e};const r=Object.create(t,L);return r.source=t,r.subjectFactory=n,r})(t));var e}))}bootstrap(t,e){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=t instanceof ds?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(Ls),s=n.create(Gr.NULL,[],e||n.selector,r);s.onDestroy(()=>{this._unloadComponent(s)});const o=s.injector.get(So,null);return o&&s.injector.get(Io).registerApplication(s.location.nativeElement,o),this._loadComponent(s),Me()&&this._console.log(\"Angular is running in development mode. Call enableProdMode() to enable production mode.\"),s}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Fo(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(so,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),Fo(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo),Gt(oo),Gt(Gr),Gt(kn),Gt(ps),Gt(Ys))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Fo(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const Vo=Ho(null,\"core\",[{provide:ro,useValue:\"unknown\"},{provide:Po,deps:[Gr]},{provide:Io,deps:[]},{provide:oo,deps:[]}]),Lo=[{provide:Mo,useClass:Mo,deps:[vo,oo,Gr,kn,ps,Ys]},{provide:$s,deps:[vo],useFactory:function(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:Ys,useClass:Ys,deps:[[new q,Ks]]},{provide:yo,useClass:yo,deps:[]},to,{provide:Hs,useFactory:function(){return Fs},deps:[]},{provide:Ns,useFactory:function(){return Vs},deps:[]},{provide:io,useFactory:function(t){return hs(t=t||\"undefined\"!=typeof $localize&&$localize.locale||cs),t},deps:[[new W(io),new q,new G]]},{provide:lo,useValue:\"USD\"}];let Bo=(()=>{class t{constructor(t){}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(Mo))},providers:Lo}),t})(),Zo=null;function zo(){return Zo}const $o=new ut(\"DocumentToken\");var Uo=function(t){return t[t.Zero=0]=\"Zero\",t[t.One=1]=\"One\",t[t.Two=2]=\"Two\",t[t.Few=3]=\"Few\",t[t.Many=4]=\"Many\",t[t.Other=5]=\"Other\",t}({});class Wo{}let qo=(()=>{class t extends Wo{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(function(t){return function(t){const e=function(t){return t.toLowerCase().replace(/_/g,\"-\")}(t);let n=ls(e);if(n)return n;const r=e.split(\"-\")[0];if(n=ls(r),n)return n;if(\"en\"===r)return os;throw new Error(`Missing locale data for the locale \"${t}\".`)}(t)[us.PluralCase]}(e||this.locale)(t)){case Uo.Zero:return\"zero\";case Uo.One:return\"one\";case Uo.Two:return\"two\";case Uo.Few:return\"few\";case Uo.Many:return\"many\";default:return\"other\"}}}return t.\\u0275fac=function(e){return new(e||t)(Gt(io))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Qo=(()=>{class t{}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[{provide:Wo,useClass:qo}]}),t})();class Go extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var t;t=new Go,Zo||(Zo=t)}getProperty(t,e){return t[e]}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}getValue(t){return t.value}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return\"window\"===e?window:\"document\"===e?t:\"body\"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=Ko||(Ko=document.querySelector(\"base\"),Ko)?Ko.getAttribute(\"href\"):null;return null==e?null:(n=e,Jo||(Jo=document.createElement(\"a\")),Jo.setAttribute(\"href\",n),\"/\"===Jo.pathname.charAt(0)?Jo.pathname:\"/\"+Jo.pathname);var n}resetBaseElement(){Ko=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return function(t,e){e=encodeURIComponent(e);for(const n of t.split(\";\")){const t=n.indexOf(\"=\"),[r,s]=-1==t?[n,\"\"]:[n.slice(0,t),n.slice(t+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}(document.cookie,t)}}let Jo,Ko=null;const Yo=new ut(\"TRANSITION_ID\"),Xo=[{provide:Ks,useFactory:function(t,e,n){return()=>{n.get(Ys).donePromise.then(()=>{const n=zo();Array.prototype.slice.apply(e.querySelectorAll(\"style[ng-transition]\")).filter(e=>e.getAttribute(\"ng-transition\")===t).forEach(t=>n.remove(t))})}},deps:[Yo,$o,Gr],multi:!0}];class ti{static init(){var t;t=new ti,Do=t}addToWindow(t){pt.getAngularTestability=(e,n=!0)=>{const r=t.findTestabilityInTree(e,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},pt.getAllAngularTestabilities=()=>t.getAllTestabilities(),pt.getAllAngularRootElements=()=>t.getAllRootElements(),pt.frameworkStabilizers||(pt.frameworkStabilizers=[]),pt.frameworkStabilizers.push(t=>{const e=pt.getAllAngularTestabilities();let n=e.length,r=!1;const s=function(e){r=r||e,n--,0==n&&t(r)};e.forEach(function(t){t.whenStable(s)})})}findTestabilityInTree(t,e,n){if(null==e)return null;const r=t.getTestability(e);return null!=r?r:n?zo().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}const ei=new ut(\"EventManagerPlugins\");let ni=(()=>{class t{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let r=0;r<n.length;r++){const e=n[r];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(\"No event manager plugin found for event \"+t)}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ei),Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class ri{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const r=zo().getGlobalEventTarget(this._doc,t);if(!r)throw new Error(`Unsupported event target ${r} for event ${e}`);return this.addEventListener(r,e,n)}}let si=(()=>{class t{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),oi=(()=>{class t extends si{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement(\"style\");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>zo().remove(t))}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const ii={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},li=/%COMP%/g;function ui(t,e,n){for(let r=0;r<e.length;r++){let s=e[r];Array.isArray(s)?ui(t,s,n):(s=s.replace(li,t),n.push(s))}return n}function ci(t){return e=>{if(\"__ngUnwrap__\"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let ai=(()=>{class t{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new hi(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case vt.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new di(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case 1:case vt.ShadowDom:return new fi(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=ui(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ni),Gt(oi),Gt(Xs))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class hi{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(ii[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n=\"string\"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector \"${t}\" did not match any elements`);return e||(n.textContent=\"\"),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,r){if(r){e=r+\":\"+e;const s=ii[r];s?t.setAttributeNS(s,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const r=ii[n];r?t.removeAttributeNS(r,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,r){r&(An.DashCase|An.Important)?t.style.setProperty(e,n,r&An.Important?\"important\":\"\"):t.style[e]=n}removeStyle(t,e,n){n&An.DashCase?t.style.removeProperty(e):t.style[e]=\"\"}setProperty(t,e,n){t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return\"string\"==typeof t?this.eventManager.addGlobalEventListener(t,e,ci(n)):this.eventManager.addEventListener(t,e,ci(n))}}class di extends hi{constructor(t,e,n,r){super(t),this.component=n;const s=ui(r+\"-\"+n.id,n.styles,[]);e.addStyles(s),this.contentAttr=\"_ngcontent-%COMP%\".replace(li,r+\"-\"+n.id),this.hostAttr=\"_nghost-%COMP%\".replace(li,r+\"-\"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,\"\")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,\"\"),n}}class fi extends hi{constructor(t,e,n,r){super(t),this.sharedStylesHost=e,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:\"open\"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=ui(r.id,r.styles,[]);for(let o=0;o<s.length;o++){const t=document.createElement(\"style\");t.textContent=s[o],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}let pi=(()=>{class t extends ri{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,n){return t.addEventListener(e,n,!1),()=>this.removeEventListener(t,e,n)}removeEventListener(t,e,n){return t.removeEventListener(e,n)}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const _i=[\"alt\",\"control\",\"meta\",\"shift\"],yi={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},mi={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},gi={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let vi=(()=>{class t extends ri{constructor(t){super(t)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,n,r){const s=t.parseEventName(n),o=t.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>zo().onAndCancel(e,s.domEventName,o))}static parseEventName(e){const n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const s=t._normalizeKey(n.pop());let o=\"\";if(_i.forEach(t=>{const e=n.indexOf(t);e>-1&&(n.splice(e,1),o+=t+\".\")}),o+=s,0!=n.length||0===s.length)return null;const i={};return i.domEventName=r,i.fullKey=o,i}static getEventFullKey(t){let e=\"\",n=function(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return\"Unidentified\";e.startsWith(\"U+\")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&mi.hasOwnProperty(e)&&(e=mi[e]))}return yi[e]||e}(t);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),_i.forEach(r=>{r!=n&&(0,gi[r])(t)&&(e+=r+\".\")}),e+=n,e}static eventCallback(e,n,r){return s=>{t.getEventFullKey(s)===e&&r.runGuarded(()=>n(s))}}static _normalizeKey(t){switch(t){case\"esc\":return\"escape\";default:return t}}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const bi=Ho(Vo,\"browser\",[{provide:ro,useValue:\"browser\"},{provide:no,useValue:function(){Go.makeCurrent(),ti.init()},multi:!0},{provide:$o,useFactory:function(){return function(t){Kt=t}(document),document},deps:[]}]),wi=[[],{provide:Rr,useValue:\"root\"},{provide:kn,useFactory:function(){return new kn},deps:[]},{provide:ei,useClass:pi,multi:!0,deps:[$o,vo,ro]},{provide:ei,useClass:vi,multi:!0,deps:[$o]},[],{provide:ai,useClass:ai,deps:[ni,oi,Xs]},{provide:vs,useExisting:ai},{provide:si,useExisting:oi},{provide:oi,useClass:oi,deps:[$o]},{provide:So,useClass:So,deps:[vo]},{provide:ni,useClass:ni,deps:[ei,vo]},[]];let Ci=(()=>{class t{constructor(t){if(t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(e){return{ngModule:t,providers:[{provide:Xs,useValue:e.appId},{provide:Yo,useExisting:Xs},Xo]}}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(t,12))},providers:wi,imports:[Qo,Bo]}),t})();\"undefined\"!=typeof window&&window;let Ei=(()=>{class t{constructor(){this.title=\"example\"}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=(e={type:t,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(t,e){1&t&&(ns(0,\"div\",0),function(t,e=\"\"){const n=_e(),r=ye(),s=t+Yt,o=r.firstCreatePass?lr(r,s,1,e,null):r.data[s],i=n[s]=function(t,e){return re(t)?t.createText(e):t.createTextNode(e)}(n[11],e);Bn(r,n,i,o),ve(o,!1)}(1,\" Hello, World\\n\"),function(){let t=me();be()?fe.lFrame.isParent=!1:(t=t.parent,ve(t,!1));const e=t;fe.lFrame.elementDepthCount--;const n=ye();n.firstCreatePass&&(Ue(n,t),ee(t)&&n.queries.elementEnd(t)),null!=e.classesWithoutHost&&function(t){return 0!=(16&t.flags)}(e)&&es(n,e,_e(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function(t){return 0!=(32&t.flags)}(e)&&es(n,e,_e(),e.stylesWithoutHost,!1)}())},styles:[\"\"]},z(()=>{const t={},n={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===ct.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||wt,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||vt.Emulated,id:\"c\",styles:e.styles||wt,_:null,setInput:null,schemas:e.schemas||null,tView:null},r=e.directives,s=e.features,o=e.pipes;return n.id+=At++,n.inputs=Nt(e.inputs,t),n.outputs=Nt(e.outputs),s&&s.forEach(t=>t(n)),n.directiveDefs=r?()=>(\"function\"==typeof r?r():r).map(Ot):null,n.pipeDefs=o?()=>(\"function\"==typeof o?o():o).map(Dt):null,n})),t;var e})(),xi=(()=>{class t{}return t.\\u0275mod=Ht({type:t,bootstrap:[Ei]}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[],imports:[[Ci]]}),t})();(function(){if(Re)throw new Error(\"Cannot enable prod mode after platform setup.\");Pe=!1})(),bi().bootstrapModule(xi).catch(t=>console.error(t))},zn8P:function(t,e){function n(t){return Promise.resolve().then(function(){var e=new Error(\"Cannot find module '\"+t+\"'\");throw e.code=\"MODULE_NOT_FOUND\",e})}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/dist/example/polyfills.bf99d438b005d57b2b31.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{1:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const i=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(i||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class a{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==C.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=a.current;for(;e.parent;)e=e.parent;return e}static get current(){return z.zone}static get currentTask(){return j}static __load_patch(t,r){if(C.hasOwnProperty(t)){if(i)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),C[t]=r(e,a,O),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){z={parent:z,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{z=z.parent}}runGuarded(e,t=null,n,o){z={parent:z,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{z=z.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,T),e.runCount++;const r=j;j=e,z={parent:z,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(T,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),z=z.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(b,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,b,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==b&&e._transitionTo(T,b),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,T,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}a.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new a(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");k(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,i){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=i,!o)throw new Error(\"callback is not defined\");this.callback=o;const a=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,a,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,b)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],_=!1;function k(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!_){for(_=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){O.onUnhandledError(e)}}}O.microtaskDrainDone(),_=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",b=\"scheduling\",T=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",C={},O={symbol:s,currentZoneFrame:()=>z,onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:k,showUncaughtError:()=>!a[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:N,patchMethod:()=>N,bindArguments:()=>[],patchThen:()=>N,patchMacroTask:()=>N,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>N,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>N,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>N,wrapWithCurrentZone:()=>N,filterProperties:()=>[],attachOriginToPatched:()=>N,_redefineProperty:()=>N,patchCallbacks:()=>N};let z={parent:null,zone:new a(null,null)},j=null,I=0;function N(){}o(\"Zone\",\"Zone\"),e.Zone=a}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,i=[],a=!0===e[s(\"DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION\")],c=s(\"Promise\"),l=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;i.length;){const t=i.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){h(e)}}};const u=s(\"unhandledPromiseRejectionHandler\");function h(e){n.onUnhandledError(e);try{const n=t[u];\"function\"==typeof n&&n.call(this,e)}catch(o){}}function p(e){return e&&e.then}function f(e){return e}function d(e){return O.reject(e)}const g=s(\"state\"),_=s(\"value\"),k=s(\"finally\"),m=s(\"parentPromiseValue\"),y=s(\"parentPromiseState\"),v=null,b=!0,T=!1;function E(e,t){return n=>{try{Z(e,t,n)}catch(o){Z(e,!1,o)}}}const w=s(\"currentTaskTrace\");function Z(e,o,s){const c=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(e[g]===v){let h=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(h=s&&s.then)}catch(u){return c(()=>{Z(e,!1,u)})(),e}if(o!==T&&s instanceof O&&s.hasOwnProperty(g)&&s.hasOwnProperty(_)&&s[g]!==v)D(s),Z(e,s[g],s[_]);else if(o!==T&&\"function\"==typeof h)try{h.call(s,c(E(e,o)),c(E(e,!1)))}catch(u){c(()=>{Z(e,!1,u)})()}else{e[g]=o;const c=e[_];if(e[_]=s,e[k]===k&&o===b&&(e[g]=e[y],e[_]=e[m]),o===T&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,w,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<c.length;)P(e,c[t++],c[t++],c[t++],c[t++]);if(0==c.length&&o==T){e[g]=0;let o=s;if(!a)try{throw new Error(\"Uncaught (in promise): \"+((l=s)&&l.toString===Object.prototype.toString?(l.constructor&&l.constructor.name||\"\")+\": \"+JSON.stringify(l):l?l.toString():Object.prototype.toString.call(l))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(u){o=u}o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,i.push(o),n.scheduleMicroTask()}}}var l;return e}const S=s(\"rejectionHandledHandler\");function D(e){if(0===e[g]){try{const n=t[S];n&&\"function\"==typeof n&&n.call(this,{rejection:e[_],promise:e})}catch(n){}e[g]=T;for(let t=0;t<i.length;t++)e===i[t].promise&&i.splice(t,1)}}function P(e,t,n,o,r){D(e);const s=e[g],i=s?\"function\"==typeof o?o:f:\"function\"==typeof r?r:d;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[_],r=!!n&&k===n[k];r&&(n[m]=o,n[y]=s);const a=t.run(i,void 0,r&&i!==d&&i!==f?[]:[o]);Z(n,!0,a)}catch(o){Z(n,!1,o)}},n)}const C=function(){};class O{static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return Z(new this(null),b,e)}static reject(e){return Z(new this(null),T,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let i of e)p(i)||(i=this.resolve(i)),i.then(r,s);return o}static all(e){return O.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof O?this:O).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,i=0;const a=[];for(let l of e){p(l)||(l=this.resolve(l));const e=i;try{l.then(o=>{a[e]=t?t.thenCallback(o):o,s--,0===s&&n(a)},r=>{t?(a[e]=t.errorCallback(r),s--,0===s&&n(a)):o(r)})}catch(c){o(c)}s++,i++}return s-=2,0===s&&n(a),r}constructor(e){const t=this;if(!(t instanceof O))throw new Error(\"Must be an instanceof Promise.\");t[g]=v,t[_]=[];try{e&&e(E(t,b),E(t,T))}catch(n){Z(t,!1,n)}}get[Symbol.toStringTag](){return\"Promise\"}get[Symbol.species](){return O}then(e,n){let o=this.constructor[Symbol.species];o&&\"function\"==typeof o||(o=this.constructor||O);const r=new o(C),s=t.current;return this[g]==v?this[_].push(s,r,e,n):P(this,s,r,e,n),r}catch(e){return this.then(null,e)}finally(e){let n=this.constructor[Symbol.species];n&&\"function\"==typeof n||(n=O);const o=new n(C);o[k]=k;const r=t.current;return this[g]==v?this[_].push(r,o,e,e):P(this,r,o,e,e),o}}O.resolve=O.resolve,O.reject=O.reject,O.race=O.race,O.all=O.all;const z=e[c]=e.Promise,j=t.__symbol__(\"ZoneAwarePromise\");let I=o(e,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return e[j]?e[j]:e[c]},I.set=function(t){t===O?e[j]=t:(e[c]=t,t.prototype[l]||R(t),n.setNativePromise(t))},r(e,\"Promise\",I)),e.Promise=O;const N=s(\"thenPatched\");function R(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[l]=r,e.prototype.then=function(e,t){return new O((e,t)=>{r.call(this,e,t)}).then(e,t)},e[N]=!0}if(n.patchThen=R,z){R(z);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(x=t,function(){let e=x.apply(this,arguments);if(e instanceof O)return e;let t=e.constructor;return t[N]||R(t),e}))}var x;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=i,O});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=\"addEventListener\",i=\"removeEventListener\",a=Zone.__symbol__(s),c=Zone.__symbol__(i),l=\"true\",u=\"false\",h=Zone.__symbol__(\"\");function p(e,t){return Zone.current.wrap(e,t)}function f(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const d=Zone.__symbol__,g=\"undefined\"!=typeof window,_=g?window:void 0,k=g&&_||\"object\"==typeof self&&self||global,m=[null];function y(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=p(e[n],t+\"_\"+n));return e}function v(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const b=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,T=!(\"nw\"in k)&&void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process),E=!T&&!b&&!(!g||!_.HTMLElement),w=void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process)&&!b&&!(!g||!_.HTMLElement),Z={},S=function(e){if(!(e=e||k.event))return;let t=Z[e.type];t||(t=Z[e.type]=d(\"ON_PROPERTY\"+e.type));const n=this||e.target||k,o=n[t];let r;if(E&&n===_&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function D(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const i=d(\"on\"+o+\"patched\");if(n.hasOwnProperty(i)&&n[i])return;delete s.writable,delete s.value;const a=s.get,c=s.set,l=o.substr(2);let u=Z[l];u||(u=Z[l]=d(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==k||(t=k),t&&(t[u]&&t.removeEventListener(l,S),c&&c.apply(t,m),\"function\"==typeof e?(t[u]=e,t.addEventListener(l,S,!1)):t[u]=null)},s.get=function(){let e=this;if(e||n!==k||(e=k),!e)return null;const t=e[u];if(t)return t;if(a){let t=a&&a.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[i]=!0}function P(e,t,n){if(t)for(let o=0;o<t.length;o++)D(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)D(e,t[o],n)}}const C=d(\"originalInstance\");function O(e){const n=k[e];if(!n)return;k[d(e)]=n,k[e]=function(){const t=y(arguments,e);switch(t.length){case 0:this[C]=new n;break;case 1:this[C]=new n(t[0]);break;case 2:this[C]=new n(t[0],t[1]);break;case 3:this[C]=new n(t[0],t[1],t[2]);break;case 4:this[C]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},I(k[e],n);const o=new n(function(){});let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?k[e].prototype[n]=function(){return this[C][n].apply(this[C],arguments)}:t(k[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[C][n]=p(t,e+\".\"+n),I(this[C][n],t)):this[C][n]=t},get:function(){return this[C][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(k[e][r]=n[r])}function z(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const i=d(o);let a=null;if(s&&!(a=s[i])&&(a=s[i]=s[o],v(s&&e(s,o)))){const e=r(a,i,o);s[o]=function(){return e(this,arguments)},I(s[o],a)}return a}function j(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=z(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?f(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function I(e,t){e[d(\"OriginalDelegate\")]=t}let N=!1,R=!1;function x(){try{const e=_.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function M(){if(N)return R;N=!0;try{const e=_.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(R=!0)}catch(e){}return R}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=d(\"OriginalDelegate\"),o=d(\"Promise\"),r=d(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const i=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":i.call(this)}});let L=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){L=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(he){L=!1}const A={useG:!0},H={},F={},G=new RegExp(\"^\"+h+\"(\\\\w+)(true|false)$\"),B=d(\"propagationStopped\");function q(e,t){const n=(t?t(e):e)+u,o=(t?t(e):e)+l,r=h+n,s=h+o;H[e]={},H[e].false=r,H[e].true=s}function W(e,t,o){const r=o&&o.add||s,a=o&&o.rm||i,c=o&&o.listeners||\"eventListeners\",p=o&&o.rmAll||\"removeAllListeners\",f=d(r),g=\".\"+r+\":\",_=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[a].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},k=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].false];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}},m=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].true];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}};function y(t,o){if(!t)return!1;let s=!0;o&&void 0!==o.useG&&(s=o.useG);const i=o&&o.vh;let _=!0;o&&void 0!==o.chkDup&&(_=o.chkDup);let y=!1;o&&void 0!==o.rt&&(y=o.rt);let v=t;for(;v&&!v.hasOwnProperty(r);)v=n(v);if(!v&&t[r]&&(v=t),!v)return!1;if(v[f])return!1;const b=o&&o.eventNameToString,E={},w=v[f]=v[r],Z=v[d(a)]=v[a],S=v[d(c)]=v[c],D=v[d(p)]=v[p];let P;function C(e,t){return!L&&\"object\"==typeof e&&e?!!e.capture:L&&t?\"boolean\"==typeof e?{capture:e,passive:!0}:e?\"object\"==typeof e&&!1!==e.passive?Object.assign(Object.assign({},e),{passive:!0}):e:{passive:!0}:e}o&&o.prepend&&(P=v[d(o.prepend)]=v[o.prepend]);const O=s?function(e){if(!E.isExisting)return w.call(E.target,E.eventName,E.capture?m:k,E.options)}:function(e){return w.call(E.target,E.eventName,e.invoke,E.options)},z=s?function(e){if(!e.isRemoved){const t=H[e.eventName];let n;t&&(n=t[e.capture?l:u]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return Z.call(e.target,e.eventName,e.capture?m:k,e.options)}:function(e){return Z.call(e.target,e.eventName,e.invoke,e.options)},j=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},N=Zone[d(\"BLACK_LISTED_EVENTS\")],R=e[d(\"PASSIVE_EVENTS\")],x=function(t,n,r,a,c=!1,h=!1){return function(){const p=this||e;let f=arguments[0];o&&o.transferEventName&&(f=o.transferEventName(f));let d=arguments[1];if(!d)return t.apply(this,arguments);if(T&&\"uncaughtException\"===f)return t.apply(this,arguments);let g=!1;if(\"function\"!=typeof d){if(!d.handleEvent)return t.apply(this,arguments);g=!0}if(i&&!i(t,d,p,arguments))return;const k=L&&!!R&&-1!==R.indexOf(f),m=C(arguments[2],k);if(N)for(let e=0;e<N.length;e++)if(f===N[e])return k?t.call(p,f,d,m):t.apply(this,arguments);const y=!!m&&(\"boolean\"==typeof m||m.capture),v=!(!m||\"object\"!=typeof m)&&m.once,w=Zone.current;let Z=H[f];Z||(q(f,b),Z=H[f]);const S=Z[y?l:u];let D,P=p[S],O=!1;if(P){if(O=!0,_)for(let e=0;e<P.length;e++)if(j(P[e],d))return}else P=p[S]=[];const z=p.constructor.name,I=F[z];I&&(D=I[f]),D||(D=z+n+(b?b(f):f)),E.options=m,v&&(E.options.once=!1),E.target=p,E.capture=y,E.eventName=f,E.isExisting=O;const x=s?A:void 0;x&&(x.taskData=E);const M=w.scheduleEventTask(D,d,x,r,a);return E.target=null,x&&(x.taskData=null),v&&(m.once=!0),(L||\"boolean\"!=typeof M.options)&&(M.options=m),M.target=p,M.capture=y,M.eventName=f,g&&(M.originalDelegate=d),h?P.unshift(M):P.push(M),c?p:void 0}};return v[r]=x(w,g,O,z,y),P&&(v.prependListener=x(P,\".prependListener:\",function(e){return P.call(E.target,E.eventName,e.invoke,E.options)},z,y,!0)),v[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2],s=!!r&&(\"boolean\"==typeof r||r.capture),a=arguments[1];if(!a)return Z.apply(this,arguments);if(i&&!i(Z,a,t,arguments))return;const c=H[n];let p;c&&(p=c[s?l:u]);const f=p&&t[p];if(f)for(let e=0;e<f.length;e++){const o=f[e];if(j(o,a))return f.splice(e,1),o.isRemoved=!0,0===f.length&&(o.allRemoved=!0,t[p]=null,\"string\"==typeof n)&&(t[h+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),y?t:void 0}return Z.apply(this,arguments)},v[c]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=U(t,b?b(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},v[p]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=H[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=G.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[p].call(this,o)}this[p].call(this,\"removeListener\")}if(y)return this},I(v[r],w),I(v[a],Z),D&&I(v[p],D),S&&I(v[c],S),!0}let v=[];for(let n=0;n<t.length;n++)v[n]=y(t[n],o);return v}function U(e,t){if(!t){const n=[];for(let o in e){const r=G.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}let n=H[t];n||(q(t),n=H[t]);const o=e[n.false],r=e[n.true];return o?r?o.concat(r):o.slice():r?r.slice():[]}function V(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[B]=!0,e&&e.apply(t,n)})}function $(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const i=t[s]=t[o];t[o]=function(s,a,c){return a&&a.prototype&&r.forEach(function(t){const r=`${n}.${o}::`+t,s=a.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(a.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}),i.call(t,s,a,c)},e.attachOriginToPatched(t[o],i)}const X=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplayconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],J=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],Y=[\"load\"],K=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],Q=[\"bounce\",\"finish\",\"start\"],ee=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],te=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],ne=[\"close\",\"error\",\"open\",\"message\"],oe=[\"error\",\"message\"],re=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],X,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function se(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function ie(e,t,n,o){e&&P(e,se(e,t,n),o)}function ae(e,t){if(T&&!w)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(E){const e=window,t=x?[{target:e,ignoreProperties:[\"error\"]}]:[];ie(e,re.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),ie(Document.prototype,re,r),void 0!==e.SVGElement&&ie(e.SVGElement.prototype,re,r),ie(Element.prototype,re,r),ie(HTMLElement.prototype,re,r),ie(HTMLMediaElement.prototype,J,r),ie(HTMLFrameSetElement.prototype,X.concat(K),r),ie(HTMLBodyElement.prototype,X.concat(K),r),ie(HTMLFrameElement.prototype,Y,r),ie(HTMLIFrameElement.prototype,Y,r);const o=e.HTMLMarqueeElement;o&&ie(o.prototype,Q,r);const s=e.Worker;s&&ie(s.prototype,oe,r)}const s=t.XMLHttpRequest;s&&ie(s.prototype,ee,r);const i=t.XMLHttpRequestEventTarget;i&&ie(i&&i.prototype,ee,r),\"undefined\"!=typeof IDBIndex&&(ie(IDBIndex.prototype,te,r),ie(IDBRequest.prototype,te,r),ie(IDBOpenDBRequest.prototype,te,r),ie(IDBDatabase.prototype,te,r),ie(IDBTransaction.prototype,te,r),ie(IDBCursor.prototype,te,r)),o&&ie(WebSocket.prototype,ne,r)}Zone.__load_patch(\"util\",(n,a,c)=>{c.patchOnProperties=P,c.patchMethod=z,c.bindArguments=y,c.patchMacroTask=j;const f=a.__symbol__(\"BLACK_LISTED_EVENTS\"),d=a.__symbol__(\"UNPATCHED_EVENTS\");n[d]&&(n[f]=n[d]),n[f]&&(a[f]=a[d]=n[f]),c.patchEventPrototype=V,c.patchEventTarget=W,c.isIEOrEdge=M,c.ObjectDefineProperty=t,c.ObjectGetOwnPropertyDescriptor=e,c.ObjectCreate=o,c.ArraySlice=r,c.patchClass=O,c.wrapWithCurrentZone=p,c.filterProperties=se,c.attachOriginToPatched=I,c._redefineProperty=Object.defineProperty,c.patchCallbacks=$,c.getGlobalObjects=()=>({globalSources:F,zoneSymbolEventNames:H,eventNames:re,isBrowser:E,isMix:w,isNode:T,TRUE_STR:l,FALSE_STR:u,ZONE_SYMBOL_PREFIX:h,ADD_EVENT_LISTENER_STR:s,REMOVE_EVENT_LISTENER_STR:i})});const ce=d(\"zoneTask\");function le(e,t,n,o){let r=null,s=null;n+=o;const i={};function a(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete i[n.handleId]:n.handleId&&(n.handleId[ce]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=z(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=f(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},a,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?i[n]=e:n&&(n[ce]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=z(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=i[r]:(s=r&&r[ce],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete i[r]:r&&(r[ce]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function ue(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:i}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=i+(e+s),a=i+(e+r);o[e]={},o[e][s]=t,o[e][r]=a}const a=e.EventTarget;return a&&a.prototype?(t.patchEventTarget(e,[a&&a.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{const t=\"set\",n=\"clear\";le(e,t,n,\"Timeout\"),le(e,t,n,\"Interval\"),le(e,t,n,\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{le(e,\"request\",\"cancel\",\"AnimationFrame\"),le(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),le(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)z(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{(function(e,t){t.patchEventPrototype(e,t)})(e,n),ue(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),O(\"MutationObserver\"),O(\"WebKitMutationObserver\"),O(\"IntersectionObserver\"),O(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ae(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const u=e.XMLHttpRequest;if(!u)return;const h=u.prototype;let p=h[a],g=h[c];if(!p){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;p=e[a],g=e[c]}}const _=\"readystatechange\",k=\"scheduled\";function m(e){const o=e.data,i=o.target;i[s]=!1,i[l]=!1;const u=i[r];p||(p=i[a],g=i[c]),u&&g.call(i,_,u);const h=i[r]=()=>{if(i.readyState===i.DONE)if(!o.aborted&&i[s]&&e.state===k){const n=i[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=i[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||e.state!==k||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==i[s]||(i[l]=!0)};return p.call(i,_,h),i[n]||(i[n]=e),w.apply(i,o.args),i[s]=!0,e}function y(){}function v(e){const t=e.data;return t.aborted=!0,Z.apply(t.target,t.args)}const b=z(h,\"open\",()=>function(e,t){return e[o]=0==t[2],e[i]=t[1],b.apply(e,t)}),T=d(\"fetchTaskAborting\"),E=d(\"fetchTaskScheduling\"),w=z(h,\"send\",()=>function(e,n){if(!0===t.current[E])return w.apply(e,n);if(e[o])return w.apply(e,n);{const t={target:e,url:e[i],isPeriodic:!1,args:n,aborted:!1},o=f(\"XMLHttpRequest.send\",y,t,m,v);e&&!0===e[l]&&!t.aborted&&o.state===k&&o.invoke()}}),Z=z(h,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[T])return Z.apply(e,o)})}(e);const n=d(\"xhrTask\"),o=d(\"xhrSync\"),r=d(\"xhrListener\"),s=d(\"xhrScheduled\"),i=d(\"xhrURL\"),l=d(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],i=t[s];if(i){if(!v(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,y(arguments,o+\".\"+s))};return I(t,e),t})(i)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){U(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[d(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[d(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[1,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/dist/example/runtime.359d5ee4682f20e936e9.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/dist/example/styles.51422a5c94b8290ff190.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:initial}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:initial;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:initial;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:initial;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:initial}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:initial}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:initial}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:initial}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:initial}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:initial}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:initial}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:initial}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:initial;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:initial}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:initial;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:initial;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:initial;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:initial;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:initial;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:initial;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:initial;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:initial;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:initial!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:initial!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:initial;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule  } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent, PaAttrDirective, PaModel,\n        PaStructureDirective, PaIteratorDirective,\n        PaCellColor, PaCellColorSwitcher],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/attr.directive.ts",
    "content": "import {\n  Directive, ElementRef, Attribute, Input,\n  SimpleChange, Output, EventEmitter, HostListener, HostBinding\n}\n  from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Directive({\n  selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n  @Input(\"pa-attr\")\n  @HostBinding(\"class\")\n  bgClass: string;\n\n  @Input(\"pa-product\")\n  product: Product;\n\n  @Output(\"pa-category\")\n  click = new EventEmitter<string>();\n\n  @HostListener(\"click\")\n  triggerCustomEvent() {\n    if (this.product != null) {\n      this.click.emit(this.product.category);\n    }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n    SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\nselector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n@Input(\"paCellDarkColor\")\nmodelProperty: Boolean;\n\n@ContentChildren(PaCellColor, {descendants: true})\ncontentChildren: QueryList<PaCellColor>;\n\nngOnChanges(changes: { [property: string]: SimpleChange }) {\n   this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n}\n\nngAfterContentInit() {\n   this.contentChildren.changes.subscribe(() => {\n       setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n   });\n}\n\nprivate updateContentChildren(dark: Boolean) {\n   if (this.contentChildren != null && dark != undefined) {\n       this.contentChildren.forEach((child, index) => {\n           child.setColor(index % 2 ? dark : !dark);\n       });\n   }\n}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { NgForm, FormGroup } from \"@angular/forms\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup, ProductFormControl } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    model: Model = new Model();\n    formGroup: ProductFormGroup = new ProductFormGroup();\n    showTable: boolean = false;\n    darkColor: boolean = false;\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    newProduct: Product = new Product();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    formSubmitted: boolean = false;\n\n    submitForm() {\n        this.addProduct(this.newProduct);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;\n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),\n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c =>\n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, ViewRef, IterableChangeRecord\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: IterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <IterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n\n            let arr: IterableChangeRecord<any>[] = [];\n            changes.forEachAddedItem(addition => arr.push(addition));\n            arr.forEach(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, arr.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n      public name?: string,\n      public category?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n      let p = this.products.shift();\n      this.products.push(new Product(p.id, p.name, p.category, p.price));\n  }\n\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/structure.directive.ts",
    "content": "import {\n  Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n  selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n  constructor(private container: ViewContainerRef,\n      private template: TemplateRef<Object>) { }\n\n  @Input(\"paIf\")\n  expressionResult: boolean;\n\n  ngOnChanges(changes: { [property: string]: SimpleChange }) {\n      let change = changes[\"expressionResult\"];\n      if (!change.isFirstChange() && !change.currentValue) {\n          this.container.clear();\n      } else if (change.currentValue) {\n          this.container.createEmbeddedView(this.template);\n      }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n  <div class=\"col-4\">\n      <form class=\"m-2\" novalidate (ngSubmit)=\"submitForm()\">\n          <div class=\"form-group\">\n              <label>Name</label>\n              <input class=\"form-control\" name=\"name\"\n                  [(ngModel)]=\"newProduct.name\" />\n          </div>\n          <div class=\"form-group\">\n              <label>Category</label>\n              <input class=\"form-control\" name=\"category\"\n                  [(ngModel)]=\"newProduct.category\" />\n          </div>\n          <div class=\"form-group\">\n              <label>Price</label>\n              <input class=\"form-control\" name=\"price\"\n                  [(ngModel)]=\"newProduct.price\" />\n          </div>\n          <button class=\"btn btn-primary\" type=\"submit\">Create</button>\n      </form>\n  </div>\n  <div class=\"col-8\">\n    <div class=\"checkbox\">\n        <label>\n            <input type=\"checkbox\" [(ngModel)]=\"darkColor\" />\n            Dark Cell Color\n        </label>\n    </div>\n\n    <table class=\"table table-sm table-bordered table-striped\"\n            [paCellDarkColor]=\"darkColor\">\n        <thead>\n            <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n        </thead>\n        <tbody>\n            <tr *paFor=\"let item of getProducts(); let i = index; let odd = odd;\n                    let even = even\" [class.bg-info]=\"odd\"\n                    [class.bg-warning]=\"even\">\n                    <td style=\"vertical-align:middle\">{{i + 1}}</td>\n                    <td style=\"vertical-align:middle\">{{item.name}}</td>\n                    <td style=\"vertical-align:middle\">{{item.category}}</td>\n                    <td style=\"vertical-align:middle\">{{item.price}}</td>\n                    <td class=\"text-center\">\n                        <button class=\"btn btn-danger btn-sm\"\n                                (click)=\"deleteProduct(item.id)\">\n                            Delete\n                        </button>\n                    </td>\n            </tr>\n        </tbody>\n    </table>\n\n\n  </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n  HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n  selector: \"input[paModel]\",\n  exportAs: \"paModel\"\n})\nexport class PaModel {\n\n  direction: string = \"None\";\n\n  @Input(\"paModel\")\n  modelProperty: string;\n\n  @HostBinding(\"value\")\n  fieldValue: string = \"\";\n\n  ngOnChanges(changes: { [property: string]: SimpleChange }) {\n      let change = changes[\"modelProperty\"];\n      if (change.currentValue != this.fieldValue) {\n          this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n          this.direction = \"Model\";\n      }\n  }\n\n  @Output(\"paModelChange\")\n  update = new EventEmitter<string>();\n\n  @HostListener(\"input\", [\"$event.target.value\"])\n  updateValue(newValue: string) {\n      this.fieldValue = newValue;\n      this.update.emit(newValue);\n      this.direction = \"Element\";\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 16/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncss-loader\nMIT\nCopyright JS Foundation and other contributors\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2020 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.51422a5c94b8290ff190.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime.359d5ee4682f20e936e9.js\" defer></script><script src=\"polyfills.bf99d438b005d57b2b31.js\" defer></script><script src=\"main.f78bdaa2683ef468e3b3.js\" defer></script></body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/dist/example/main.f78bdaa2683ef468e3b3.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(t,e,n){t.exports=n(\"zUnb\")},zUnb:function(t,e,n){\"use strict\";function r(t){return\"function\"==typeof t}n.r(e);let s=!1;const o={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else s&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");s=t},get useDeprecatedSynchronousErrorHandling(){return s}};function i(t){setTimeout(()=>{throw t},0)}const l={closed:!0,next(t){},error(t){if(o.useDeprecatedSynchronousErrorHandling)throw t;i(t)},complete(){}},u=(()=>Array.isArray||(t=>t&&\"number\"==typeof t.length))();function c(t){return null!==t&&\"object\"==typeof t}const a=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();let h=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:s,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(r(o)){s&&(this._unsubscribe=void 0);try{o.call(this)}catch(l){e=l instanceof a?d(l.errors):[l]}}if(u(i)){let t=-1,n=i.length;for(;++t<n;){const n=i[t];if(c(n))try{n.unsubscribe()}catch(l){e=e||[],l instanceof a?e=e.concat(d(l.errors)):e.push(l)}}}if(e)throw new a(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case\"function\":n=new t(e);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error(\"unrecognized teardown \"+e+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof t){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const s=this._subscriptions;return null===s?this._subscriptions=[n]:s.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}return t.EMPTY=function(t){return t.closed=!0,t}(new t),t})();function d(t){return t.reduce((t,e)=>t.concat(e instanceof a?e.errors:e),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!t){this.destination=l;break}if(\"object\"==typeof t){t instanceof p?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,t,e,n)}}[f](){return this}static create(t,e,n){const r=new p(t,e,n);return r.syncErrorThrowable=!1,r}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class _ extends p{constructor(t,e,n,s){let o;super(),this._parentSubscriber=t;let i=this;r(e)?o=e:e&&(o=e.next,n=e.error,s=e.complete,e!==l&&(i=Object.create(e),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=o,this._error=n,this._complete=s}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;o.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:n}=o;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):i(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;i(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);o.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),o.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(t,e,n){if(!o.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{e.call(this._context,n)}catch(r){return o.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=r,t.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const y=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function m(t){return t}let g=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:r}=this,s=function(t,e,n){if(t){if(t instanceof p)return t;if(t[f])return t[f]()}return t||e||n?new p(t,e,n):new p(l)}(t,e,n);if(s.add(r?r.call(s,this.source):this.source||o.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),o.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(t){try{return this._subscribe(t)}catch(e){o.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof p?n:null}return!0}(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=v(e))((e,n)=>{let r;r=this.subscribe(e=>{try{t(e)}catch(s){n(s),r&&r.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[y](){return this}pipe(...t){return 0===t.length?this:(0===(e=t).length?m:1===e.length?e[0]:function(t){return e.reduce((t,e)=>e(t),t)})(this);var e}toPromise(t){return new(t=v(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function v(t){if(t||(t=o.Promise||Promise),!t)throw new Error(\"no Promise impl found\");return t}const b=(()=>{function t(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return t.prototype=Object.create(Error.prototype),t})();class w extends h{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}class C extends p{constructor(t){super(t),this.destination=t}}let E=(()=>{class t extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(t){const e=new x(this,this);return e.operator=t,e}next(t){if(this.closed)throw new b;if(!this.isStopped){const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].next(t)}}error(t){if(this.closed)throw new b;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].error(t);this.observers.length=0}complete(){if(this.closed)throw new b;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let r=0;r<e;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new b;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new b;return this.hasError?(t.error(this.thrownError),h.EMPTY):this.isStopped?(t.complete(),h.EMPTY):(this.observers.push(t),new w(this,t))}asObservable(){const t=new g;return t.source=this,t}}return t.create=(t,e)=>new x(t,e),t})();class x extends E{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):h.EMPTY}}class k{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new T(t,this.project,this.thisArg))}}class T extends p{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}const S=t=>e=>{for(let n=0,r=t.length;n<r&&!e.closed;n++)e.next(t[n]);e.complete()};function I(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const A=I();const O=t=>{if(t&&\"function\"==typeof t[y])return o=t,t=>{const e=o[y]();if(\"function\"!=typeof e.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return e.subscribe(t)};if((e=t)&&\"number\"==typeof e.length&&\"function\"!=typeof e)return S(t);var e,n,r,s,o;if((n=t)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return s=t,t=>(s.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,i),t);if(t&&\"function\"==typeof t[A])return r=t,t=>{const e=r[A]();for(;;){let r;try{r=e.next()}catch(n){return t.error(n),t}if(r.done){t.complete();break}if(t.next(r.value),t.closed)break}return\"function\"==typeof e.return&&t.add(()=>{e.return&&e.return()}),t};{const e=c(t)?\"an invalid object\":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`)}};class D extends p{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class j extends p{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function H(t,e,n=Number.POSITIVE_INFINITY){return\"function\"==typeof e?r=>r.pipe(H((n,r)=>{return(s=t(n,r),s instanceof g?s:new g(O(s))).pipe(function(t,e){return function(e){return e.lift(new k(t,void 0))}}((t,s)=>e(n,t,r,s)));var s},n)):(\"number\"==typeof e&&(n=e),e=>e.lift(new N(t,n)))}class N{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new P(t,this.project,this.concurrent))}}class P extends j{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e)}_innerSub(t){const e=new D(this),n=this.destination;n.add(e);const r=function(t,e){if(!e.closed)return t instanceof g?t.subscribe(e):O(t)(e)}(t,e);r!==e&&n.add(r)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t){this.destination.next(t)}notifyComplete(){const t=this.buffer;this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function R(){return function(t){return t.lift(new M(t))}}class M{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const r=new F(t,n),s=e.subscribe(r);return r.closed||(r.connection=n.connect()),s}}class F extends p{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:n}=this,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new h,t.add(this.source.subscribe(new B(this.getSubject(),this))),t.closed&&(this._connection=null,t=h.EMPTY)),t}refCount(){return R()(this)}}const L=(()=>{const t=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class B extends C{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}function Z(){return new E}function z(t){return{toString:t}.toString()}const $=\"__parameters__\";function U(t,e,n){return z(()=>{const r=function(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}(e);function s(...t){if(this instanceof s)return r.apply(this,t),this;const e=new s(...t);return n.annotation=e,n;function n(t,n,r){const s=t.hasOwnProperty($)?t[$]:Object.defineProperty(t,$,{value:[]})[$];for(;s.length<=r;)s.push(null);return(s[r]=s[r]||[]).push(e),t}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s})}const W=U(\"Inject\",t=>({token:t})),q=U(\"Optional\"),Q=U(\"Self\"),G=U(\"SkipSelf\");function J(t){if(\"string\"==typeof t)return t;if(Array.isArray(t))return\"[\"+t.map(J).join(\", \")+\"]\";if(null==t)return\"\"+t;if(t.overriddenName)return\"\"+t.overriddenName;if(t.name)return\"\"+t.name;const e=t.toString();if(null==e)return\"\"+e;const n=e.indexOf(\"\\n\");return-1===n?e:e.substring(0,n)}function K(t,e){return null==t||\"\"===t?null===e?\"\":e:null==e||\"\"===e?t:t+\" \"+e}function Y(t){for(let e in t)if(t[e]===Y)return e;throw Error(\"Could not find renamed property on target object.\")}function X(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function tt(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function et(t){return nt(t,st)||nt(t,it)}function nt(t,e){return t.hasOwnProperty(e)?t[e]:null}function rt(t){return t&&(t.hasOwnProperty(ot)||t.hasOwnProperty(lt))?t[ot]:null}const st=Y({\"\\u0275prov\":Y}),ot=Y({\"\\u0275inj\":Y}),it=Y({ngInjectableDef:Y}),lt=Y({ngInjectorDef:Y});class ut{constructor(t,e){this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\\u0275prov=X({token:this,providedIn:e.providedIn||\"root\",factory:e.factory}))}toString(){return\"InjectionToken \"+this._desc}}var ct=function(t){return t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\",t}({});const at=\"undefined\"!=typeof globalThis&&globalThis,ht=\"undefined\"!=typeof window&&window,dt=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,ft=\"undefined\"!=typeof global&&global,pt=at||ft||ht||dt,_t=Y({__forward_ref__:Y});function yt(t){return t.__forward_ref__=yt,t.toString=function(){return J(this())},t}function mt(t){return\"function\"==typeof(e=t)&&e.hasOwnProperty(_t)&&e.__forward_ref__===yt?t():t;var e}function gt(t,e){t.forEach(t=>Array.isArray(t)?gt(t,e):e(t))}var vt=function(t){return t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\",t}({});const bt={},wt=[],Ct=Y({\"\\u0275cmp\":Y}),Et=Y({\"\\u0275dir\":Y}),xt=Y({\"\\u0275pipe\":Y}),kt=Y({\"\\u0275mod\":Y}),Tt=Y({\"\\u0275loc\":Y}),St=Y({\"\\u0275fac\":Y}),It=Y({__NG_ELEMENT_ID__:Y});let At=0;function Ot(t){return Pt(t)||function(t){return t[Et]||null}(t)}function Dt(t){return function(t){return t[xt]||null}(t)}const jt={};function Ht(t){const e={type:t.type,bootstrap:t.bootstrap||wt,declarations:t.declarations||wt,imports:t.imports||wt,exports:t.exports||wt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&z(()=>{jt[t.id]=t.type}),e}function Nt(t,e){if(null==t)return bt;const n={};for(const r in t)if(t.hasOwnProperty(r)){let s=t[r],o=s;Array.isArray(s)&&(o=s[1],s=s[0]),n[s]=r,e&&(e[s]=o)}return n}function Pt(t){return t[Ct]||null}function Rt(t,e){const n=t[kt]||null;if(!n&&!0===e)throw new Error(`Type ${J(t)} does not have '\\u0275mod' property.`);return n}function Mt(t){return\"function\"==typeof t?t.name||t.toString():\"object\"==typeof t&&null!=t&&\"function\"==typeof t.type?t.type.name||t.type.toString():function(t){return\"string\"==typeof t?t:null==t?\"\":\"\"+t}(t)}var Ft=function(t){return t[t.Default=0]=\"Default\",t[t.Host=1]=\"Host\",t[t.Self=2]=\"Self\",t[t.SkipSelf=4]=\"SkipSelf\",t[t.Optional=8]=\"Optional\",t}({});let Vt;function Lt(t){const e=Vt;return Vt=t,e}function Bt(t,e,n){const r=et(t);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Ft.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${J(t)}]`)}const Zt={},zt=/\\n/gm,$t=\"__source\",Ut=Y({provide:String,useValue:Y});let Wt=void 0;function qt(t){const e=Wt;return Wt=t,e}function Qt(t,e=Ft.Default){if(void 0===Wt)throw new Error(\"inject() must be called from an injection context\");return null===Wt?Bt(t,void 0,e):Wt.get(t,e&Ft.Optional?null:void 0,e)}function Gt(t,e=Ft.Default){return(Vt||Qt)(mt(t),e)}function Jt(t){const e=[];for(let n=0;n<t.length;n++){const r=mt(t[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let t=void 0,n=Ft.Default;for(let e=0;e<r.length;e++){const s=r[e];s instanceof q||\"Optional\"===s.ngMetadataName||s===q?n|=Ft.Optional:s instanceof G||\"SkipSelf\"===s.ngMetadataName||s===G?n|=Ft.SkipSelf:s instanceof Q||\"Self\"===s.ngMetadataName||s===Q?n|=Ft.Self:t=s instanceof W||s===W?s.token:s}e.push(Gt(t,n))}else e.push(Gt(r))}return e}let Kt=void 0;const Yt=20;function Xt(t){return Array.isArray(t)&&\"object\"==typeof t[1]}function te(t){return Array.isArray(t)&&!0===t[1]}function ee(t){return 0!=(8&t.flags)}function ne(t){return null!==t.template}function re(t){return!!t.listen}const se={createRenderer:(t,e)=>void 0!==Kt?Kt:\"undefined\"!=typeof document?document:void 0};function oe(t){for(;Array.isArray(t);)t=t[0];return t}function ie(t,e){return oe(e[t.index])}function le(t,e){const n=e[t];return Xt(n)?n:n[0]}function ue(t){const e=function(t){return t.__ngContext__||null}(t);return e?Array.isArray(e)?e:e.lView:null}function ce(t){return 128==(128&t[2])}function ae(t,e){return null==e?null:t[e]}function he(t){t[18]=0}function de(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const fe={lFrame:Oe(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function pe(){return fe.bindingsEnabled}function _e(){return fe.lFrame.lView}function ye(){return fe.lFrame.tView}function me(){let t=ge();for(;null!==t&&64===t.type;)t=t.parent;return t}function ge(){return fe.lFrame.currentTNode}function ve(t,e){const n=fe.lFrame;n.currentTNode=t,n.isParent=e}function be(){return fe.lFrame.isParent}function we(){return fe.isInCheckNoChangesMode}function Ce(t){fe.isInCheckNoChangesMode=t}function Ee(t,e){const n=fe.lFrame;n.bindingIndex=n.bindingRootIndex=t,xe(e)}function xe(t){fe.lFrame.currentDirectiveIndex=t}function ke(t){fe.lFrame.currentQueryIndex=t}function Te(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function Se(t,e,n){if(n&Ft.SkipSelf){let r=e,s=t;for(;r=r.parent,!(null!==r||n&Ft.Host||(r=Te(s),null===r)||(s=s[15],10&r.type)););if(null===r)return!1;e=r,t=s}const r=fe.lFrame=Ae();return r.currentTNode=e,r.lView=t,!0}function Ie(t){const e=Ae(),n=t[1];fe.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function Ae(){const t=fe.lFrame,e=null===t?null:t.child;return null===e?Oe(t):e}function Oe(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function De(){const t=fe.lFrame;return fe.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const je=De;function He(){const t=De();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Ne(t){fe.lFrame.selectedIndex=t}let Pe=!0,Re=!1;function Me(){return Re=!0,Pe}function Fe(t,e){return t.hasOwnProperty(St)?t[St]:null}class Ve extends Error{constructor(t,e){super(function(t,e){return`${t?`NG0${t}: `:\"\"}${e}`}(t,e)),this.code=t}}function Le(t,e){const n=e?\" in \"+e:\"\";throw new Ve(\"201\",`No provider for ${Mt(t)} found${n}`)}class Be{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function Ze(){const t=$e(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===bt)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}}function ze(t,e,n,r){const s=$e(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:bt,current:null}),o=s.current||(s.current={}),i=s.previous,l=this.declaredInputs[n],u=i[l];o[l]=new Be(u&&u.currentValue,e,i===bt),t[r]=e}function $e(t){return t.__ngSimpleChanges__||null}function Ue(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n<r;n++){const e=t.data[n].type.prototype,{ngAfterContentInit:r,ngAfterContentChecked:s,ngAfterViewInit:o,ngAfterViewChecked:i,ngOnDestroy:l}=e;r&&(t.contentHooks||(t.contentHooks=[])).push(-n,r),s&&((t.contentHooks||(t.contentHooks=[])).push(n,s),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,s)),o&&(t.viewHooks||(t.viewHooks=[])).push(-n,o),i&&((t.viewHooks||(t.viewHooks=[])).push(n,i),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,i)),null!=l&&(t.destroyHooks||(t.destroyHooks=[])).push(n,l)}}function We(t,e,n){Ge(t,e,3,n)}function qe(t,e,n,r){(3&t[2])===n&&Ge(t,e,n,r)}function Qe(t,e){let n=t[2];(3&n)===e&&(n&=2047,n+=1,t[2]=n)}function Ge(t,e,n,r){const s=null!=r?r:-1;let o=0;for(let i=void 0!==r?65535&t[18]:0;i<e.length;i++)if(\"number\"==typeof e[i+1]){if(o=e[i],null!=r&&o>=r)break}else e[i]<0&&(t[18]+=65536),(o<s||-1==s)&&(Je(t,n,e,i),t[18]=(4294901760&t[18])+i+2),i++}function Je(t,e,n,r){const s=n[r]<0,o=n[r+1],i=t[s?-n[r]:n[r]];s?t[2]>>11<t[18]>>16&&(3&t[2])===e&&(t[2]+=2048,o.call(i)):o.call(i)}const Ke=-1;class Ye{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}function Xe(t,e,n){const r=re(t);let s=0;for(;s<n.length;){const o=n[s];if(\"number\"==typeof o){if(0!==o)break;s++;const i=n[s++],l=n[s++],u=n[s++];r?t.setAttribute(e,l,u,i):e.setAttributeNS(i,l,u)}else{const i=o,l=n[++s];64===i.charCodeAt(0)?r&&t.setProperty(e,i,l):r?t.setAttribute(e,i,l):e.setAttribute(i,l),s++}}return s}function tn(t,e){if(null===e||0===e.length);else if(null===t||0===t.length)t=e.slice();else{let n=-1;for(let r=0;r<e.length;r++){const s=e[r];\"number\"==typeof s?n=s:0===n||en(t,n,s,null,-1===n||2===n?e[++r]:null)}}return t}function en(t,e,n,r,s){let o=0,i=t.length;if(-1===e)i=-1;else for(;o<t.length;){const n=t[o++];if(\"number\"==typeof n){if(n===e){i=-1;break}if(n>e){i=o-1;break}}}for(;o<t.length;){const e=t[o];if(\"number\"==typeof e)break;if(e===n){if(null===r)return void(null!==s&&(t[o+1]=s));if(r===t[o+1])return void(t[o+2]=s)}o++,null!==r&&o++,null!==s&&o++}-1!==i&&(t.splice(i,0,e),o=i+1),t.splice(o++,0,n),null!==r&&t.splice(o++,0,r),null!==s&&t.splice(o++,0,s)}function nn(t){return 32767&t}function rn(t,e){let n=t>>16,r=e;for(;n>0;)r=r[15],n--;return r}let sn=!0;function on(t){const e=sn;return sn=t,e}let ln=0;function un(t,e){const n=an(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,cn(r.data,t),cn(e,null),cn(r.blueprint,null));const s=hn(t,e),o=t.injectorIndex;if(s!==Ke){const t=nn(s),n=rn(s,e),r=n[1].data;for(let s=0;s<8;s++)e[o+s]=n[t+s]|r[t+s]}return e[o+8]=s,o}function cn(t,e){t.push(0,0,0,0,0,0,0,0,e)}function an(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function hn(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,s=e;for(;null!==s;){const t=s[1],e=t.type;if(r=2===e?t.declTNode:1===e?s[6]:null,null===r)return Ke;if(n++,s=s[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return Ke}function dn(t,e,n){!function(t,e,n){let r;\"string\"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(It)&&(r=n[It]),null==r&&(r=n[It]=ln++);const s=255&r,o=1<<s,i=64&s,l=32&s,u=e.data;128&s?i?l?u[t+7]|=o:u[t+6]|=o:l?u[t+5]|=o:u[t+4]|=o:i?l?u[t+3]|=o:u[t+2]|=o:l?u[t+1]|=o:u[t]|=o}(t,e,n)}function fn(t,e,n){if(n&Ft.Optional)return t;Le(e,\"NodeInjector\")}function pn(t,e,n,r){if(n&Ft.Optional&&void 0===r&&(r=null),0==(n&(Ft.Self|Ft.Host))){const s=t[9],o=Lt(void 0);try{return s?s.get(e,r,n&Ft.Optional):Bt(e,r,n&Ft.Optional)}finally{Lt(o)}}return fn(r,e,n)}const _n={};function yn(){return new wn(me(),_e())}function mn(t,e,n,r,s,o){const i=e[1],l=i.data[t+8],u=function(t,e,n,r,s){const o=t.providerIndexes,i=e.data,l=1048575&o,u=t.directiveStart,c=o>>20,a=s?l+c:t.directiveEnd;for(let h=r?l:l+c;h<a;h++){const t=i[h];if(h<u&&n===t||h>=u&&t.type===n)return h}if(s){const t=i[u];if(t&&ne(t)&&t.type===n)return u}return null}(l,i,n,null==r?function(t){return 2==(2&t.flags)}(l)&&sn:r!=i&&0!=(3&l.type),s&Ft.Host&&o===l);return null!==u?gn(e,i,u,l):_n}function gn(t,e,n,r){let s=t[n];const o=e.data;if(s instanceof Ye){const i=s;i.resolving&&function(t,e){throw new Ve(\"200\",\"Circular dependency in DI detected for \"+t)}(Mt(o[n]));const l=on(i.canSeeViewProviders);i.resolving=!0;const u=i.injectImpl?Lt(i.injectImpl):null;Se(t,r,Ft.Default);try{s=t[n]=i.factory(void 0,o,t,r),e.firstCreatePass&&n>=r.directiveStart&&function(t,e,n){const{ngOnChanges:r,ngOnInit:s,ngDoCheck:o}=e.type.prototype;if(r){const r=((i=e).type.prototype.ngOnChanges&&(i.setInput=ze),Ze);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,r)}var i;s&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,s),o&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,o))}(n,o[n],e)}finally{null!==u&&Lt(u),on(l),i.resolving=!1,je()}}return s}function vn(t,e,n){const r=64&t,s=32&t;let o;return o=128&t?r?s?n[e+7]:n[e+6]:s?n[e+5]:n[e+4]:r?s?n[e+3]:n[e+2]:s?n[e+1]:n[e],!!(o&1<<t)}function bn(t,e){return!(t&Ft.Self||t&Ft.Host&&e)}class wn{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return function(t,e,n,r=Ft.Default,s){if(null!==t){const o=function(t){if(\"string\"==typeof t)return t.charCodeAt(0)||0;const e=t.hasOwnProperty(It)?t[It]:void 0;return\"number\"==typeof e?e>=0?255&e:yn:e}(n);if(\"function\"==typeof o){if(!Se(e,t,r))return r&Ft.Host?fn(s,n,r):pn(e,n,r,s);try{const t=o();if(null!=t||r&Ft.Optional)return t;Le(n)}finally{je()}}else if(\"number\"==typeof o){let s=null,i=an(t,e),l=Ke,u=r&Ft.Host?e[16][6]:null;for((-1===i||r&Ft.SkipSelf)&&(l=-1===i?hn(t,e):e[i+8],l!==Ke&&bn(r,!1)?(s=e[1],i=nn(l),e=rn(l,e)):i=-1);-1!==i;){const t=e[1];if(vn(o,i,t.data)){const t=mn(i,e,n,s,r,u);if(t!==_n)return t}l=e[i+8],l!==Ke&&bn(r,e[1].data[i+8]===u)&&vn(o,i,e)?(s=t,i=nn(l),e=rn(l,e)):i=-1}}}return pn(e,n,r,s)}(this._tNode,this._lView,t,void 0,e)}}function Cn(t){return t.ngDebugContext}function En(t){return t.ngOriginalError}function xn(t,...e){t.error(...e)}class kn{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),r=function(t){return t.ngErrorLogger||xn}(t);r(this._console,\"ERROR\",t),e&&r(this._console,\"ORIGINAL ERROR\",e),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(t){return t?Cn(t)?Cn(t):this._findContext(En(t)):null}_findOriginalError(t){let e=En(t);for(;e&&En(e);)e=En(e);return e}}function Tn(t,e){t.__ngContext__=e}const Sn=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(pt))();function In(t){return t instanceof Function?t():t}var An=function(t){return t[t.Important=1]=\"Important\",t[t.DashCase=2]=\"DashCase\",t}({});function On(t,e){return(void 0)(t,e)}function Dn(t){const e=t[3];return te(e)?e[3]:e}function jn(t){return Nn(t[13])}function Hn(t){return Nn(t[4])}function Nn(t){for(;null!==t&&!te(t);)t=t[4];return t}function Pn(t,e,n,r,s){if(null!=r){let o,i=!1;te(r)?o=r:Xt(r)&&(i=!0,r=r[0]);const l=oe(r);0===t&&null!==n?null==s?Vn(e,n,l):Fn(e,n,l,s||null,!0):1===t&&null!==n?Fn(e,n,l,s||null,!0):2===t?function(t,e,n){const r=function(t,e){return re(t)?t.parentNode(e):e.parentNode}(t,e);r&&function(t,e,n,r){re(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,l,i):3===t&&e.destroyNode(l),null!=o&&function(t,e,n,r,s){const o=n[7];o!==oe(n)&&Pn(e,t,r,o,s);for(let i=10;i<n.length;i++){const s=n[i];zn(s[1],s,t,e,r,o)}}(e,t,o,n,s)}}function Rn(t,e,n){return re(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Mn(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r<n.length;r+=2){const t=e[n[r]];if(!(t instanceof Ye)){const e=n[r+1];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)e[n+1].call(t[e[n]]);else e.call(t)}}}(t,e),function(t,e){const n=t.cleanup;if(null!==n){const t=e[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const s=n[r+1],o=\"function\"==typeof s?s(e):oe(e[s]),i=t[n[r+2]],l=n[r+3];\"boolean\"==typeof l?o.removeEventListener(n[r],i,l):l>=0?t[l]():t[-l].unsubscribe(),r+=2}else n[r].call(t[n[r+1]]);e[7]=null}}(t,e),1===e[1].type&&re(e[11])&&e[11].destroy();const n=e[17];if(null!==n&&te(e[3])){n!==e[3]&&function(t,e){const n=t[9],r=n.indexOf(e),s=e[3];1024&e[2]&&(e[2]&=-1025,de(s,-1)),n.splice(r,1)}(n,e);const r=e[19];null!==r&&r.detachView(t)}}}function Fn(t,e,n,r,s){re(t)?t.insertBefore(e,n,r,s):e.insertBefore(n,r,s)}function Vn(t,e,n){re(t)?t.appendChild(e,n):e.appendChild(n)}function Ln(t,e,n,r,s){null!==r?Fn(t,e,n,r,s):Vn(t,e,n)}function Bn(t,e,n,r){const s=function(t,e,n){return function(t,e,n){let r=e;for(;null!==r&&40&r.type;)r=(e=r).parent;if(null===r)return n[0];if(2&r.flags){const e=t.data[r.directiveStart].encapsulation;if(e===vt.None||e===vt.Emulated)return null}return ie(r,n)}(t,e.parent,n)}(t,r,e),o=e[11],i=function(t,e,n){return function(t,e,n){return 40&t.type?ie(t,n):null}(t,0,n)}(r.parent||e[6],0,e);if(null!=s)if(Array.isArray(n))for(let l=0;l<n.length;l++)Ln(o,s,n[l],i,!1);else Ln(o,s,n,i,!1)}function Zn(t,e,n,r,s,o,i){for(;null!=n;){const l=r[n.index],u=n.type;if(i&&0===e&&(l&&Tn(oe(l),r),n.flags|=4),64!=(64&n.flags))if(8&u)Zn(t,e,n.child,r,s,o,!1),Pn(e,t,s,l,o);else if(32&u){const i=On(n,r);let u;for(;u=i();)Pn(e,t,s,u,o);Pn(e,t,s,l,o)}else 16&u?$n(t,e,r,n,s,o):Pn(e,t,s,l,o);n=i?n.projectionNext:n.next}}function zn(t,e,n,r,s,o){Zn(n,r,t.firstChild,e,s,o,!1)}function $n(t,e,n,r,s,o){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)Pn(e,t,s,l[u],o);else Zn(t,e,l,i[3],s,o,!0)}function Un(t,e,n){re(t)?t.setAttribute(e,\"style\",n):e.style.cssText=n}function Wn(t,e,n){re(t)?\"\"===n?t.removeAttribute(e,\"class\"):t.setAttribute(e,\"class\",n):e.className=n}function qn(t,e,n){let r=t.length;for(;;){const s=t.indexOf(e,n);if(-1===s)return s;if(0===s||t.charCodeAt(s-1)<=32){const n=e.length;if(s+n===r||t.charCodeAt(s+n)<=32)return s}n=s+1}}const Qn=\"ng-template\";function Gn(t,e,n){let r=0;for(;r<t.length;){let s=t[r++];if(n&&\"class\"===s){if(s=t[r],-1!==qn(s.toLowerCase(),e,0))return!0}else if(1===s){for(;r<t.length&&\"string\"==typeof(s=t[r++]);)if(s.toLowerCase()===e)return!0;return!1}}return!1}function Jn(t){return 4===t.type&&t.value!==Qn}function Kn(t,e,n){return e===(4!==t.type||n?t.value:Qn)}function Yn(t,e,n){let r=4;const s=t.attrs||[],o=function(t){for(let n=0;n<t.length;n++)if(3===(e=t[n])||4===e||6===e)return n;var e;return t.length}(s);let i=!1;for(let l=0;l<e.length;l++){const u=e[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!Kn(t,u,n)||\"\"===u&&1===e.length){if(Xn(r))return!1;i=!0}}else{const c=8&r?u:e[++l];if(8&r&&null!==t.attrs){if(!Gn(t.attrs,c,n)){if(Xn(r))return!1;i=!0}continue}const a=tr(8&r?\"class\":u,s,Jn(t),n);if(-1===a){if(Xn(r))return!1;i=!0;continue}if(\"\"!==c){let t;t=a>o?\"\":s[a+1].toLowerCase();const e=8&r?t:null;if(e&&-1!==qn(e,c,0)||2&r&&c!==t){if(Xn(r))return!1;i=!0}}}}else{if(!i&&!Xn(r)&&!Xn(u))return!1;if(i&&Xn(u))continue;i=!1,r=u|1&r}}return Xn(r)||i}function Xn(t){return 0==(1&t)}function tr(t,e,n,r){if(null===e)return-1;let s=0;if(r||!n){let n=!1;for(;s<e.length;){const r=e[s];if(r===t)return s;if(3===r||6===r)n=!0;else{if(1===r||2===r){let t=e[++s];for(;\"string\"==typeof t;)t=e[++s];continue}if(4===r)break;if(0===r){s+=4;continue}}s+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){const r=t[n];if(\"number\"==typeof r)return-1;if(r===e)return n;n++}return-1}(e,t)}function er(t,e,n=!1){for(let r=0;r<e.length;r++)if(Yn(t,e[r],n))return!0;return!1}function nr(t,e){return t?\":not(\"+e.trim()+\")\":e}function rr(t){let e=t[0],n=1,r=2,s=\"\",o=!1;for(;n<t.length;){let i=t[n];if(\"string\"==typeof i)if(2&r){const e=t[++n];s+=\"[\"+i+(e.length>0?'=\"'+e+'\"':\"\")+\"]\"}else 8&r?s+=\".\"+i:4&r&&(s+=\" \"+i);else\"\"===s||Xn(i)||(e+=nr(o,s),s=\"\"),r=i,o=o||!Xn(r);n++}return\"\"!==s&&(e+=nr(o,s)),e}const sr={};function or(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const s=n[r],o=n[r+1];if(-1!==o){const n=t.data[o];ke(s),n.contentQueries(2,e[o],o)}}}function ir(t,e,n,r,s,o,i,l,u,c){const a=e.blueprint.slice();return a[0]=s,a[2]=140|r,he(a),a[3]=a[15]=t,a[8]=n,a[10]=i||t&&t[10],a[11]=l||t&&t[11],a[12]=u||t&&t[12]||null,a[9]=c||t&&t[9]||null,a[6]=o,a[16]=2==e.type?t[16]:a,a}function lr(t,e,n,r,s){let o=t.data[e];if(null===o)o=function(t,e,n,r,s){const o=ge(),i=be(),l=t.data[e]=function(t,e,n,r,s,o){return{type:n,index:r,insertBeforeIndex:null,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:s,attrs:o,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,i?o:o&&o.parent,n,e,r,s);return null===t.firstChild&&(t.firstChild=l),null!==o&&(i?null==o.child&&null!==l.parent&&(o.child=l):null===o.next&&(o.next=l)),l}(t,e,n,r,s),fe.lFrame.inI18n&&(o.flags|=64);else if(64&o.type){o.type=n,o.value=r,o.attrs=s;const t=function(){const t=fe.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}();o.injectorIndex=null===t?-1:t.injectorIndex}return ve(o,!0),o}function ur(t,e,n,r){if(0===n)return-1;const s=e.length;for(let o=0;o<n;o++)e.push(r),t.blueprint.push(r),t.data.push(null);return s}function cr(t,e,n){Ie(e);try{const r=t.viewQuery;null!==r&&Dr(1,r,n);const s=t.template;null!==s&&dr(t,e,s,1,n),t.firstCreatePass&&(t.firstCreatePass=!1),t.staticContentQueries&&or(t,e),t.staticViewQueries&&Dr(2,t.viewQuery,n);const o=t.components;null!==o&&function(t,e){for(let n=0;n<e.length;n++)Sr(t,e[n])}(e,o)}catch(r){throw t.firstCreatePass&&(t.incompleteFirstPass=!0),r}finally{e[2]&=-5,He()}}function ar(t,e,n,r){const s=e[2];if(256==(256&s))return;Ie(e);const o=we();try{he(e),fe.lFrame.bindingIndex=t.bindingStartIndex,null!==n&&dr(t,e,n,2,r);const i=3==(3&s);if(!o)if(i){const n=t.preOrderCheckHooks;null!==n&&We(e,n,null)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,null),Qe(e,0)}if(function(t){for(let e=jn(t);null!==e;e=Hn(e)){if(!e[2])continue;const t=e[9];for(let e=0;e<t.length;e++){const n=t[e],r=n[3];0==(1024&n[2])&&de(r,1),n[2]|=1024}}}(e),function(t){for(let e=jn(t);null!==e;e=Hn(e))for(let t=10;t<e.length;t++){const n=e[t],r=n[1];ce(n)&&ar(r,n,r.template,n[8])}}(e),null!==t.contentQueries&&or(t,e),!o)if(i){const n=t.contentCheckHooks;null!==n&&We(e,n)}else{const n=t.contentHooks;null!==n&&qe(e,n,1),Qe(e,1)}!function(t,e){const n=t.hostBindingOpCodes;if(null!==n)try{for(let t=0;t<n.length;t++){const r=n[t];if(r<0)Ne(~r);else{const s=r,o=n[++t],i=n[++t];Ee(o,s),i(2,e[s])}}}finally{Ne(-1)}}(t,e);const l=t.components;null!==l&&function(t,e){for(let n=0;n<e.length;n++)kr(t,e[n])}(e,l);const u=t.viewQuery;if(null!==u&&Dr(2,u,r),!o)if(i){const n=t.viewCheckHooks;null!==n&&We(e,n)}else{const n=t.viewHooks;null!==n&&qe(e,n,2),Qe(e,2)}!0===t.firstUpdatePass&&(t.firstUpdatePass=!1),o||(e[2]&=-73),1024&e[2]&&(e[2]&=-1025,de(e[3],-1))}finally{He()}}function hr(t,e,n,r){const s=e[10],o=!we(),i=4==(4&e[2]);try{o&&!i&&s.begin&&s.begin(),i&&cr(t,e,r),ar(t,e,n,r)}finally{o&&!i&&s.end&&s.end()}}function dr(t,e,n,r,s){const o=fe.lFrame.selectedIndex;try{Ne(-1),2&r&&e.length>Yt&&function(t,e,n,r){if(!r)if(3==(3&e[2])){const n=t.preOrderCheckHooks;null!==n&&We(e,n,20)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,20)}Ne(20)}(t,e,0,we()),n(r,s)}finally{Ne(o)}}function fr(t){const e=t.tView;return null===e||e.incompleteFirstPass?t.tView=pr(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts):e}function pr(t,e,n,r,s,o,i,l,u,c){const a=Yt+r,h=a+s,d=function(t,e){const n=[];for(let r=0;r<e;r++)n.push(r<t?null:sr);return n}(a,h),f=\"function\"==typeof c?c():c;return d[1]={type:t,blueprint:d,template:n,queries:null,viewQuery:l,declTNode:e,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof o?o():o,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:f,incompleteFirstPass:!1}}function _r(t,e,n){for(let r in t)if(t.hasOwnProperty(r)){const s=t[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(e,s):n[r]=[e,s]}return n}function yr(t,e,n,r,s,o){const i=o.hostBindings;if(i){let n=t.hostBindingOpCodes;null===n&&(n=t.hostBindingOpCodes=[]);const o=~e.index;(function(t){let e=t.length;for(;e>0;){const n=t[--e];if(\"number\"==typeof n&&n<0)return n}return 0})(n)!=o&&n.push(o),n.push(r,s,i)}}function mr(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function gr(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function vr(t,e,n){if(n){if(e.exportAs)for(let r=0;r<e.exportAs.length;r++)n[e.exportAs[r]]=t;ne(e)&&(n[\"\"]=t)}}function br(t,e,n){t.flags|=1,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function wr(t,e,n,r,s){t.data[r]=s;const o=s.factory||(s.factory=Fe(s.type)),i=new Ye(o,ne(s),null);t.blueprint[r]=i,n[r]=i,yr(t,e,0,r,ur(t,n,s.hostVars,sr),s)}function Cr(t,e,n){const r=ie(e,t),s=fr(n),o=t[10],i=Ir(t,ir(t,s,null,n.onPush?64:16,r,e,o,o.createRenderer(r,n),null,null));t[e.index]=i}function Er(t,e,n,r,s,o){const i=o[e];if(null!==i){const t=r.setInput;for(let e=0;e<i.length;){const s=i[e++],o=i[e++],l=i[e++];null!==t?r.setInput(n,l,s,o):n[o]=l}}}function xr(t,e){let n=null,r=0;for(;r<e.length;){const s=e[r];if(0!==s)if(5!==s){if(\"number\"==typeof s)break;t.hasOwnProperty(s)&&(null===n&&(n=[]),n.push(s,t[s],e[r+1])),r+=2}else r+=2;else r+=4}return n}function kr(t,e){const n=le(e,t);if(ce(n)){const t=n[1];80&n[2]?ar(t,n,t.template,n[8]):n[5]>0&&Tr(n)}}function Tr(t){for(let n=jn(t);null!==n;n=Hn(n))for(let t=10;t<n.length;t++){const e=n[t];if(1024&e[2]){const t=e[1];ar(t,e,t.template,e[8])}else e[5]>0&&Tr(e)}const e=t[1].components;if(null!==e)for(let n=0;n<e.length;n++){const r=le(e[n],t);ce(r)&&r[5]>0&&Tr(r)}}function Sr(t,e){const n=le(e,t),r=n[1];!function(t,e){for(let n=e.length;n<t.blueprint.length;n++)e.push(t.blueprint[n])}(r,n),cr(r,n,n[8])}function Ir(t,e){return t[13]?t[14][4]=e:t[13]=e,t[14]=e,e}function Ar(t,e,n){const r=e[10];r.begin&&r.begin();try{ar(t,e,t.template,n)}catch(s){throw function(t,e){const n=t[9],r=n?n.get(kn,null):null;r&&r.handleError(e)}(e,s),s}finally{r.end&&r.end()}}function Or(t){!function(t){for(let e=0;e<t.components.length;e++){const n=t.components[e],r=ue(n),s=r[1];hr(s,r,s.template,n)}}(t[8])}function Dr(t,e,n){ke(0),e(t,n)}const jr=(()=>Promise.resolve(null))();function Hr(t,e,n){let r=n?t.styles:null,s=n?t.classes:null,o=0;if(null!==e)for(let i=0;i<e.length;i++){const t=e[i];\"number\"==typeof t?o=t:1==o?s=K(s,t):2==o&&(r=K(r,t+\": \"+e[++i]+\";\"))}n?t.styles=r:t.stylesWithoutHost=r,n?t.classes=s:t.classesWithoutHost=s}const Nr=new ut(\"INJECTOR\",-1);class Pr{get(t,e=Zt){if(e===Zt){const e=new Error(`NullInjectorError: No provider for ${J(t)}!`);throw e.name=\"NullInjectorError\",e}return e}}const Rr=new ut(\"Set Injector scope.\"),Mr={},Fr={},Vr=[];let Lr=void 0;function Br(){return void 0===Lr&&(Lr=new Pr),Lr}function Zr(t,e=null,n=null,r){return new zr(t,n,e||Br(),r)}class zr{constructor(t,e,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];e&&gt(e,n=>this.processProvider(n,t,e)),gt([t],t=>this.processInjectorType(t,[],s)),this.records.set(Nr,Ur(void 0,this));const o=this.records.get(Rr);this.scope=null!=o?o.value:null,this.source=r||(\"object\"==typeof t?null:J(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Zt,n=Ft.Default){this.assertNotDestroyed();const r=qt(this);try{if(!(n&Ft.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=(\"function\"==typeof(s=t)||\"object\"==typeof s&&s instanceof ut)&&et(t);e=n&&this.injectableDefInScope(n)?Ur($r(t),Mr):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(n&Ft.Self?Br():this.parent).get(t,e=n&Ft.Optional&&e===Zt?null:e)}catch(o){if(\"NullInjectorError\"===o.name){if((o.ngTempTokenPath=o.ngTempTokenPath||[]).unshift(J(t)),r)throw o;return function(t,e,n,r){const s=t.ngTempTokenPath;throw e[$t]&&s.unshift(e[$t]),t.message=function(t,e,n,r=null){t=t&&\"\\n\"===t.charAt(0)&&\"\\u0275\"==t.charAt(1)?t.substr(2):t;let s=J(e);if(Array.isArray(e))s=e.map(J).join(\" -> \");else if(\"object\"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];t.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):J(r)))}s=`{${t.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${s}]: ${t.replace(zt,\"\\n  \")}`}(\"\\n\"+t.message,s,n,r),t.ngTokenPath=s,t.ngTempTokenPath=null,t}(o,t,\"R3InjectorError\",this.source)}throw o}finally{qt(r)}var s}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((e,n)=>t.push(J(n))),`R3Injector[${t.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(t,e,n){if(!(t=mt(t)))return!1;let r=rt(t);const s=null==r&&t.ngModule||void 0,o=void 0===s?t:s,i=-1!==n.indexOf(o);if(void 0!==s&&(r=rt(s)),null==r)return!1;if(null!=r.imports&&!i){let t;n.push(o);try{gt(r.imports,r=>{this.processInjectorType(r,e,n)&&(void 0===t&&(t=[]),t.push(r))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:r}=t[e];gt(r,t=>this.processProvider(t,n,r||Vr))}}this.injectorDefTypes.add(o),this.records.set(o,Ur(r.factory,Mr));const l=r.providers;if(null!=l&&!i){const e=t;gt(l,t=>this.processProvider(t,e,l))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,n){let r=qr(t=mt(t))?t:mt(t&&t.provide);const s=function(t,e,n){return Wr(t)?Ur(void 0,t.useValue):Ur(function(t,e,n){let r=void 0;if(qr(t)){const e=mt(t);return Fe(e)||$r(e)}if(Wr(t))r=()=>mt(t.useValue);else if((s=t)&&s.useFactory)r=()=>t.useFactory(...Jt(t.deps||[]));else if(function(t){return!(!t||!t.useExisting)}(t))r=()=>Gt(mt(t.useExisting));else{const e=mt(t&&(t.useClass||t.provide));if(!function(t){return!!t.deps}(t))return Fe(e)||$r(e);r=()=>new e(...Jt(t.deps))}var s;return r}(t),Mr)}(t);if(qr(t)||!0!==t.multi)this.records.get(r);else{let e=this.records.get(r);e||(e=Ur(void 0,Mr,!0),e.factory=()=>Jt(e.multi),this.records.set(r,e)),r=t,e.multi.push(t)}this.records.set(r,s)}hydrate(t,e){var n;return e.value===Mr&&(e.value=Fr,e.value=e.factory()),\"object\"==typeof e.value&&e.value&&null!==(n=e.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&(\"string\"==typeof t.providedIn?\"any\"===t.providedIn||t.providedIn===this.scope:this.injectorDefTypes.has(t.providedIn))}}function $r(t){const e=et(t),n=null!==e?e.factory:Fe(t);if(null!==n)return n;const r=rt(t);if(null!==r)return r.factory;if(t instanceof ut)throw new Error(`Token ${J(t)} is missing a \\u0275prov definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=function(t,e){const n=[];for(let r=0;r<t;r++)n.push(\"?\");return n}(e);throw new Error(`Can't resolve all parameters for ${J(t)}: (${n.join(\", \")}).`)}const n=function(t){const e=t&&(t[st]||t[it]);if(e){const n=function(t){if(t.hasOwnProperty(\"name\"))return t.name;const e=(\"\"+t).match(/^function\\s*([^\\s(]+)/);return null===e?\"\":e[1]}(t);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\nThis will become an error in a future version of Angular. Please add @Injectable() to the \"${n}\" class.`),e}return null}(t);return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error(\"unreachable\")}function Ur(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Wr(t){return null!==t&&\"object\"==typeof t&&Ut in t}function qr(t){return\"function\"==typeof t}const Qr=function(t,e,n){return function(t,e=null,n=null,r){const s=Zr(t,e,n,r);return s._resolveInjectorDefTypes(),s}({name:n},e,t,n)};let Gr=(()=>{class t{static create(t,e){return Array.isArray(t)?Qr(t,e,\"\"):Qr(t.providers,t.parent,t.name||\"\")}}return t.THROW_IF_NOT_FOUND=Zt,t.NULL=new Pr,t.\\u0275prov=X({token:t,providedIn:\"any\",factory:()=>Gt(Nr)}),t.__NG_ELEMENT_ID__=-1,t})();function Jr(t,e){Ue(ue(t)[1],me())}let Kr=null;function Yr(){if(!Kr){const t=pt.Symbol;if(t&&t.iterator)Kr=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Kr=n)}}}return Kr}function Xr(t){return!!ts(t)&&(Array.isArray(t)||!(t instanceof Map)&&Yr()in t)}function ts(t){return null!==t&&(\"function\"==typeof t||\"object\"==typeof t)}function es(t,e,n,r,s){const o=s?\"class\":\"style\";!function(t,e,n,r,s){for(let o=0;o<n.length;){const i=n[o++],l=n[o++],u=e[i],c=t.data[i];null!==c.setInput?c.setInput(u,s,r,l):u[l]=s}}(t,n,e.inputs[o],o,r)}function ns(t,e,n,r){const s=_e(),o=ye(),i=Yt+t,l=s[11],u=s[i]=Rn(l,e,fe.lFrame.currentNamespace),c=o.firstCreatePass?function(t,e,n,r,s,o,i){const l=e.consts,u=lr(e,t,2,s,ae(l,o));return function(t,e,n,r){let s=!1;if(pe()){const o=function(t,e,n){const r=t.directiveRegistry;let s=null;if(r)for(let o=0;o<r.length;o++){const i=r[o];er(n,i.selectors,!1)&&(s||(s=[]),dn(un(n,e),t,i.type),ne(i)?(gr(t,n),s.unshift(i)):s.push(i))}return s}(t,e,n),i=null===r?null:{\"\":-1};if(null!==o){s=!0,br(n,t.data.length,o.length);for(let t=0;t<o.length;t++){const e=o[t];e.providersResolver&&e.providersResolver(e)}let r=!1,l=!1,u=ur(t,e,o.length,null);for(let s=0;s<o.length;s++){const c=o[s];n.mergedAttrs=tn(n.mergedAttrs,c.hostAttrs),wr(t,n,e,u,c),vr(u,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128);const a=c.type.prototype;!r&&(a.ngOnChanges||a.ngOnInit||a.ngDoCheck)&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n.index),r=!0),l||!a.ngOnChanges&&!a.ngDoCheck||((t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n.index),l=!0),u++}!function(t,e){const n=e.directiveEnd,r=t.data,s=e.attrs,o=[];let i=null,l=null;for(let u=e.directiveStart;u<n;u++){const t=r[u],n=t.inputs,c=null===s||Jn(e)?null:xr(n,s);o.push(c),i=_r(n,u,i),l=_r(t.outputs,u,l)}null!==i&&(i.hasOwnProperty(\"class\")&&(e.flags|=16),i.hasOwnProperty(\"style\")&&(e.flags|=32)),e.initialInputs=o,e.inputs=i,e.outputs=l}(t,n)}i&&function(t,e,n){if(e){const r=t.localNames=[];for(let t=0;t<e.length;t+=2){const s=n[e[t+1]];if(null==s)throw new Ve(\"301\",`Export of name '${e[t+1]}' not found!`);r.push(e[t],s)}}}(n,r,i)}n.mergedAttrs=tn(n.mergedAttrs,n.attrs)}(e,n,u,ae(l,i)),null!==u.attrs&&Hr(u,u.attrs,!1),null!==u.mergedAttrs&&Hr(u,u.mergedAttrs,!0),null!==e.queries&&e.queries.elementStart(e,u),u}(i,o,s,0,e,n,r):o.data[i];ve(c,!0);const a=c.mergedAttrs;null!==a&&Xe(l,u,a);const h=c.classes;null!==h&&Wn(l,u,h);const d=c.styles;null!==d&&Un(l,u,d),64!=(64&c.flags)&&Bn(o,s,u,c),0===fe.lFrame.elementDepthCount&&Tn(u,s),fe.lFrame.elementDepthCount++,function(t){return 1==(1&t.flags)}(c)&&(function(t,e,n){pe()&&(function(t,e,n,r){const s=n.directiveStart,o=n.directiveEnd;t.firstCreatePass||un(n,e),Tn(r,e);const i=n.initialInputs;for(let l=s;l<o;l++){const r=t.data[l],o=ne(r);o&&Cr(e,n,r);const u=gn(e,t,l,n);Tn(u,e),null!==i&&Er(0,l-s,u,r,0,i),o&&(le(n.index,e)[8]=u)}}(t,e,n,ie(n,e)),128==(128&n.flags)&&function(t,e,n){const r=n.directiveStart,s=n.directiveEnd,o=n.index,i=fe.lFrame.currentDirectiveIndex;try{Ne(o);for(let n=r;n<s;n++){const r=t.data[n],s=e[n];xe(n),null===r.hostBindings&&0===r.hostVars&&null===r.hostAttrs||mr(r,s)}}finally{Ne(-1),xe(i)}}(t,e,n))}(o,s,c),function(t,e,n){if(ee(e)){const r=e.directiveEnd;for(let s=e.directiveStart;s<r;s++){const e=t.data[s];e.contentQueries&&e.contentQueries(1,n[s],s)}}}(o,c,s)),null!==r&&function(t,e,n=ie){const r=e.localNames;if(null!==r){let s=e.index+1;for(let o=0;o<r.length;o+=2){const i=r[o+1],l=-1===i?n(e,t):t[i];t[s++]=l}}}(s,c)}function rs(t){return!!t&&\"function\"==typeof t.then}const ss=void 0;var os=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],ss],[[\"AM\",\"PM\"],ss,ss],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],ss,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],ss,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",ss,\"{1} 'at' {0}\",ss],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},\"ltr\",function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===e&&0===n?1:5}];let is={};function ls(t){return t in is||(is[t]=pt.ng&&pt.ng.common&&pt.ng.common.locales&&pt.ng.common.locales[t]),is[t]}var us=function(t){return t[t.LocaleId=0]=\"LocaleId\",t[t.DayPeriodsFormat=1]=\"DayPeriodsFormat\",t[t.DayPeriodsStandalone=2]=\"DayPeriodsStandalone\",t[t.DaysFormat=3]=\"DaysFormat\",t[t.DaysStandalone=4]=\"DaysStandalone\",t[t.MonthsFormat=5]=\"MonthsFormat\",t[t.MonthsStandalone=6]=\"MonthsStandalone\",t[t.Eras=7]=\"Eras\",t[t.FirstDayOfWeek=8]=\"FirstDayOfWeek\",t[t.WeekendRange=9]=\"WeekendRange\",t[t.DateFormat=10]=\"DateFormat\",t[t.TimeFormat=11]=\"TimeFormat\",t[t.DateTimeFormat=12]=\"DateTimeFormat\",t[t.NumberSymbols=13]=\"NumberSymbols\",t[t.NumberFormats=14]=\"NumberFormats\",t[t.CurrencyCode=15]=\"CurrencyCode\",t[t.CurrencySymbol=16]=\"CurrencySymbol\",t[t.CurrencyName=17]=\"CurrencyName\",t[t.Currencies=18]=\"Currencies\",t[t.Directionality=19]=\"Directionality\",t[t.PluralCase=20]=\"PluralCase\",t[t.ExtraData=21]=\"ExtraData\",t}({});const cs=\"en-US\";let as=cs;function hs(t){var e,n;n=\"Expected localeId to be defined\",null==(e=t)&&function(t,e,n,r){throw new Error(\"ASSERTION ERROR: \"+t+` [Expected=> null != ${e} <=Actual]`)}(n,e),\"string\"==typeof t&&(as=t.toLowerCase().replace(/_/g,\"-\"))}class ds{}class fs{resolveComponentFactory(t){throw function(t){const e=Error(`No component factory found for ${J(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(t)}}let ps=(()=>{class t{}return t.NULL=new fs,t})();function _s(...t){}function ys(t,e){return new gs(ie(t,e))}const ms=function(){return ys(me(),_e())};let gs=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=ms,t})();class vs{}let bs=(()=>{class t{}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>null}),t})();class ws{constructor(t){this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}}const Cs=new ws(\"11.0.2\");class Es{constructor(){}supports(t){return Xr(t)}create(t){return new ks(t)}}const xs=(t,e)=>e;class ks{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||xs}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,r=0,s=null;for(;e||n;){const o=!n||e&&e.currentIndex<As(n,r,s)?e:n,i=As(o,r,s),l=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(e=e._next,null==o.previousIndex)r++;else{s||(s=[]);const t=i-r,e=l-r;if(t!=e){for(let n=0;n<t;n++){const r=n<s.length?s[n]:s[n]=0,o=r+n;e<=o&&o<t&&(s[n]=r+1)}s[o.previousIndex]=e-t}}i!==l&&t(o,i,l)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!Xr(t))throw new Error(`Error trying to diff '${J(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,r,s=this._itHead,o=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],r=this._trackByFn(e,n),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,n,r,e)),Object.is(s.item,n)||this._addIdentityChange(s,n)):(s=this._mismatch(s,n,r,e),o=!0),s=s._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[Yr()]();let r;for(;!(r=n.next()).done;)e(r.value)}}(t,t=>{r=this._trackByFn(e,t),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,t,r,e)),Object.is(s.item,t)||this._addIdentityChange(s,t)):(s=this._mismatch(s,t,r,e),o=!0),s=s._next,e++}),this.length=e;return this._truncate(s),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):t=this._addAfter(new Ts(e,n),s,r),t}_verifyReinsertion(t,e,n,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Is),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Is),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class Ts{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Ss{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class Is{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new Ss,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function As(t,e,n){const r=t.previousIndex;if(null===r)return r;let s=0;return n&&r<n.length&&(s=n[r]),r+e+s}class Os{constructor(){}supports(t){return t instanceof Map||ts(t)}create(){return new Ds}}class Ds{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||ts(t)))throw new Error(`Error trying to diff '${J(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const n=this._records.get(t);this._maybeAddToChanges(n,e);const r=n._prev,s=n._next;return r&&(r._next=s),s&&(s._prev=r),n._next=null,n._prev=null,n}const n=new js(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(n=>e(t[n],n))}}class js{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let Hs=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Es])}),t})(),Ns=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Os])}),t})();function Ps(t,e,n,r,s=!1){for(;null!==n;){const o=e[n.index];if(null!==o&&r.push(oe(o)),te(o))for(let t=10;t<o.length;t++){const e=o[t],n=e[1].firstChild;null!==n&&Ps(e[1],e,n,r)}const i=n.type;if(8&i)Ps(t,e,n.child,r);else if(32&i){const t=On(n,e);let s;for(;s=t();)r.push(s)}else if(16&i){const t=e[16],s=t[6].projection[n.projection];if(Array.isArray(s))r.push(...s);else{const e=Dn(t);Ps(e[1],e,s,r,!0)}}n=s?n.projectionNext:n.next}return r}class Rs extends class{constructor(t,e){this._lView=t,this._cdRefInjectingView=e,this._appRef=null,this._viewContainerRef=null}get rootNodes(){const t=this._lView,e=t[1];return Ps(e,t,e.firstChild,[])}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}!function(t,e){if(!(256&e[2])){const n=e[11];re(n)&&n.destroyNode&&zn(t,e,n,3,null,null),function(t){let e=t[13];if(!e)return Mn(t[1],t);for(;e;){let n=null;if(Xt(e))n=e[13];else{const t=e[10];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)Xt(e)&&Mn(e[1],e),e=e[3];null===e&&(e=t),Xt(e)&&Mn(e[1],e),n=e&&e[4]}e=n}}(e)}}(this._lView[1],this._lView)}onDestroy(t){!function(t,e,n,r){const s=(o=e)[7]||(o[7]=[]);var o;s.push(null),t.firstCreatePass&&function(t){return t.cleanup||(t.cleanup=[])}(t).push(r,s.length-1)}(this._lView[1],this._lView,0,t)}markForCheck(){!function(t){for(;t;){t[2]|=64;const e=Dn(t);if(0!=(512&t[2])&&!e)return t;t=e}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){Ar(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(t,e,n){Ce(!0);try{Ar(t,e,n)}finally{Ce(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=t}detachFromAppRef(){var t;this._appRef=null,zn(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=t}}{constructor(t){super(t),this._view=t}detectChanges(){Or(this._view)}checkNoChanges(){!function(t){Ce(!0);try{Or(t)}finally{Ce(!1)}}(this._view)}get context(){return null}}const Ms=[new Os],Fs=new Hs([new Es]),Vs=new Ns(Ms);class Ls{}const Bs={};class Zs extends ps{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=Pt(t);return new Us(e,this.ngModule)}}function zs(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const $s=new ut(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Sn});class Us extends ds{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors.map(rr).join(\",\"),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return zs(this.componentDef.inputs)}get outputs(){return zs(this.componentDef.outputs)}create(t,e,n,r){const s=(r=r||this.ngModule)?function(t,e){return{get:(n,r,s)=>{const o=t.get(n,Bs,s);return o!==Bs||r===Bs?o:e.get(n,r,s)}}}(t,r.injector):t,o=s.get(vs,se),i=s.get(bs,null),l=o.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(t,e,n){if(re(t))return t.selectRootElement(e,n===vt.ShadowDom);let r=\"string\"==typeof e?t.querySelector(e):e;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Rn(o.createRenderer(null,this.componentDef),u,function(t){const e=t.toLowerCase();return\"svg\"===e?\"http://www.w3.org/2000/svg\":\"math\"===e?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h={components:[],scheduler:Sn,clean:jr,playerHandler:null,flags:0},d=pr(0,null,null,1,0,null,null,null,null,null),f=ir(null,d,h,a,null,null,o,l,i,s);let p,_;Ie(f);try{const t=function(t,e,n,r,s,o){const i=n[1];n[20]=t;const l=lr(i,20,2,\"#host\",null),u=l.mergedAttrs=e.hostAttrs;null!==u&&(Hr(l,u,!0),null!==t&&(Xe(s,t,u),null!==l.classes&&Wn(s,t,l.classes),null!==l.styles&&Un(s,t,l.styles)));const c=r.createRenderer(t,e),a=ir(n,fr(e),null,e.onPush?64:16,n[20],l,r,c,null,null);return i.firstCreatePass&&(dn(un(l,n),i,e.type),gr(i,l),br(l,n.length,1)),Ir(n,a),n[20]=a}(c,this.componentDef,f,o,l);if(c)if(n)Xe(l,c,[\"ng-version\",Cs.full]);else{const{attrs:t,classes:e}=function(t){const e=[],n=[];let r=1,s=2;for(;r<t.length;){let o=t[r];if(\"string\"==typeof o)2===s?\"\"!==o&&e.push(o,t[++r]):8===s&&n.push(o);else{if(!Xn(s))break;s=o}r++}return{attrs:e,classes:n}}(this.componentDef.selectors[0]);t&&Xe(l,c,t),e&&e.length>0&&Wn(l,c,e.join(\" \"))}if(_=d.data[20],void 0!==e){const t=_.projection=[];for(let n=0;n<this.ngContentSelectors.length;n++){const r=e[n];t.push(null!=r?Array.from(r):null)}}p=function(t,e,n,r,s){const o=n[1],i=function(t,e,n){const r=me();t.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),wr(t,r,e,ur(t,e,1,null),n));const s=gn(e,t,r.directiveStart,r);Tn(s,e);const o=ie(r,e);return o&&Tn(o,e),s}(o,n,e);if(r.components.push(i),t[8]=i,s&&s.forEach(t=>t(i,e)),e.contentQueries){const t=me();e.contentQueries(1,i,t.directiveStart)}const l=me();return!o.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(Ne(l.index),yr(n[1],l,0,l.directiveStart,l.directiveEnd,e),mr(e,i)),i}(t,this.componentDef,f,h,[Jr]),cr(d,f,null)}finally{He()}return new Ws(this.componentType,p,ys(_,f),f,_)}}class Ws extends class{}{constructor(t,e,n,r,s){super(),this.location=n,this._rootLView=r,this._tNode=s,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new Rs(r),this.componentType=t}get injector(){return new wn(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const qs=new Map;class Qs extends Ls{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Zs(this);const n=Rt(t),r=t[Tt]||null;r&&hs(r),this._bootstrapComponents=In(n.bootstrap),this._r3Injector=Zr(t,e,[{provide:Ls,useValue:this},{provide:ps,useValue:this.componentFactoryResolver}],J(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=Gr.THROW_IF_NOT_FOUND,n=Ft.Default){return t===Gr||t===Ls||t===Nr?this:this._r3Injector.get(t,e,n)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Gs extends class{}{constructor(t){super(),this.moduleType=t,null!==Rt(t)&&function(t){const e=new Set;!function t(n){const r=Rt(n,!0),s=r.id;null!==s&&(function(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${J(e)} vs ${J(e.name)}`)}(s,qs.get(s),n),qs.set(s,n));const o=In(r.imports);for(const i of o)e.has(i)||(e.add(i),t(i))}(t)}(t)}create(t){return new Qs(this.moduleType,t)}}const Js=class extends E{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let r,s=t=>null,o=()=>null;t&&\"object\"==typeof t?(r=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(s=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(o=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(r=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(s=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(o=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,s,o);return t instanceof h&&t.add(i),i}},Ks=new ut(\"Application Initializer\");let Ys=(()=>{class t{constructor(t){this.appInits=t,this.resolve=_s,this.reject=_s,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();rs(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Ks,8))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const Xs=new ut(\"AppId\"),to={provide:Xs,useFactory:function(){return`${eo()}${eo()}${eo()}`},deps:[]};function eo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const no=new ut(\"Platform Initializer\"),ro=new ut(\"Platform ID\"),so=new ut(\"appBootstrapListener\");let oo=(()=>{class t{log(t){console.log(t)}warn(t){console.warn(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const io=new ut(\"LocaleId\"),lo=new ut(\"DefaultCurrencyCode\");class uo{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const co=function(t){return new Gs(t)},ao=co,ho=function(t){return Promise.resolve(co(t))},fo=function(t){const e=co(t),n=In(Rt(t).declarations).reduce((t,e)=>{const n=Pt(e);return n&&t.push(new Us(n)),t},[]);return new uo(e,n)},po=fo,_o=function(t){return Promise.resolve(fo(t))};let yo=(()=>{class t{constructor(){this.compileModuleSync=ao,this.compileModuleAsync=ho,this.compileModuleAndAllComponentsSync=po,this.compileModuleAndAllComponentsAsync=_o}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const mo=(()=>Promise.resolve(0))();function go(t){\"undefined\"==typeof Zone?mo.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",t)}class vo{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Js(!1),this.onMicrotaskEmpty=new Js(!1),this.onStable=new Js(!1),this.onError=new Js(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched();const n=this;n._nesting=0,n._outer=n._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(n._inner=n._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(n._inner=n._inner.fork(Zone.longStackTraceZoneSpec)),n.shouldCoalesceEventChangeDetection=e,n.lastRequestAnimationFrameId=-1,n.nativeRequestAnimationFrame=function(){let t=pt.requestAnimationFrame,e=pt.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__(\"OriginalDelegate\")];n&&(t=n);const r=e[Zone.__symbol__(\"OriginalDelegate\")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function(t){const e=!!t.shouldCoalesceEventChangeDetection&&t.nativeRequestAnimationFrame&&(()=>{!function(t){-1===t.lastRequestAnimationFrameId&&(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(pt,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask(\"fakeTopEventTask\",()=>{t.lastRequestAnimationFrameId=-1,Eo(t),Co(t)},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Eo(t))}(t)});t._inner=t._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:e},onInvokeTask:(n,r,s,o,i,l)=>{try{return xo(t),n.invokeTask(s,o,i,l)}finally{e&&\"eventTask\"===o.type&&e(),ko(t)}},onInvoke:(e,n,r,s,o,i,l)=>{try{return xo(t),e.invoke(r,s,o,i,l)}finally{ko(t)}},onHasTask:(e,n,r,s)=>{e.hasTask(r,s),n===r&&(\"microTask\"==s.change?(t._hasPendingMicrotasks=s.microTask,Eo(t),Co(t)):\"macroTask\"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,n,r,s)=>(e.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(n)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!vo.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(vo.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,r){const s=this._inner,o=s.scheduleEventTask(\"NgZoneEvent: \"+r,t,wo,bo,bo);try{return s.runTask(o,e,n)}finally{s.cancelTask(o)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function bo(){}const wo={};function Co(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Eo(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||t.shouldCoalesceEventChangeDetection&&-1!==t.lastRequestAnimationFrameId)}function xo(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ko(t){t._nesting--,Co(t)}class To{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Js,this.onMicrotaskEmpty=new Js,this.onStable=new Js,this.onError=new Js}run(t,e,n){return t.apply(e,n)}runGuarded(t,e,n){return t.apply(e,n)}runOutsideAngular(t){return t()}runTask(t,e,n,r){return t.apply(e,n)}}let So=(()=>{class t{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{vo.assertNotInAngularZone(),go(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())go(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let r=-1;e&&e>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==r),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Io=(()=>{class t{constructor(){this._applications=new Map,Do.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return Do.findTestabilityInTree(this,t,e)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class Ao{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}let Oo,Do=new Ao;const jo=new ut(\"AllowMultipleToken\");function Ho(t,e,n=[]){const r=\"Platform: \"+e,s=new ut(r);return(e=[])=>{let o=No();if(!o||o.injector.get(jo,!1))if(t)t(n.concat(e).concat({provide:s,useValue:!0}));else{const t=n.concat(e).concat({provide:s,useValue:!0},{provide:Rr,useValue:\"platform\"});!function(t){if(Oo&&!Oo.destroyed&&!Oo.injector.get(jo,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");Oo=t.get(Po);const e=t.get(no,null);e&&e.forEach(t=>t())}(Gr.create({providers:t,name:r}))}return function(t){const e=No();if(!e)throw new Error(\"No platform exists!\");if(!e.injector.get(t,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return e}(s)}}function No(){return Oo&&!Oo.destroyed?Oo:null}let Po=(()=>{class t{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t,e){let n;return n=\"noop\"===t?new To:(\"zone.js\"===t?void 0:t)||new vo({enableLongStackTrace:Me(),shouldCoalesceEventChangeDetection:e}),n}(e?e.ngZone:void 0,e&&e.ngZoneEventCoalescing||!1),r=[{provide:vo,useValue:n}];return n.run(()=>{const e=Gr.create({providers:r,parent:this.injector,name:t.moduleType.name}),s=t.create(e),o=s.injector.get(kn,null);if(!o)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return s.onDestroy(()=>Fo(this._modules,s)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{o.handleError(t)}})),function(t,e,n){try{const r=n();return rs(r)?r.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(o,n,()=>{const t=s.injector.get(Ys);return t.runInitializers(),t.donePromise.then(()=>(hs(s.injector.get(io,cs)||cs),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,e=[]){const n=Ro({},e);return function(t,e,n){const r=new Gs(n);return Promise.resolve(r)}(0,0,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(Mo);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${J(t.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. Please define one of these.`);t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Gr))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Ro(t,e){return Array.isArray(e)?e.reduce(Ro,t):Object.assign(Object.assign({},t),e)}let Mo=(()=>{class t{constructor(t,e,n,r,s,o){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Me(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),l=new g(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{vo.assertNotInAngularZone(),go(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{vo.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=function(...t){let e=Number.POSITIVE_INFINITY,n=null,r=t[t.length-1];var s;return(s=r)&&\"function\"==typeof s.schedule?(n=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(e=t.pop())):\"number\"==typeof r&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof g?t[0]:function(t=Number.POSITIVE_INFINITY){return H(m,t)}(e)(function(t,e){return e?function(t,e){return new g(n=>{const r=new h;let s=0;return r.add(e.schedule(function(){s!==t.length?(n.next(t[s++]),n.closed||r.add(this.schedule())):n.complete()})),r})}(t,e):new g(S(t))}(t,n))}(i,l.pipe(t=>{return R()((e=Z,function(t){let n;n=\"function\"==typeof e?e:function(){return e};const r=Object.create(t,L);return r.source=t,r.subjectFactory=n,r})(t));var e}))}bootstrap(t,e){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=t instanceof ds?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(Ls),s=n.create(Gr.NULL,[],e||n.selector,r);s.onDestroy(()=>{this._unloadComponent(s)});const o=s.injector.get(So,null);return o&&s.injector.get(Io).registerApplication(s.location.nativeElement,o),this._loadComponent(s),Me()&&this._console.log(\"Angular is running in development mode. Call enableProdMode() to enable production mode.\"),s}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Fo(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(so,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),Fo(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo),Gt(oo),Gt(Gr),Gt(kn),Gt(ps),Gt(Ys))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Fo(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const Vo=Ho(null,\"core\",[{provide:ro,useValue:\"unknown\"},{provide:Po,deps:[Gr]},{provide:Io,deps:[]},{provide:oo,deps:[]}]),Lo=[{provide:Mo,useClass:Mo,deps:[vo,oo,Gr,kn,ps,Ys]},{provide:$s,deps:[vo],useFactory:function(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:Ys,useClass:Ys,deps:[[new q,Ks]]},{provide:yo,useClass:yo,deps:[]},to,{provide:Hs,useFactory:function(){return Fs},deps:[]},{provide:Ns,useFactory:function(){return Vs},deps:[]},{provide:io,useFactory:function(t){return hs(t=t||\"undefined\"!=typeof $localize&&$localize.locale||cs),t},deps:[[new W(io),new q,new G]]},{provide:lo,useValue:\"USD\"}];let Bo=(()=>{class t{constructor(t){}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(Mo))},providers:Lo}),t})(),Zo=null;function zo(){return Zo}const $o=new ut(\"DocumentToken\");var Uo=function(t){return t[t.Zero=0]=\"Zero\",t[t.One=1]=\"One\",t[t.Two=2]=\"Two\",t[t.Few=3]=\"Few\",t[t.Many=4]=\"Many\",t[t.Other=5]=\"Other\",t}({});class Wo{}let qo=(()=>{class t extends Wo{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(function(t){return function(t){const e=function(t){return t.toLowerCase().replace(/_/g,\"-\")}(t);let n=ls(e);if(n)return n;const r=e.split(\"-\")[0];if(n=ls(r),n)return n;if(\"en\"===r)return os;throw new Error(`Missing locale data for the locale \"${t}\".`)}(t)[us.PluralCase]}(e||this.locale)(t)){case Uo.Zero:return\"zero\";case Uo.One:return\"one\";case Uo.Two:return\"two\";case Uo.Few:return\"few\";case Uo.Many:return\"many\";default:return\"other\"}}}return t.\\u0275fac=function(e){return new(e||t)(Gt(io))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Qo=(()=>{class t{}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[{provide:Wo,useClass:qo}]}),t})();class Go extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var t;t=new Go,Zo||(Zo=t)}getProperty(t,e){return t[e]}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}getValue(t){return t.value}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return\"window\"===e?window:\"document\"===e?t:\"body\"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=Ko||(Ko=document.querySelector(\"base\"),Ko)?Ko.getAttribute(\"href\"):null;return null==e?null:(n=e,Jo||(Jo=document.createElement(\"a\")),Jo.setAttribute(\"href\",n),\"/\"===Jo.pathname.charAt(0)?Jo.pathname:\"/\"+Jo.pathname);var n}resetBaseElement(){Ko=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return function(t,e){e=encodeURIComponent(e);for(const n of t.split(\";\")){const t=n.indexOf(\"=\"),[r,s]=-1==t?[n,\"\"]:[n.slice(0,t),n.slice(t+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}(document.cookie,t)}}let Jo,Ko=null;const Yo=new ut(\"TRANSITION_ID\"),Xo=[{provide:Ks,useFactory:function(t,e,n){return()=>{n.get(Ys).donePromise.then(()=>{const n=zo();Array.prototype.slice.apply(e.querySelectorAll(\"style[ng-transition]\")).filter(e=>e.getAttribute(\"ng-transition\")===t).forEach(t=>n.remove(t))})}},deps:[Yo,$o,Gr],multi:!0}];class ti{static init(){var t;t=new ti,Do=t}addToWindow(t){pt.getAngularTestability=(e,n=!0)=>{const r=t.findTestabilityInTree(e,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},pt.getAllAngularTestabilities=()=>t.getAllTestabilities(),pt.getAllAngularRootElements=()=>t.getAllRootElements(),pt.frameworkStabilizers||(pt.frameworkStabilizers=[]),pt.frameworkStabilizers.push(t=>{const e=pt.getAllAngularTestabilities();let n=e.length,r=!1;const s=function(e){r=r||e,n--,0==n&&t(r)};e.forEach(function(t){t.whenStable(s)})})}findTestabilityInTree(t,e,n){if(null==e)return null;const r=t.getTestability(e);return null!=r?r:n?zo().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}const ei=new ut(\"EventManagerPlugins\");let ni=(()=>{class t{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let r=0;r<n.length;r++){const e=n[r];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(\"No event manager plugin found for event \"+t)}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ei),Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class ri{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const r=zo().getGlobalEventTarget(this._doc,t);if(!r)throw new Error(`Unsupported event target ${r} for event ${e}`);return this.addEventListener(r,e,n)}}let si=(()=>{class t{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),oi=(()=>{class t extends si{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement(\"style\");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>zo().remove(t))}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const ii={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},li=/%COMP%/g;function ui(t,e,n){for(let r=0;r<e.length;r++){let s=e[r];Array.isArray(s)?ui(t,s,n):(s=s.replace(li,t),n.push(s))}return n}function ci(t){return e=>{if(\"__ngUnwrap__\"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let ai=(()=>{class t{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new hi(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case vt.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new di(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case 1:case vt.ShadowDom:return new fi(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=ui(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ni),Gt(oi),Gt(Xs))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class hi{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(ii[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n=\"string\"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector \"${t}\" did not match any elements`);return e||(n.textContent=\"\"),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,r){if(r){e=r+\":\"+e;const s=ii[r];s?t.setAttributeNS(s,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const r=ii[n];r?t.removeAttributeNS(r,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,r){r&(An.DashCase|An.Important)?t.style.setProperty(e,n,r&An.Important?\"important\":\"\"):t.style[e]=n}removeStyle(t,e,n){n&An.DashCase?t.style.removeProperty(e):t.style[e]=\"\"}setProperty(t,e,n){t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return\"string\"==typeof t?this.eventManager.addGlobalEventListener(t,e,ci(n)):this.eventManager.addEventListener(t,e,ci(n))}}class di extends hi{constructor(t,e,n,r){super(t),this.component=n;const s=ui(r+\"-\"+n.id,n.styles,[]);e.addStyles(s),this.contentAttr=\"_ngcontent-%COMP%\".replace(li,r+\"-\"+n.id),this.hostAttr=\"_nghost-%COMP%\".replace(li,r+\"-\"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,\"\")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,\"\"),n}}class fi extends hi{constructor(t,e,n,r){super(t),this.sharedStylesHost=e,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:\"open\"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=ui(r.id,r.styles,[]);for(let o=0;o<s.length;o++){const t=document.createElement(\"style\");t.textContent=s[o],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}let pi=(()=>{class t extends ri{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,n){return t.addEventListener(e,n,!1),()=>this.removeEventListener(t,e,n)}removeEventListener(t,e,n){return t.removeEventListener(e,n)}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const _i=[\"alt\",\"control\",\"meta\",\"shift\"],yi={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},mi={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},gi={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let vi=(()=>{class t extends ri{constructor(t){super(t)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,n,r){const s=t.parseEventName(n),o=t.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>zo().onAndCancel(e,s.domEventName,o))}static parseEventName(e){const n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const s=t._normalizeKey(n.pop());let o=\"\";if(_i.forEach(t=>{const e=n.indexOf(t);e>-1&&(n.splice(e,1),o+=t+\".\")}),o+=s,0!=n.length||0===s.length)return null;const i={};return i.domEventName=r,i.fullKey=o,i}static getEventFullKey(t){let e=\"\",n=function(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return\"Unidentified\";e.startsWith(\"U+\")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&mi.hasOwnProperty(e)&&(e=mi[e]))}return yi[e]||e}(t);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),_i.forEach(r=>{r!=n&&(0,gi[r])(t)&&(e+=r+\".\")}),e+=n,e}static eventCallback(e,n,r){return s=>{t.getEventFullKey(s)===e&&r.runGuarded(()=>n(s))}}static _normalizeKey(t){switch(t){case\"esc\":return\"escape\";default:return t}}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const bi=Ho(Vo,\"browser\",[{provide:ro,useValue:\"browser\"},{provide:no,useValue:function(){Go.makeCurrent(),ti.init()},multi:!0},{provide:$o,useFactory:function(){return function(t){Kt=t}(document),document},deps:[]}]),wi=[[],{provide:Rr,useValue:\"root\"},{provide:kn,useFactory:function(){return new kn},deps:[]},{provide:ei,useClass:pi,multi:!0,deps:[$o,vo,ro]},{provide:ei,useClass:vi,multi:!0,deps:[$o]},[],{provide:ai,useClass:ai,deps:[ni,oi,Xs]},{provide:vs,useExisting:ai},{provide:si,useExisting:oi},{provide:oi,useClass:oi,deps:[$o]},{provide:So,useClass:So,deps:[vo]},{provide:ni,useClass:ni,deps:[ei,vo]},[]];let Ci=(()=>{class t{constructor(t){if(t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(e){return{ngModule:t,providers:[{provide:Xs,useValue:e.appId},{provide:Yo,useExisting:Xs},Xo]}}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(t,12))},providers:wi,imports:[Qo,Bo]}),t})();\"undefined\"!=typeof window&&window;let Ei=(()=>{class t{constructor(){this.title=\"example\"}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=(e={type:t,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(t,e){1&t&&(ns(0,\"div\",0),function(t,e=\"\"){const n=_e(),r=ye(),s=t+Yt,o=r.firstCreatePass?lr(r,s,1,e,null):r.data[s],i=n[s]=function(t,e){return re(t)?t.createText(e):t.createTextNode(e)}(n[11],e);Bn(r,n,i,o),ve(o,!1)}(1,\" Hello, World\\n\"),function(){let t=me();be()?fe.lFrame.isParent=!1:(t=t.parent,ve(t,!1));const e=t;fe.lFrame.elementDepthCount--;const n=ye();n.firstCreatePass&&(Ue(n,t),ee(t)&&n.queries.elementEnd(t)),null!=e.classesWithoutHost&&function(t){return 0!=(16&t.flags)}(e)&&es(n,e,_e(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function(t){return 0!=(32&t.flags)}(e)&&es(n,e,_e(),e.stylesWithoutHost,!1)}())},styles:[\"\"]},z(()=>{const t={},n={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===ct.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||wt,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||vt.Emulated,id:\"c\",styles:e.styles||wt,_:null,setInput:null,schemas:e.schemas||null,tView:null},r=e.directives,s=e.features,o=e.pipes;return n.id+=At++,n.inputs=Nt(e.inputs,t),n.outputs=Nt(e.outputs),s&&s.forEach(t=>t(n)),n.directiveDefs=r?()=>(\"function\"==typeof r?r():r).map(Ot):null,n.pipeDefs=o?()=>(\"function\"==typeof o?o():o).map(Dt):null,n})),t;var e})(),xi=(()=>{class t{}return t.\\u0275mod=Ht({type:t,bootstrap:[Ei]}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[],imports:[[Ci]]}),t})();(function(){if(Re)throw new Error(\"Cannot enable prod mode after platform setup.\");Pe=!1})(),bi().bootstrapModule(xi).catch(t=>console.error(t))},zn8P:function(t,e){function n(t){return Promise.resolve().then(function(){var e=new Error(\"Cannot find module '\"+t+\"'\");throw e.code=\"MODULE_NOT_FOUND\",e})}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/dist/example/polyfills.bf99d438b005d57b2b31.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{1:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const i=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(i||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class a{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==C.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=a.current;for(;e.parent;)e=e.parent;return e}static get current(){return z.zone}static get currentTask(){return j}static __load_patch(t,r){if(C.hasOwnProperty(t)){if(i)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),C[t]=r(e,a,O),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){z={parent:z,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{z=z.parent}}runGuarded(e,t=null,n,o){z={parent:z,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{z=z.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,T),e.runCount++;const r=j;j=e,z={parent:z,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(T,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),z=z.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(b,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,b,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==b&&e._transitionTo(T,b),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,T,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}a.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new a(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");k(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,i){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=i,!o)throw new Error(\"callback is not defined\");this.callback=o;const a=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,a,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,b)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],_=!1;function k(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!_){for(_=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){O.onUnhandledError(e)}}}O.microtaskDrainDone(),_=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",b=\"scheduling\",T=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",C={},O={symbol:s,currentZoneFrame:()=>z,onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:k,showUncaughtError:()=>!a[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:N,patchMethod:()=>N,bindArguments:()=>[],patchThen:()=>N,patchMacroTask:()=>N,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>N,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>N,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>N,wrapWithCurrentZone:()=>N,filterProperties:()=>[],attachOriginToPatched:()=>N,_redefineProperty:()=>N,patchCallbacks:()=>N};let z={parent:null,zone:new a(null,null)},j=null,I=0;function N(){}o(\"Zone\",\"Zone\"),e.Zone=a}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,i=[],a=!0===e[s(\"DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION\")],c=s(\"Promise\"),l=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;i.length;){const t=i.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){h(e)}}};const u=s(\"unhandledPromiseRejectionHandler\");function h(e){n.onUnhandledError(e);try{const n=t[u];\"function\"==typeof n&&n.call(this,e)}catch(o){}}function p(e){return e&&e.then}function f(e){return e}function d(e){return O.reject(e)}const g=s(\"state\"),_=s(\"value\"),k=s(\"finally\"),m=s(\"parentPromiseValue\"),y=s(\"parentPromiseState\"),v=null,b=!0,T=!1;function E(e,t){return n=>{try{Z(e,t,n)}catch(o){Z(e,!1,o)}}}const w=s(\"currentTaskTrace\");function Z(e,o,s){const c=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(e[g]===v){let h=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(h=s&&s.then)}catch(u){return c(()=>{Z(e,!1,u)})(),e}if(o!==T&&s instanceof O&&s.hasOwnProperty(g)&&s.hasOwnProperty(_)&&s[g]!==v)D(s),Z(e,s[g],s[_]);else if(o!==T&&\"function\"==typeof h)try{h.call(s,c(E(e,o)),c(E(e,!1)))}catch(u){c(()=>{Z(e,!1,u)})()}else{e[g]=o;const c=e[_];if(e[_]=s,e[k]===k&&o===b&&(e[g]=e[y],e[_]=e[m]),o===T&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,w,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<c.length;)P(e,c[t++],c[t++],c[t++],c[t++]);if(0==c.length&&o==T){e[g]=0;let o=s;if(!a)try{throw new Error(\"Uncaught (in promise): \"+((l=s)&&l.toString===Object.prototype.toString?(l.constructor&&l.constructor.name||\"\")+\": \"+JSON.stringify(l):l?l.toString():Object.prototype.toString.call(l))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(u){o=u}o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,i.push(o),n.scheduleMicroTask()}}}var l;return e}const S=s(\"rejectionHandledHandler\");function D(e){if(0===e[g]){try{const n=t[S];n&&\"function\"==typeof n&&n.call(this,{rejection:e[_],promise:e})}catch(n){}e[g]=T;for(let t=0;t<i.length;t++)e===i[t].promise&&i.splice(t,1)}}function P(e,t,n,o,r){D(e);const s=e[g],i=s?\"function\"==typeof o?o:f:\"function\"==typeof r?r:d;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[_],r=!!n&&k===n[k];r&&(n[m]=o,n[y]=s);const a=t.run(i,void 0,r&&i!==d&&i!==f?[]:[o]);Z(n,!0,a)}catch(o){Z(n,!1,o)}},n)}const C=function(){};class O{static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return Z(new this(null),b,e)}static reject(e){return Z(new this(null),T,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let i of e)p(i)||(i=this.resolve(i)),i.then(r,s);return o}static all(e){return O.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof O?this:O).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,i=0;const a=[];for(let l of e){p(l)||(l=this.resolve(l));const e=i;try{l.then(o=>{a[e]=t?t.thenCallback(o):o,s--,0===s&&n(a)},r=>{t?(a[e]=t.errorCallback(r),s--,0===s&&n(a)):o(r)})}catch(c){o(c)}s++,i++}return s-=2,0===s&&n(a),r}constructor(e){const t=this;if(!(t instanceof O))throw new Error(\"Must be an instanceof Promise.\");t[g]=v,t[_]=[];try{e&&e(E(t,b),E(t,T))}catch(n){Z(t,!1,n)}}get[Symbol.toStringTag](){return\"Promise\"}get[Symbol.species](){return O}then(e,n){let o=this.constructor[Symbol.species];o&&\"function\"==typeof o||(o=this.constructor||O);const r=new o(C),s=t.current;return this[g]==v?this[_].push(s,r,e,n):P(this,s,r,e,n),r}catch(e){return this.then(null,e)}finally(e){let n=this.constructor[Symbol.species];n&&\"function\"==typeof n||(n=O);const o=new n(C);o[k]=k;const r=t.current;return this[g]==v?this[_].push(r,o,e,e):P(this,r,o,e,e),o}}O.resolve=O.resolve,O.reject=O.reject,O.race=O.race,O.all=O.all;const z=e[c]=e.Promise,j=t.__symbol__(\"ZoneAwarePromise\");let I=o(e,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return e[j]?e[j]:e[c]},I.set=function(t){t===O?e[j]=t:(e[c]=t,t.prototype[l]||R(t),n.setNativePromise(t))},r(e,\"Promise\",I)),e.Promise=O;const N=s(\"thenPatched\");function R(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[l]=r,e.prototype.then=function(e,t){return new O((e,t)=>{r.call(this,e,t)}).then(e,t)},e[N]=!0}if(n.patchThen=R,z){R(z);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(x=t,function(){let e=x.apply(this,arguments);if(e instanceof O)return e;let t=e.constructor;return t[N]||R(t),e}))}var x;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=i,O});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=\"addEventListener\",i=\"removeEventListener\",a=Zone.__symbol__(s),c=Zone.__symbol__(i),l=\"true\",u=\"false\",h=Zone.__symbol__(\"\");function p(e,t){return Zone.current.wrap(e,t)}function f(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const d=Zone.__symbol__,g=\"undefined\"!=typeof window,_=g?window:void 0,k=g&&_||\"object\"==typeof self&&self||global,m=[null];function y(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=p(e[n],t+\"_\"+n));return e}function v(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const b=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,T=!(\"nw\"in k)&&void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process),E=!T&&!b&&!(!g||!_.HTMLElement),w=void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process)&&!b&&!(!g||!_.HTMLElement),Z={},S=function(e){if(!(e=e||k.event))return;let t=Z[e.type];t||(t=Z[e.type]=d(\"ON_PROPERTY\"+e.type));const n=this||e.target||k,o=n[t];let r;if(E&&n===_&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function D(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const i=d(\"on\"+o+\"patched\");if(n.hasOwnProperty(i)&&n[i])return;delete s.writable,delete s.value;const a=s.get,c=s.set,l=o.substr(2);let u=Z[l];u||(u=Z[l]=d(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==k||(t=k),t&&(t[u]&&t.removeEventListener(l,S),c&&c.apply(t,m),\"function\"==typeof e?(t[u]=e,t.addEventListener(l,S,!1)):t[u]=null)},s.get=function(){let e=this;if(e||n!==k||(e=k),!e)return null;const t=e[u];if(t)return t;if(a){let t=a&&a.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[i]=!0}function P(e,t,n){if(t)for(let o=0;o<t.length;o++)D(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)D(e,t[o],n)}}const C=d(\"originalInstance\");function O(e){const n=k[e];if(!n)return;k[d(e)]=n,k[e]=function(){const t=y(arguments,e);switch(t.length){case 0:this[C]=new n;break;case 1:this[C]=new n(t[0]);break;case 2:this[C]=new n(t[0],t[1]);break;case 3:this[C]=new n(t[0],t[1],t[2]);break;case 4:this[C]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},I(k[e],n);const o=new n(function(){});let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?k[e].prototype[n]=function(){return this[C][n].apply(this[C],arguments)}:t(k[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[C][n]=p(t,e+\".\"+n),I(this[C][n],t)):this[C][n]=t},get:function(){return this[C][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(k[e][r]=n[r])}function z(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const i=d(o);let a=null;if(s&&!(a=s[i])&&(a=s[i]=s[o],v(s&&e(s,o)))){const e=r(a,i,o);s[o]=function(){return e(this,arguments)},I(s[o],a)}return a}function j(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=z(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?f(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function I(e,t){e[d(\"OriginalDelegate\")]=t}let N=!1,R=!1;function x(){try{const e=_.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function M(){if(N)return R;N=!0;try{const e=_.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(R=!0)}catch(e){}return R}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=d(\"OriginalDelegate\"),o=d(\"Promise\"),r=d(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const i=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":i.call(this)}});let L=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){L=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(he){L=!1}const A={useG:!0},H={},F={},G=new RegExp(\"^\"+h+\"(\\\\w+)(true|false)$\"),B=d(\"propagationStopped\");function q(e,t){const n=(t?t(e):e)+u,o=(t?t(e):e)+l,r=h+n,s=h+o;H[e]={},H[e].false=r,H[e].true=s}function W(e,t,o){const r=o&&o.add||s,a=o&&o.rm||i,c=o&&o.listeners||\"eventListeners\",p=o&&o.rmAll||\"removeAllListeners\",f=d(r),g=\".\"+r+\":\",_=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[a].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},k=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].false];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}},m=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].true];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}};function y(t,o){if(!t)return!1;let s=!0;o&&void 0!==o.useG&&(s=o.useG);const i=o&&o.vh;let _=!0;o&&void 0!==o.chkDup&&(_=o.chkDup);let y=!1;o&&void 0!==o.rt&&(y=o.rt);let v=t;for(;v&&!v.hasOwnProperty(r);)v=n(v);if(!v&&t[r]&&(v=t),!v)return!1;if(v[f])return!1;const b=o&&o.eventNameToString,E={},w=v[f]=v[r],Z=v[d(a)]=v[a],S=v[d(c)]=v[c],D=v[d(p)]=v[p];let P;function C(e,t){return!L&&\"object\"==typeof e&&e?!!e.capture:L&&t?\"boolean\"==typeof e?{capture:e,passive:!0}:e?\"object\"==typeof e&&!1!==e.passive?Object.assign(Object.assign({},e),{passive:!0}):e:{passive:!0}:e}o&&o.prepend&&(P=v[d(o.prepend)]=v[o.prepend]);const O=s?function(e){if(!E.isExisting)return w.call(E.target,E.eventName,E.capture?m:k,E.options)}:function(e){return w.call(E.target,E.eventName,e.invoke,E.options)},z=s?function(e){if(!e.isRemoved){const t=H[e.eventName];let n;t&&(n=t[e.capture?l:u]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return Z.call(e.target,e.eventName,e.capture?m:k,e.options)}:function(e){return Z.call(e.target,e.eventName,e.invoke,e.options)},j=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},N=Zone[d(\"BLACK_LISTED_EVENTS\")],R=e[d(\"PASSIVE_EVENTS\")],x=function(t,n,r,a,c=!1,h=!1){return function(){const p=this||e;let f=arguments[0];o&&o.transferEventName&&(f=o.transferEventName(f));let d=arguments[1];if(!d)return t.apply(this,arguments);if(T&&\"uncaughtException\"===f)return t.apply(this,arguments);let g=!1;if(\"function\"!=typeof d){if(!d.handleEvent)return t.apply(this,arguments);g=!0}if(i&&!i(t,d,p,arguments))return;const k=L&&!!R&&-1!==R.indexOf(f),m=C(arguments[2],k);if(N)for(let e=0;e<N.length;e++)if(f===N[e])return k?t.call(p,f,d,m):t.apply(this,arguments);const y=!!m&&(\"boolean\"==typeof m||m.capture),v=!(!m||\"object\"!=typeof m)&&m.once,w=Zone.current;let Z=H[f];Z||(q(f,b),Z=H[f]);const S=Z[y?l:u];let D,P=p[S],O=!1;if(P){if(O=!0,_)for(let e=0;e<P.length;e++)if(j(P[e],d))return}else P=p[S]=[];const z=p.constructor.name,I=F[z];I&&(D=I[f]),D||(D=z+n+(b?b(f):f)),E.options=m,v&&(E.options.once=!1),E.target=p,E.capture=y,E.eventName=f,E.isExisting=O;const x=s?A:void 0;x&&(x.taskData=E);const M=w.scheduleEventTask(D,d,x,r,a);return E.target=null,x&&(x.taskData=null),v&&(m.once=!0),(L||\"boolean\"!=typeof M.options)&&(M.options=m),M.target=p,M.capture=y,M.eventName=f,g&&(M.originalDelegate=d),h?P.unshift(M):P.push(M),c?p:void 0}};return v[r]=x(w,g,O,z,y),P&&(v.prependListener=x(P,\".prependListener:\",function(e){return P.call(E.target,E.eventName,e.invoke,E.options)},z,y,!0)),v[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2],s=!!r&&(\"boolean\"==typeof r||r.capture),a=arguments[1];if(!a)return Z.apply(this,arguments);if(i&&!i(Z,a,t,arguments))return;const c=H[n];let p;c&&(p=c[s?l:u]);const f=p&&t[p];if(f)for(let e=0;e<f.length;e++){const o=f[e];if(j(o,a))return f.splice(e,1),o.isRemoved=!0,0===f.length&&(o.allRemoved=!0,t[p]=null,\"string\"==typeof n)&&(t[h+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),y?t:void 0}return Z.apply(this,arguments)},v[c]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=U(t,b?b(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},v[p]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=H[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=G.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[p].call(this,o)}this[p].call(this,\"removeListener\")}if(y)return this},I(v[r],w),I(v[a],Z),D&&I(v[p],D),S&&I(v[c],S),!0}let v=[];for(let n=0;n<t.length;n++)v[n]=y(t[n],o);return v}function U(e,t){if(!t){const n=[];for(let o in e){const r=G.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}let n=H[t];n||(q(t),n=H[t]);const o=e[n.false],r=e[n.true];return o?r?o.concat(r):o.slice():r?r.slice():[]}function V(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[B]=!0,e&&e.apply(t,n)})}function $(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const i=t[s]=t[o];t[o]=function(s,a,c){return a&&a.prototype&&r.forEach(function(t){const r=`${n}.${o}::`+t,s=a.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(a.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}),i.call(t,s,a,c)},e.attachOriginToPatched(t[o],i)}const X=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplayconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],J=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],Y=[\"load\"],K=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],Q=[\"bounce\",\"finish\",\"start\"],ee=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],te=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],ne=[\"close\",\"error\",\"open\",\"message\"],oe=[\"error\",\"message\"],re=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],X,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function se(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function ie(e,t,n,o){e&&P(e,se(e,t,n),o)}function ae(e,t){if(T&&!w)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(E){const e=window,t=x?[{target:e,ignoreProperties:[\"error\"]}]:[];ie(e,re.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),ie(Document.prototype,re,r),void 0!==e.SVGElement&&ie(e.SVGElement.prototype,re,r),ie(Element.prototype,re,r),ie(HTMLElement.prototype,re,r),ie(HTMLMediaElement.prototype,J,r),ie(HTMLFrameSetElement.prototype,X.concat(K),r),ie(HTMLBodyElement.prototype,X.concat(K),r),ie(HTMLFrameElement.prototype,Y,r),ie(HTMLIFrameElement.prototype,Y,r);const o=e.HTMLMarqueeElement;o&&ie(o.prototype,Q,r);const s=e.Worker;s&&ie(s.prototype,oe,r)}const s=t.XMLHttpRequest;s&&ie(s.prototype,ee,r);const i=t.XMLHttpRequestEventTarget;i&&ie(i&&i.prototype,ee,r),\"undefined\"!=typeof IDBIndex&&(ie(IDBIndex.prototype,te,r),ie(IDBRequest.prototype,te,r),ie(IDBOpenDBRequest.prototype,te,r),ie(IDBDatabase.prototype,te,r),ie(IDBTransaction.prototype,te,r),ie(IDBCursor.prototype,te,r)),o&&ie(WebSocket.prototype,ne,r)}Zone.__load_patch(\"util\",(n,a,c)=>{c.patchOnProperties=P,c.patchMethod=z,c.bindArguments=y,c.patchMacroTask=j;const f=a.__symbol__(\"BLACK_LISTED_EVENTS\"),d=a.__symbol__(\"UNPATCHED_EVENTS\");n[d]&&(n[f]=n[d]),n[f]&&(a[f]=a[d]=n[f]),c.patchEventPrototype=V,c.patchEventTarget=W,c.isIEOrEdge=M,c.ObjectDefineProperty=t,c.ObjectGetOwnPropertyDescriptor=e,c.ObjectCreate=o,c.ArraySlice=r,c.patchClass=O,c.wrapWithCurrentZone=p,c.filterProperties=se,c.attachOriginToPatched=I,c._redefineProperty=Object.defineProperty,c.patchCallbacks=$,c.getGlobalObjects=()=>({globalSources:F,zoneSymbolEventNames:H,eventNames:re,isBrowser:E,isMix:w,isNode:T,TRUE_STR:l,FALSE_STR:u,ZONE_SYMBOL_PREFIX:h,ADD_EVENT_LISTENER_STR:s,REMOVE_EVENT_LISTENER_STR:i})});const ce=d(\"zoneTask\");function le(e,t,n,o){let r=null,s=null;n+=o;const i={};function a(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete i[n.handleId]:n.handleId&&(n.handleId[ce]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=z(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=f(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},a,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?i[n]=e:n&&(n[ce]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=z(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=i[r]:(s=r&&r[ce],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete i[r]:r&&(r[ce]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function ue(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:i}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=i+(e+s),a=i+(e+r);o[e]={},o[e][s]=t,o[e][r]=a}const a=e.EventTarget;return a&&a.prototype?(t.patchEventTarget(e,[a&&a.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{const t=\"set\",n=\"clear\";le(e,t,n,\"Timeout\"),le(e,t,n,\"Interval\"),le(e,t,n,\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{le(e,\"request\",\"cancel\",\"AnimationFrame\"),le(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),le(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)z(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{(function(e,t){t.patchEventPrototype(e,t)})(e,n),ue(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),O(\"MutationObserver\"),O(\"WebKitMutationObserver\"),O(\"IntersectionObserver\"),O(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ae(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const u=e.XMLHttpRequest;if(!u)return;const h=u.prototype;let p=h[a],g=h[c];if(!p){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;p=e[a],g=e[c]}}const _=\"readystatechange\",k=\"scheduled\";function m(e){const o=e.data,i=o.target;i[s]=!1,i[l]=!1;const u=i[r];p||(p=i[a],g=i[c]),u&&g.call(i,_,u);const h=i[r]=()=>{if(i.readyState===i.DONE)if(!o.aborted&&i[s]&&e.state===k){const n=i[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=i[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||e.state!==k||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==i[s]||(i[l]=!0)};return p.call(i,_,h),i[n]||(i[n]=e),w.apply(i,o.args),i[s]=!0,e}function y(){}function v(e){const t=e.data;return t.aborted=!0,Z.apply(t.target,t.args)}const b=z(h,\"open\",()=>function(e,t){return e[o]=0==t[2],e[i]=t[1],b.apply(e,t)}),T=d(\"fetchTaskAborting\"),E=d(\"fetchTaskScheduling\"),w=z(h,\"send\",()=>function(e,n){if(!0===t.current[E])return w.apply(e,n);if(e[o])return w.apply(e,n);{const t={target:e,url:e[i],isPeriodic:!1,args:n,aborted:!1},o=f(\"XMLHttpRequest.send\",y,t,m,v);e&&!0===e[l]&&!t.aborted&&o.state===k&&o.invoke()}}),Z=z(h,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[T])return Z.apply(e,o)})}(e);const n=d(\"xhrTask\"),o=d(\"xhrSync\"),r=d(\"xhrListener\"),s=d(\"xhrScheduled\"),i=d(\"xhrURL\"),l=d(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],i=t[s];if(i){if(!v(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,y(arguments,o+\".\"+s))};return I(t,e),t})(i)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){U(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[d(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[d(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[1,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/dist/example/runtime.359d5ee4682f20e936e9.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/dist/example/styles.51422a5c94b8290ff190.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:initial}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:initial;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:initial;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:initial;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:initial}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:initial}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:initial}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:initial}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:initial}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:initial}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:initial}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:initial}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:initial;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:initial}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:initial;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:initial;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:initial;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:initial;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:initial;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:initial;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:initial;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:initial;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:initial!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:initial!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:initial;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule  } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n    declarations: [ProductComponent, PaAttrDirective, PaModel,\n        PaStructureDirective, PaIteratorDirective,\n        PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n        ProductFormComponent, PaToggleView],\n    bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/attr.directive.ts",
    "content": "import {\n  Directive, ElementRef, Attribute, Input,\n  SimpleChange, Output, EventEmitter, HostListener, HostBinding\n}\n  from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Directive({\n  selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n  @Input(\"pa-attr\")\n  @HostBinding(\"class\")\n  bgClass: string;\n\n  @Input(\"pa-product\")\n  product: Product;\n\n  @Output(\"pa-category\")\n  click = new EventEmitter<string>();\n\n  @HostListener(\"click\")\n  triggerCustomEvent() {\n    if (this.product != null) {\n      this.click.emit(this.product.category);\n    }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n    SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\nselector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n@Input(\"paCellDarkColor\")\nmodelProperty: Boolean;\n\n@ContentChildren(PaCellColor, {descendants: true})\ncontentChildren: QueryList<PaCellColor>;\n\nngOnChanges(changes: { [property: string]: SimpleChange }) {\n   this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n}\n\nngAfterContentInit() {\n   this.contentChildren.changes.subscribe(() => {\n       setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n   });\n}\n\nprivate updateContentChildren(dark: Boolean) {\n   if (this.contentChildren != null && dark != undefined) {\n       this.contentChildren.forEach((child, index) => {\n           child.setColor(index % 2 ? dark : !dark);\n       });\n   }\n}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\",\n    styles: [\"/deep/ div { border: 2px black solid;  font-style:italic }\"]\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;\n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),\n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c =>\n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, ViewRef, IterableChangeRecord\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: IterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <IterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n\n            let arr: IterableChangeRecord<any>[] = [];\n            changes.forEachAddedItem(addition => arr.push(addition));\n            arr.forEach(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, arr.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n      public name?: string,\n      public category?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover {\n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\"\n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\"\n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\"\n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>\n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\",\n    styleUrls: [\"productForm.component.css\"],\n    encapsulation: ViewEncapsulation.Emulated\n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    @Output(\"paNewProduct\")\n    newProductEvent = new EventEmitter<Product>();\n\n    submitForm(form: any) {\n        this.newProductEvent.emit(this.newProduct);\n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    <tr *paFor=\"let item of getProducts(); let i = index; let odd = odd;\n            let even = even\" [class.bg-info]=\"odd\" [class.bg-warning]=\"even\">\n        <td style=\"vertical-align:middle\">{{i + 1}}</td>\n        <td style=\"vertical-align:middle\">{{item.name}}</td>\n        <td style=\"vertical-align:middle\">{{item.category}}</td>\n        <td style=\"vertical-align:middle\">{{item.price}}</td>\n        <td class=\"text-xs-center\">\n            <button class=\"btn btn-danger btn-sm\" (click)=\"deleteProduct(item.id)\">\n                Delete\n            </button>\n        </td>\n    </tr>\n</table>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n\n    @Input(\"model\")\n    dataModel: Model;\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    showTable: boolean = true;\n\n    @ViewChildren(PaCellColor)\n    viewChildren: QueryList<PaCellColor>;\n\n    ngAfterViewInit() {\n        this.viewChildren.changes.subscribe(() => {\n            this.updateViewChildren();\n        });\n        this.updateViewChildren();\n    }\n\n    private updateViewChildren() {\n        setTimeout(() => {\n            this.viewChildren.forEach((child, index) => {\n                child.setColor(index % 2 ? true : false);\n            })\n        }, 0);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n      let p = this.products.shift();\n      this.products.push(new Product(p.id, p.name, p.category, p.price));\n  }\n\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/structure.directive.ts",
    "content": "import {\n  Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n  selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n  constructor(private container: ViewContainerRef,\n      private template: TemplateRef<Object>) { }\n\n  @Input(\"paIf\")\n  expressionResult: boolean;\n\n  ngOnChanges(changes: { [property: string]: SimpleChange }) {\n      let change = changes[\"expressionResult\"];\n      if (!change.isFirstChange() && !change.currentValue) {\n          this.container.clear();\n      } else if (change.currentValue) {\n          this.container.createEmbeddedView(this.template);\n      }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n    <div class=\"col-4 p-2\">\n      <paProductForm (paNewProduct)=\"addProduct($event)\"></paProductForm>\n    </div>\n    <div class=\"col-8 p-2\">\n      <paToggleView>\n        <paProductTable [model]=\"model\"></paProductTable>\n      </paToggleView>\n    </div>\n  </div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\">\n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\"\n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n  HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n  selector: \"input[paModel]\",\n  exportAs: \"paModel\"\n})\nexport class PaModel {\n\n  direction: string = \"None\";\n\n  @Input(\"paModel\")\n  modelProperty: string;\n\n  @HostBinding(\"value\")\n  fieldValue: string = \"\";\n\n  ngOnChanges(changes: { [property: string]: SimpleChange }) {\n      let change = changes[\"modelProperty\"];\n      if (change.currentValue != this.fieldValue) {\n          this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n          this.direction = \"Model\";\n      }\n  }\n\n  @Output(\"paModelChange\")\n  update = new EventEmitter<string>();\n\n  @HostListener(\"input\", [\"$event.target.value\"])\n  updateValue(newValue: string) {\n      this.fieldValue = newValue;\n      this.update.emit(newValue);\n      this.direction = \"Element\";\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 17/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncss-loader\nMIT\nCopyright JS Foundation and other contributors\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2020 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.51422a5c94b8290ff190.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime.359d5ee4682f20e936e9.js\" defer></script><script src=\"polyfills.bf99d438b005d57b2b31.js\" defer></script><script src=\"main.f78bdaa2683ef468e3b3.js\" defer></script></body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/dist/example/main.f78bdaa2683ef468e3b3.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(t,e,n){t.exports=n(\"zUnb\")},zUnb:function(t,e,n){\"use strict\";function r(t){return\"function\"==typeof t}n.r(e);let s=!1;const o={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else s&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");s=t},get useDeprecatedSynchronousErrorHandling(){return s}};function i(t){setTimeout(()=>{throw t},0)}const l={closed:!0,next(t){},error(t){if(o.useDeprecatedSynchronousErrorHandling)throw t;i(t)},complete(){}},u=(()=>Array.isArray||(t=>t&&\"number\"==typeof t.length))();function c(t){return null!==t&&\"object\"==typeof t}const a=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();let h=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:s,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(r(o)){s&&(this._unsubscribe=void 0);try{o.call(this)}catch(l){e=l instanceof a?d(l.errors):[l]}}if(u(i)){let t=-1,n=i.length;for(;++t<n;){const n=i[t];if(c(n))try{n.unsubscribe()}catch(l){e=e||[],l instanceof a?e=e.concat(d(l.errors)):e.push(l)}}}if(e)throw new a(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case\"function\":n=new t(e);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error(\"unrecognized teardown \"+e+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof t){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const s=this._subscriptions;return null===s?this._subscriptions=[n]:s.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}return t.EMPTY=function(t){return t.closed=!0,t}(new t),t})();function d(t){return t.reduce((t,e)=>t.concat(e instanceof a?e.errors:e),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!t){this.destination=l;break}if(\"object\"==typeof t){t instanceof p?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,t,e,n)}}[f](){return this}static create(t,e,n){const r=new p(t,e,n);return r.syncErrorThrowable=!1,r}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class _ extends p{constructor(t,e,n,s){let o;super(),this._parentSubscriber=t;let i=this;r(e)?o=e:e&&(o=e.next,n=e.error,s=e.complete,e!==l&&(i=Object.create(e),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=o,this._error=n,this._complete=s}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;o.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:n}=o;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):i(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;i(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);o.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),o.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(t,e,n){if(!o.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{e.call(this._context,n)}catch(r){return o.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=r,t.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const y=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function m(t){return t}let g=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:r}=this,s=function(t,e,n){if(t){if(t instanceof p)return t;if(t[f])return t[f]()}return t||e||n?new p(t,e,n):new p(l)}(t,e,n);if(s.add(r?r.call(s,this.source):this.source||o.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),o.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(t){try{return this._subscribe(t)}catch(e){o.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof p?n:null}return!0}(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=v(e))((e,n)=>{let r;r=this.subscribe(e=>{try{t(e)}catch(s){n(s),r&&r.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[y](){return this}pipe(...t){return 0===t.length?this:(0===(e=t).length?m:1===e.length?e[0]:function(t){return e.reduce((t,e)=>e(t),t)})(this);var e}toPromise(t){return new(t=v(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function v(t){if(t||(t=o.Promise||Promise),!t)throw new Error(\"no Promise impl found\");return t}const b=(()=>{function t(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return t.prototype=Object.create(Error.prototype),t})();class w extends h{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}class C extends p{constructor(t){super(t),this.destination=t}}let E=(()=>{class t extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(t){const e=new x(this,this);return e.operator=t,e}next(t){if(this.closed)throw new b;if(!this.isStopped){const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].next(t)}}error(t){if(this.closed)throw new b;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].error(t);this.observers.length=0}complete(){if(this.closed)throw new b;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let r=0;r<e;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new b;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new b;return this.hasError?(t.error(this.thrownError),h.EMPTY):this.isStopped?(t.complete(),h.EMPTY):(this.observers.push(t),new w(this,t))}asObservable(){const t=new g;return t.source=this,t}}return t.create=(t,e)=>new x(t,e),t})();class x extends E{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):h.EMPTY}}class k{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new T(t,this.project,this.thisArg))}}class T extends p{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}const S=t=>e=>{for(let n=0,r=t.length;n<r&&!e.closed;n++)e.next(t[n]);e.complete()};function I(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const A=I();const O=t=>{if(t&&\"function\"==typeof t[y])return o=t,t=>{const e=o[y]();if(\"function\"!=typeof e.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return e.subscribe(t)};if((e=t)&&\"number\"==typeof e.length&&\"function\"!=typeof e)return S(t);var e,n,r,s,o;if((n=t)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return s=t,t=>(s.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,i),t);if(t&&\"function\"==typeof t[A])return r=t,t=>{const e=r[A]();for(;;){let r;try{r=e.next()}catch(n){return t.error(n),t}if(r.done){t.complete();break}if(t.next(r.value),t.closed)break}return\"function\"==typeof e.return&&t.add(()=>{e.return&&e.return()}),t};{const e=c(t)?\"an invalid object\":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`)}};class D extends p{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class j extends p{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function H(t,e,n=Number.POSITIVE_INFINITY){return\"function\"==typeof e?r=>r.pipe(H((n,r)=>{return(s=t(n,r),s instanceof g?s:new g(O(s))).pipe(function(t,e){return function(e){return e.lift(new k(t,void 0))}}((t,s)=>e(n,t,r,s)));var s},n)):(\"number\"==typeof e&&(n=e),e=>e.lift(new N(t,n)))}class N{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new P(t,this.project,this.concurrent))}}class P extends j{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e)}_innerSub(t){const e=new D(this),n=this.destination;n.add(e);const r=function(t,e){if(!e.closed)return t instanceof g?t.subscribe(e):O(t)(e)}(t,e);r!==e&&n.add(r)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t){this.destination.next(t)}notifyComplete(){const t=this.buffer;this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function R(){return function(t){return t.lift(new M(t))}}class M{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const r=new F(t,n),s=e.subscribe(r);return r.closed||(r.connection=n.connect()),s}}class F extends p{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:n}=this,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new h,t.add(this.source.subscribe(new B(this.getSubject(),this))),t.closed&&(this._connection=null,t=h.EMPTY)),t}refCount(){return R()(this)}}const L=(()=>{const t=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class B extends C{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}function Z(){return new E}function z(t){return{toString:t}.toString()}const $=\"__parameters__\";function U(t,e,n){return z(()=>{const r=function(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}(e);function s(...t){if(this instanceof s)return r.apply(this,t),this;const e=new s(...t);return n.annotation=e,n;function n(t,n,r){const s=t.hasOwnProperty($)?t[$]:Object.defineProperty(t,$,{value:[]})[$];for(;s.length<=r;)s.push(null);return(s[r]=s[r]||[]).push(e),t}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s})}const W=U(\"Inject\",t=>({token:t})),q=U(\"Optional\"),Q=U(\"Self\"),G=U(\"SkipSelf\");function J(t){if(\"string\"==typeof t)return t;if(Array.isArray(t))return\"[\"+t.map(J).join(\", \")+\"]\";if(null==t)return\"\"+t;if(t.overriddenName)return\"\"+t.overriddenName;if(t.name)return\"\"+t.name;const e=t.toString();if(null==e)return\"\"+e;const n=e.indexOf(\"\\n\");return-1===n?e:e.substring(0,n)}function K(t,e){return null==t||\"\"===t?null===e?\"\":e:null==e||\"\"===e?t:t+\" \"+e}function Y(t){for(let e in t)if(t[e]===Y)return e;throw Error(\"Could not find renamed property on target object.\")}function X(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function tt(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function et(t){return nt(t,st)||nt(t,it)}function nt(t,e){return t.hasOwnProperty(e)?t[e]:null}function rt(t){return t&&(t.hasOwnProperty(ot)||t.hasOwnProperty(lt))?t[ot]:null}const st=Y({\"\\u0275prov\":Y}),ot=Y({\"\\u0275inj\":Y}),it=Y({ngInjectableDef:Y}),lt=Y({ngInjectorDef:Y});class ut{constructor(t,e){this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\\u0275prov=X({token:this,providedIn:e.providedIn||\"root\",factory:e.factory}))}toString(){return\"InjectionToken \"+this._desc}}var ct=function(t){return t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\",t}({});const at=\"undefined\"!=typeof globalThis&&globalThis,ht=\"undefined\"!=typeof window&&window,dt=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,ft=\"undefined\"!=typeof global&&global,pt=at||ft||ht||dt,_t=Y({__forward_ref__:Y});function yt(t){return t.__forward_ref__=yt,t.toString=function(){return J(this())},t}function mt(t){return\"function\"==typeof(e=t)&&e.hasOwnProperty(_t)&&e.__forward_ref__===yt?t():t;var e}function gt(t,e){t.forEach(t=>Array.isArray(t)?gt(t,e):e(t))}var vt=function(t){return t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\",t}({});const bt={},wt=[],Ct=Y({\"\\u0275cmp\":Y}),Et=Y({\"\\u0275dir\":Y}),xt=Y({\"\\u0275pipe\":Y}),kt=Y({\"\\u0275mod\":Y}),Tt=Y({\"\\u0275loc\":Y}),St=Y({\"\\u0275fac\":Y}),It=Y({__NG_ELEMENT_ID__:Y});let At=0;function Ot(t){return Pt(t)||function(t){return t[Et]||null}(t)}function Dt(t){return function(t){return t[xt]||null}(t)}const jt={};function Ht(t){const e={type:t.type,bootstrap:t.bootstrap||wt,declarations:t.declarations||wt,imports:t.imports||wt,exports:t.exports||wt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&z(()=>{jt[t.id]=t.type}),e}function Nt(t,e){if(null==t)return bt;const n={};for(const r in t)if(t.hasOwnProperty(r)){let s=t[r],o=s;Array.isArray(s)&&(o=s[1],s=s[0]),n[s]=r,e&&(e[s]=o)}return n}function Pt(t){return t[Ct]||null}function Rt(t,e){const n=t[kt]||null;if(!n&&!0===e)throw new Error(`Type ${J(t)} does not have '\\u0275mod' property.`);return n}function Mt(t){return\"function\"==typeof t?t.name||t.toString():\"object\"==typeof t&&null!=t&&\"function\"==typeof t.type?t.type.name||t.type.toString():function(t){return\"string\"==typeof t?t:null==t?\"\":\"\"+t}(t)}var Ft=function(t){return t[t.Default=0]=\"Default\",t[t.Host=1]=\"Host\",t[t.Self=2]=\"Self\",t[t.SkipSelf=4]=\"SkipSelf\",t[t.Optional=8]=\"Optional\",t}({});let Vt;function Lt(t){const e=Vt;return Vt=t,e}function Bt(t,e,n){const r=et(t);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Ft.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${J(t)}]`)}const Zt={},zt=/\\n/gm,$t=\"__source\",Ut=Y({provide:String,useValue:Y});let Wt=void 0;function qt(t){const e=Wt;return Wt=t,e}function Qt(t,e=Ft.Default){if(void 0===Wt)throw new Error(\"inject() must be called from an injection context\");return null===Wt?Bt(t,void 0,e):Wt.get(t,e&Ft.Optional?null:void 0,e)}function Gt(t,e=Ft.Default){return(Vt||Qt)(mt(t),e)}function Jt(t){const e=[];for(let n=0;n<t.length;n++){const r=mt(t[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let t=void 0,n=Ft.Default;for(let e=0;e<r.length;e++){const s=r[e];s instanceof q||\"Optional\"===s.ngMetadataName||s===q?n|=Ft.Optional:s instanceof G||\"SkipSelf\"===s.ngMetadataName||s===G?n|=Ft.SkipSelf:s instanceof Q||\"Self\"===s.ngMetadataName||s===Q?n|=Ft.Self:t=s instanceof W||s===W?s.token:s}e.push(Gt(t,n))}else e.push(Gt(r))}return e}let Kt=void 0;const Yt=20;function Xt(t){return Array.isArray(t)&&\"object\"==typeof t[1]}function te(t){return Array.isArray(t)&&!0===t[1]}function ee(t){return 0!=(8&t.flags)}function ne(t){return null!==t.template}function re(t){return!!t.listen}const se={createRenderer:(t,e)=>void 0!==Kt?Kt:\"undefined\"!=typeof document?document:void 0};function oe(t){for(;Array.isArray(t);)t=t[0];return t}function ie(t,e){return oe(e[t.index])}function le(t,e){const n=e[t];return Xt(n)?n:n[0]}function ue(t){const e=function(t){return t.__ngContext__||null}(t);return e?Array.isArray(e)?e:e.lView:null}function ce(t){return 128==(128&t[2])}function ae(t,e){return null==e?null:t[e]}function he(t){t[18]=0}function de(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const fe={lFrame:Oe(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function pe(){return fe.bindingsEnabled}function _e(){return fe.lFrame.lView}function ye(){return fe.lFrame.tView}function me(){let t=ge();for(;null!==t&&64===t.type;)t=t.parent;return t}function ge(){return fe.lFrame.currentTNode}function ve(t,e){const n=fe.lFrame;n.currentTNode=t,n.isParent=e}function be(){return fe.lFrame.isParent}function we(){return fe.isInCheckNoChangesMode}function Ce(t){fe.isInCheckNoChangesMode=t}function Ee(t,e){const n=fe.lFrame;n.bindingIndex=n.bindingRootIndex=t,xe(e)}function xe(t){fe.lFrame.currentDirectiveIndex=t}function ke(t){fe.lFrame.currentQueryIndex=t}function Te(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function Se(t,e,n){if(n&Ft.SkipSelf){let r=e,s=t;for(;r=r.parent,!(null!==r||n&Ft.Host||(r=Te(s),null===r)||(s=s[15],10&r.type)););if(null===r)return!1;e=r,t=s}const r=fe.lFrame=Ae();return r.currentTNode=e,r.lView=t,!0}function Ie(t){const e=Ae(),n=t[1];fe.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function Ae(){const t=fe.lFrame,e=null===t?null:t.child;return null===e?Oe(t):e}function Oe(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function De(){const t=fe.lFrame;return fe.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const je=De;function He(){const t=De();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Ne(t){fe.lFrame.selectedIndex=t}let Pe=!0,Re=!1;function Me(){return Re=!0,Pe}function Fe(t,e){return t.hasOwnProperty(St)?t[St]:null}class Ve extends Error{constructor(t,e){super(function(t,e){return`${t?`NG0${t}: `:\"\"}${e}`}(t,e)),this.code=t}}function Le(t,e){const n=e?\" in \"+e:\"\";throw new Ve(\"201\",`No provider for ${Mt(t)} found${n}`)}class Be{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function Ze(){const t=$e(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===bt)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}}function ze(t,e,n,r){const s=$e(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:bt,current:null}),o=s.current||(s.current={}),i=s.previous,l=this.declaredInputs[n],u=i[l];o[l]=new Be(u&&u.currentValue,e,i===bt),t[r]=e}function $e(t){return t.__ngSimpleChanges__||null}function Ue(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n<r;n++){const e=t.data[n].type.prototype,{ngAfterContentInit:r,ngAfterContentChecked:s,ngAfterViewInit:o,ngAfterViewChecked:i,ngOnDestroy:l}=e;r&&(t.contentHooks||(t.contentHooks=[])).push(-n,r),s&&((t.contentHooks||(t.contentHooks=[])).push(n,s),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,s)),o&&(t.viewHooks||(t.viewHooks=[])).push(-n,o),i&&((t.viewHooks||(t.viewHooks=[])).push(n,i),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,i)),null!=l&&(t.destroyHooks||(t.destroyHooks=[])).push(n,l)}}function We(t,e,n){Ge(t,e,3,n)}function qe(t,e,n,r){(3&t[2])===n&&Ge(t,e,n,r)}function Qe(t,e){let n=t[2];(3&n)===e&&(n&=2047,n+=1,t[2]=n)}function Ge(t,e,n,r){const s=null!=r?r:-1;let o=0;for(let i=void 0!==r?65535&t[18]:0;i<e.length;i++)if(\"number\"==typeof e[i+1]){if(o=e[i],null!=r&&o>=r)break}else e[i]<0&&(t[18]+=65536),(o<s||-1==s)&&(Je(t,n,e,i),t[18]=(4294901760&t[18])+i+2),i++}function Je(t,e,n,r){const s=n[r]<0,o=n[r+1],i=t[s?-n[r]:n[r]];s?t[2]>>11<t[18]>>16&&(3&t[2])===e&&(t[2]+=2048,o.call(i)):o.call(i)}const Ke=-1;class Ye{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}function Xe(t,e,n){const r=re(t);let s=0;for(;s<n.length;){const o=n[s];if(\"number\"==typeof o){if(0!==o)break;s++;const i=n[s++],l=n[s++],u=n[s++];r?t.setAttribute(e,l,u,i):e.setAttributeNS(i,l,u)}else{const i=o,l=n[++s];64===i.charCodeAt(0)?r&&t.setProperty(e,i,l):r?t.setAttribute(e,i,l):e.setAttribute(i,l),s++}}return s}function tn(t,e){if(null===e||0===e.length);else if(null===t||0===t.length)t=e.slice();else{let n=-1;for(let r=0;r<e.length;r++){const s=e[r];\"number\"==typeof s?n=s:0===n||en(t,n,s,null,-1===n||2===n?e[++r]:null)}}return t}function en(t,e,n,r,s){let o=0,i=t.length;if(-1===e)i=-1;else for(;o<t.length;){const n=t[o++];if(\"number\"==typeof n){if(n===e){i=-1;break}if(n>e){i=o-1;break}}}for(;o<t.length;){const e=t[o];if(\"number\"==typeof e)break;if(e===n){if(null===r)return void(null!==s&&(t[o+1]=s));if(r===t[o+1])return void(t[o+2]=s)}o++,null!==r&&o++,null!==s&&o++}-1!==i&&(t.splice(i,0,e),o=i+1),t.splice(o++,0,n),null!==r&&t.splice(o++,0,r),null!==s&&t.splice(o++,0,s)}function nn(t){return 32767&t}function rn(t,e){let n=t>>16,r=e;for(;n>0;)r=r[15],n--;return r}let sn=!0;function on(t){const e=sn;return sn=t,e}let ln=0;function un(t,e){const n=an(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,cn(r.data,t),cn(e,null),cn(r.blueprint,null));const s=hn(t,e),o=t.injectorIndex;if(s!==Ke){const t=nn(s),n=rn(s,e),r=n[1].data;for(let s=0;s<8;s++)e[o+s]=n[t+s]|r[t+s]}return e[o+8]=s,o}function cn(t,e){t.push(0,0,0,0,0,0,0,0,e)}function an(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function hn(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,s=e;for(;null!==s;){const t=s[1],e=t.type;if(r=2===e?t.declTNode:1===e?s[6]:null,null===r)return Ke;if(n++,s=s[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return Ke}function dn(t,e,n){!function(t,e,n){let r;\"string\"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(It)&&(r=n[It]),null==r&&(r=n[It]=ln++);const s=255&r,o=1<<s,i=64&s,l=32&s,u=e.data;128&s?i?l?u[t+7]|=o:u[t+6]|=o:l?u[t+5]|=o:u[t+4]|=o:i?l?u[t+3]|=o:u[t+2]|=o:l?u[t+1]|=o:u[t]|=o}(t,e,n)}function fn(t,e,n){if(n&Ft.Optional)return t;Le(e,\"NodeInjector\")}function pn(t,e,n,r){if(n&Ft.Optional&&void 0===r&&(r=null),0==(n&(Ft.Self|Ft.Host))){const s=t[9],o=Lt(void 0);try{return s?s.get(e,r,n&Ft.Optional):Bt(e,r,n&Ft.Optional)}finally{Lt(o)}}return fn(r,e,n)}const _n={};function yn(){return new wn(me(),_e())}function mn(t,e,n,r,s,o){const i=e[1],l=i.data[t+8],u=function(t,e,n,r,s){const o=t.providerIndexes,i=e.data,l=1048575&o,u=t.directiveStart,c=o>>20,a=s?l+c:t.directiveEnd;for(let h=r?l:l+c;h<a;h++){const t=i[h];if(h<u&&n===t||h>=u&&t.type===n)return h}if(s){const t=i[u];if(t&&ne(t)&&t.type===n)return u}return null}(l,i,n,null==r?function(t){return 2==(2&t.flags)}(l)&&sn:r!=i&&0!=(3&l.type),s&Ft.Host&&o===l);return null!==u?gn(e,i,u,l):_n}function gn(t,e,n,r){let s=t[n];const o=e.data;if(s instanceof Ye){const i=s;i.resolving&&function(t,e){throw new Ve(\"200\",\"Circular dependency in DI detected for \"+t)}(Mt(o[n]));const l=on(i.canSeeViewProviders);i.resolving=!0;const u=i.injectImpl?Lt(i.injectImpl):null;Se(t,r,Ft.Default);try{s=t[n]=i.factory(void 0,o,t,r),e.firstCreatePass&&n>=r.directiveStart&&function(t,e,n){const{ngOnChanges:r,ngOnInit:s,ngDoCheck:o}=e.type.prototype;if(r){const r=((i=e).type.prototype.ngOnChanges&&(i.setInput=ze),Ze);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,r)}var i;s&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,s),o&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,o))}(n,o[n],e)}finally{null!==u&&Lt(u),on(l),i.resolving=!1,je()}}return s}function vn(t,e,n){const r=64&t,s=32&t;let o;return o=128&t?r?s?n[e+7]:n[e+6]:s?n[e+5]:n[e+4]:r?s?n[e+3]:n[e+2]:s?n[e+1]:n[e],!!(o&1<<t)}function bn(t,e){return!(t&Ft.Self||t&Ft.Host&&e)}class wn{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return function(t,e,n,r=Ft.Default,s){if(null!==t){const o=function(t){if(\"string\"==typeof t)return t.charCodeAt(0)||0;const e=t.hasOwnProperty(It)?t[It]:void 0;return\"number\"==typeof e?e>=0?255&e:yn:e}(n);if(\"function\"==typeof o){if(!Se(e,t,r))return r&Ft.Host?fn(s,n,r):pn(e,n,r,s);try{const t=o();if(null!=t||r&Ft.Optional)return t;Le(n)}finally{je()}}else if(\"number\"==typeof o){let s=null,i=an(t,e),l=Ke,u=r&Ft.Host?e[16][6]:null;for((-1===i||r&Ft.SkipSelf)&&(l=-1===i?hn(t,e):e[i+8],l!==Ke&&bn(r,!1)?(s=e[1],i=nn(l),e=rn(l,e)):i=-1);-1!==i;){const t=e[1];if(vn(o,i,t.data)){const t=mn(i,e,n,s,r,u);if(t!==_n)return t}l=e[i+8],l!==Ke&&bn(r,e[1].data[i+8]===u)&&vn(o,i,e)?(s=t,i=nn(l),e=rn(l,e)):i=-1}}}return pn(e,n,r,s)}(this._tNode,this._lView,t,void 0,e)}}function Cn(t){return t.ngDebugContext}function En(t){return t.ngOriginalError}function xn(t,...e){t.error(...e)}class kn{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),r=function(t){return t.ngErrorLogger||xn}(t);r(this._console,\"ERROR\",t),e&&r(this._console,\"ORIGINAL ERROR\",e),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(t){return t?Cn(t)?Cn(t):this._findContext(En(t)):null}_findOriginalError(t){let e=En(t);for(;e&&En(e);)e=En(e);return e}}function Tn(t,e){t.__ngContext__=e}const Sn=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(pt))();function In(t){return t instanceof Function?t():t}var An=function(t){return t[t.Important=1]=\"Important\",t[t.DashCase=2]=\"DashCase\",t}({});function On(t,e){return(void 0)(t,e)}function Dn(t){const e=t[3];return te(e)?e[3]:e}function jn(t){return Nn(t[13])}function Hn(t){return Nn(t[4])}function Nn(t){for(;null!==t&&!te(t);)t=t[4];return t}function Pn(t,e,n,r,s){if(null!=r){let o,i=!1;te(r)?o=r:Xt(r)&&(i=!0,r=r[0]);const l=oe(r);0===t&&null!==n?null==s?Vn(e,n,l):Fn(e,n,l,s||null,!0):1===t&&null!==n?Fn(e,n,l,s||null,!0):2===t?function(t,e,n){const r=function(t,e){return re(t)?t.parentNode(e):e.parentNode}(t,e);r&&function(t,e,n,r){re(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,l,i):3===t&&e.destroyNode(l),null!=o&&function(t,e,n,r,s){const o=n[7];o!==oe(n)&&Pn(e,t,r,o,s);for(let i=10;i<n.length;i++){const s=n[i];zn(s[1],s,t,e,r,o)}}(e,t,o,n,s)}}function Rn(t,e,n){return re(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Mn(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r<n.length;r+=2){const t=e[n[r]];if(!(t instanceof Ye)){const e=n[r+1];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)e[n+1].call(t[e[n]]);else e.call(t)}}}(t,e),function(t,e){const n=t.cleanup;if(null!==n){const t=e[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const s=n[r+1],o=\"function\"==typeof s?s(e):oe(e[s]),i=t[n[r+2]],l=n[r+3];\"boolean\"==typeof l?o.removeEventListener(n[r],i,l):l>=0?t[l]():t[-l].unsubscribe(),r+=2}else n[r].call(t[n[r+1]]);e[7]=null}}(t,e),1===e[1].type&&re(e[11])&&e[11].destroy();const n=e[17];if(null!==n&&te(e[3])){n!==e[3]&&function(t,e){const n=t[9],r=n.indexOf(e),s=e[3];1024&e[2]&&(e[2]&=-1025,de(s,-1)),n.splice(r,1)}(n,e);const r=e[19];null!==r&&r.detachView(t)}}}function Fn(t,e,n,r,s){re(t)?t.insertBefore(e,n,r,s):e.insertBefore(n,r,s)}function Vn(t,e,n){re(t)?t.appendChild(e,n):e.appendChild(n)}function Ln(t,e,n,r,s){null!==r?Fn(t,e,n,r,s):Vn(t,e,n)}function Bn(t,e,n,r){const s=function(t,e,n){return function(t,e,n){let r=e;for(;null!==r&&40&r.type;)r=(e=r).parent;if(null===r)return n[0];if(2&r.flags){const e=t.data[r.directiveStart].encapsulation;if(e===vt.None||e===vt.Emulated)return null}return ie(r,n)}(t,e.parent,n)}(t,r,e),o=e[11],i=function(t,e,n){return function(t,e,n){return 40&t.type?ie(t,n):null}(t,0,n)}(r.parent||e[6],0,e);if(null!=s)if(Array.isArray(n))for(let l=0;l<n.length;l++)Ln(o,s,n[l],i,!1);else Ln(o,s,n,i,!1)}function Zn(t,e,n,r,s,o,i){for(;null!=n;){const l=r[n.index],u=n.type;if(i&&0===e&&(l&&Tn(oe(l),r),n.flags|=4),64!=(64&n.flags))if(8&u)Zn(t,e,n.child,r,s,o,!1),Pn(e,t,s,l,o);else if(32&u){const i=On(n,r);let u;for(;u=i();)Pn(e,t,s,u,o);Pn(e,t,s,l,o)}else 16&u?$n(t,e,r,n,s,o):Pn(e,t,s,l,o);n=i?n.projectionNext:n.next}}function zn(t,e,n,r,s,o){Zn(n,r,t.firstChild,e,s,o,!1)}function $n(t,e,n,r,s,o){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)Pn(e,t,s,l[u],o);else Zn(t,e,l,i[3],s,o,!0)}function Un(t,e,n){re(t)?t.setAttribute(e,\"style\",n):e.style.cssText=n}function Wn(t,e,n){re(t)?\"\"===n?t.removeAttribute(e,\"class\"):t.setAttribute(e,\"class\",n):e.className=n}function qn(t,e,n){let r=t.length;for(;;){const s=t.indexOf(e,n);if(-1===s)return s;if(0===s||t.charCodeAt(s-1)<=32){const n=e.length;if(s+n===r||t.charCodeAt(s+n)<=32)return s}n=s+1}}const Qn=\"ng-template\";function Gn(t,e,n){let r=0;for(;r<t.length;){let s=t[r++];if(n&&\"class\"===s){if(s=t[r],-1!==qn(s.toLowerCase(),e,0))return!0}else if(1===s){for(;r<t.length&&\"string\"==typeof(s=t[r++]);)if(s.toLowerCase()===e)return!0;return!1}}return!1}function Jn(t){return 4===t.type&&t.value!==Qn}function Kn(t,e,n){return e===(4!==t.type||n?t.value:Qn)}function Yn(t,e,n){let r=4;const s=t.attrs||[],o=function(t){for(let n=0;n<t.length;n++)if(3===(e=t[n])||4===e||6===e)return n;var e;return t.length}(s);let i=!1;for(let l=0;l<e.length;l++){const u=e[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!Kn(t,u,n)||\"\"===u&&1===e.length){if(Xn(r))return!1;i=!0}}else{const c=8&r?u:e[++l];if(8&r&&null!==t.attrs){if(!Gn(t.attrs,c,n)){if(Xn(r))return!1;i=!0}continue}const a=tr(8&r?\"class\":u,s,Jn(t),n);if(-1===a){if(Xn(r))return!1;i=!0;continue}if(\"\"!==c){let t;t=a>o?\"\":s[a+1].toLowerCase();const e=8&r?t:null;if(e&&-1!==qn(e,c,0)||2&r&&c!==t){if(Xn(r))return!1;i=!0}}}}else{if(!i&&!Xn(r)&&!Xn(u))return!1;if(i&&Xn(u))continue;i=!1,r=u|1&r}}return Xn(r)||i}function Xn(t){return 0==(1&t)}function tr(t,e,n,r){if(null===e)return-1;let s=0;if(r||!n){let n=!1;for(;s<e.length;){const r=e[s];if(r===t)return s;if(3===r||6===r)n=!0;else{if(1===r||2===r){let t=e[++s];for(;\"string\"==typeof t;)t=e[++s];continue}if(4===r)break;if(0===r){s+=4;continue}}s+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){const r=t[n];if(\"number\"==typeof r)return-1;if(r===e)return n;n++}return-1}(e,t)}function er(t,e,n=!1){for(let r=0;r<e.length;r++)if(Yn(t,e[r],n))return!0;return!1}function nr(t,e){return t?\":not(\"+e.trim()+\")\":e}function rr(t){let e=t[0],n=1,r=2,s=\"\",o=!1;for(;n<t.length;){let i=t[n];if(\"string\"==typeof i)if(2&r){const e=t[++n];s+=\"[\"+i+(e.length>0?'=\"'+e+'\"':\"\")+\"]\"}else 8&r?s+=\".\"+i:4&r&&(s+=\" \"+i);else\"\"===s||Xn(i)||(e+=nr(o,s),s=\"\"),r=i,o=o||!Xn(r);n++}return\"\"!==s&&(e+=nr(o,s)),e}const sr={};function or(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const s=n[r],o=n[r+1];if(-1!==o){const n=t.data[o];ke(s),n.contentQueries(2,e[o],o)}}}function ir(t,e,n,r,s,o,i,l,u,c){const a=e.blueprint.slice();return a[0]=s,a[2]=140|r,he(a),a[3]=a[15]=t,a[8]=n,a[10]=i||t&&t[10],a[11]=l||t&&t[11],a[12]=u||t&&t[12]||null,a[9]=c||t&&t[9]||null,a[6]=o,a[16]=2==e.type?t[16]:a,a}function lr(t,e,n,r,s){let o=t.data[e];if(null===o)o=function(t,e,n,r,s){const o=ge(),i=be(),l=t.data[e]=function(t,e,n,r,s,o){return{type:n,index:r,insertBeforeIndex:null,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:s,attrs:o,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,i?o:o&&o.parent,n,e,r,s);return null===t.firstChild&&(t.firstChild=l),null!==o&&(i?null==o.child&&null!==l.parent&&(o.child=l):null===o.next&&(o.next=l)),l}(t,e,n,r,s),fe.lFrame.inI18n&&(o.flags|=64);else if(64&o.type){o.type=n,o.value=r,o.attrs=s;const t=function(){const t=fe.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}();o.injectorIndex=null===t?-1:t.injectorIndex}return ve(o,!0),o}function ur(t,e,n,r){if(0===n)return-1;const s=e.length;for(let o=0;o<n;o++)e.push(r),t.blueprint.push(r),t.data.push(null);return s}function cr(t,e,n){Ie(e);try{const r=t.viewQuery;null!==r&&Dr(1,r,n);const s=t.template;null!==s&&dr(t,e,s,1,n),t.firstCreatePass&&(t.firstCreatePass=!1),t.staticContentQueries&&or(t,e),t.staticViewQueries&&Dr(2,t.viewQuery,n);const o=t.components;null!==o&&function(t,e){for(let n=0;n<e.length;n++)Sr(t,e[n])}(e,o)}catch(r){throw t.firstCreatePass&&(t.incompleteFirstPass=!0),r}finally{e[2]&=-5,He()}}function ar(t,e,n,r){const s=e[2];if(256==(256&s))return;Ie(e);const o=we();try{he(e),fe.lFrame.bindingIndex=t.bindingStartIndex,null!==n&&dr(t,e,n,2,r);const i=3==(3&s);if(!o)if(i){const n=t.preOrderCheckHooks;null!==n&&We(e,n,null)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,null),Qe(e,0)}if(function(t){for(let e=jn(t);null!==e;e=Hn(e)){if(!e[2])continue;const t=e[9];for(let e=0;e<t.length;e++){const n=t[e],r=n[3];0==(1024&n[2])&&de(r,1),n[2]|=1024}}}(e),function(t){for(let e=jn(t);null!==e;e=Hn(e))for(let t=10;t<e.length;t++){const n=e[t],r=n[1];ce(n)&&ar(r,n,r.template,n[8])}}(e),null!==t.contentQueries&&or(t,e),!o)if(i){const n=t.contentCheckHooks;null!==n&&We(e,n)}else{const n=t.contentHooks;null!==n&&qe(e,n,1),Qe(e,1)}!function(t,e){const n=t.hostBindingOpCodes;if(null!==n)try{for(let t=0;t<n.length;t++){const r=n[t];if(r<0)Ne(~r);else{const s=r,o=n[++t],i=n[++t];Ee(o,s),i(2,e[s])}}}finally{Ne(-1)}}(t,e);const l=t.components;null!==l&&function(t,e){for(let n=0;n<e.length;n++)kr(t,e[n])}(e,l);const u=t.viewQuery;if(null!==u&&Dr(2,u,r),!o)if(i){const n=t.viewCheckHooks;null!==n&&We(e,n)}else{const n=t.viewHooks;null!==n&&qe(e,n,2),Qe(e,2)}!0===t.firstUpdatePass&&(t.firstUpdatePass=!1),o||(e[2]&=-73),1024&e[2]&&(e[2]&=-1025,de(e[3],-1))}finally{He()}}function hr(t,e,n,r){const s=e[10],o=!we(),i=4==(4&e[2]);try{o&&!i&&s.begin&&s.begin(),i&&cr(t,e,r),ar(t,e,n,r)}finally{o&&!i&&s.end&&s.end()}}function dr(t,e,n,r,s){const o=fe.lFrame.selectedIndex;try{Ne(-1),2&r&&e.length>Yt&&function(t,e,n,r){if(!r)if(3==(3&e[2])){const n=t.preOrderCheckHooks;null!==n&&We(e,n,20)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,20)}Ne(20)}(t,e,0,we()),n(r,s)}finally{Ne(o)}}function fr(t){const e=t.tView;return null===e||e.incompleteFirstPass?t.tView=pr(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts):e}function pr(t,e,n,r,s,o,i,l,u,c){const a=Yt+r,h=a+s,d=function(t,e){const n=[];for(let r=0;r<e;r++)n.push(r<t?null:sr);return n}(a,h),f=\"function\"==typeof c?c():c;return d[1]={type:t,blueprint:d,template:n,queries:null,viewQuery:l,declTNode:e,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof o?o():o,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:f,incompleteFirstPass:!1}}function _r(t,e,n){for(let r in t)if(t.hasOwnProperty(r)){const s=t[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(e,s):n[r]=[e,s]}return n}function yr(t,e,n,r,s,o){const i=o.hostBindings;if(i){let n=t.hostBindingOpCodes;null===n&&(n=t.hostBindingOpCodes=[]);const o=~e.index;(function(t){let e=t.length;for(;e>0;){const n=t[--e];if(\"number\"==typeof n&&n<0)return n}return 0})(n)!=o&&n.push(o),n.push(r,s,i)}}function mr(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function gr(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function vr(t,e,n){if(n){if(e.exportAs)for(let r=0;r<e.exportAs.length;r++)n[e.exportAs[r]]=t;ne(e)&&(n[\"\"]=t)}}function br(t,e,n){t.flags|=1,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function wr(t,e,n,r,s){t.data[r]=s;const o=s.factory||(s.factory=Fe(s.type)),i=new Ye(o,ne(s),null);t.blueprint[r]=i,n[r]=i,yr(t,e,0,r,ur(t,n,s.hostVars,sr),s)}function Cr(t,e,n){const r=ie(e,t),s=fr(n),o=t[10],i=Ir(t,ir(t,s,null,n.onPush?64:16,r,e,o,o.createRenderer(r,n),null,null));t[e.index]=i}function Er(t,e,n,r,s,o){const i=o[e];if(null!==i){const t=r.setInput;for(let e=0;e<i.length;){const s=i[e++],o=i[e++],l=i[e++];null!==t?r.setInput(n,l,s,o):n[o]=l}}}function xr(t,e){let n=null,r=0;for(;r<e.length;){const s=e[r];if(0!==s)if(5!==s){if(\"number\"==typeof s)break;t.hasOwnProperty(s)&&(null===n&&(n=[]),n.push(s,t[s],e[r+1])),r+=2}else r+=2;else r+=4}return n}function kr(t,e){const n=le(e,t);if(ce(n)){const t=n[1];80&n[2]?ar(t,n,t.template,n[8]):n[5]>0&&Tr(n)}}function Tr(t){for(let n=jn(t);null!==n;n=Hn(n))for(let t=10;t<n.length;t++){const e=n[t];if(1024&e[2]){const t=e[1];ar(t,e,t.template,e[8])}else e[5]>0&&Tr(e)}const e=t[1].components;if(null!==e)for(let n=0;n<e.length;n++){const r=le(e[n],t);ce(r)&&r[5]>0&&Tr(r)}}function Sr(t,e){const n=le(e,t),r=n[1];!function(t,e){for(let n=e.length;n<t.blueprint.length;n++)e.push(t.blueprint[n])}(r,n),cr(r,n,n[8])}function Ir(t,e){return t[13]?t[14][4]=e:t[13]=e,t[14]=e,e}function Ar(t,e,n){const r=e[10];r.begin&&r.begin();try{ar(t,e,t.template,n)}catch(s){throw function(t,e){const n=t[9],r=n?n.get(kn,null):null;r&&r.handleError(e)}(e,s),s}finally{r.end&&r.end()}}function Or(t){!function(t){for(let e=0;e<t.components.length;e++){const n=t.components[e],r=ue(n),s=r[1];hr(s,r,s.template,n)}}(t[8])}function Dr(t,e,n){ke(0),e(t,n)}const jr=(()=>Promise.resolve(null))();function Hr(t,e,n){let r=n?t.styles:null,s=n?t.classes:null,o=0;if(null!==e)for(let i=0;i<e.length;i++){const t=e[i];\"number\"==typeof t?o=t:1==o?s=K(s,t):2==o&&(r=K(r,t+\": \"+e[++i]+\";\"))}n?t.styles=r:t.stylesWithoutHost=r,n?t.classes=s:t.classesWithoutHost=s}const Nr=new ut(\"INJECTOR\",-1);class Pr{get(t,e=Zt){if(e===Zt){const e=new Error(`NullInjectorError: No provider for ${J(t)}!`);throw e.name=\"NullInjectorError\",e}return e}}const Rr=new ut(\"Set Injector scope.\"),Mr={},Fr={},Vr=[];let Lr=void 0;function Br(){return void 0===Lr&&(Lr=new Pr),Lr}function Zr(t,e=null,n=null,r){return new zr(t,n,e||Br(),r)}class zr{constructor(t,e,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];e&&gt(e,n=>this.processProvider(n,t,e)),gt([t],t=>this.processInjectorType(t,[],s)),this.records.set(Nr,Ur(void 0,this));const o=this.records.get(Rr);this.scope=null!=o?o.value:null,this.source=r||(\"object\"==typeof t?null:J(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Zt,n=Ft.Default){this.assertNotDestroyed();const r=qt(this);try{if(!(n&Ft.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=(\"function\"==typeof(s=t)||\"object\"==typeof s&&s instanceof ut)&&et(t);e=n&&this.injectableDefInScope(n)?Ur($r(t),Mr):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(n&Ft.Self?Br():this.parent).get(t,e=n&Ft.Optional&&e===Zt?null:e)}catch(o){if(\"NullInjectorError\"===o.name){if((o.ngTempTokenPath=o.ngTempTokenPath||[]).unshift(J(t)),r)throw o;return function(t,e,n,r){const s=t.ngTempTokenPath;throw e[$t]&&s.unshift(e[$t]),t.message=function(t,e,n,r=null){t=t&&\"\\n\"===t.charAt(0)&&\"\\u0275\"==t.charAt(1)?t.substr(2):t;let s=J(e);if(Array.isArray(e))s=e.map(J).join(\" -> \");else if(\"object\"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];t.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):J(r)))}s=`{${t.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${s}]: ${t.replace(zt,\"\\n  \")}`}(\"\\n\"+t.message,s,n,r),t.ngTokenPath=s,t.ngTempTokenPath=null,t}(o,t,\"R3InjectorError\",this.source)}throw o}finally{qt(r)}var s}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((e,n)=>t.push(J(n))),`R3Injector[${t.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(t,e,n){if(!(t=mt(t)))return!1;let r=rt(t);const s=null==r&&t.ngModule||void 0,o=void 0===s?t:s,i=-1!==n.indexOf(o);if(void 0!==s&&(r=rt(s)),null==r)return!1;if(null!=r.imports&&!i){let t;n.push(o);try{gt(r.imports,r=>{this.processInjectorType(r,e,n)&&(void 0===t&&(t=[]),t.push(r))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:r}=t[e];gt(r,t=>this.processProvider(t,n,r||Vr))}}this.injectorDefTypes.add(o),this.records.set(o,Ur(r.factory,Mr));const l=r.providers;if(null!=l&&!i){const e=t;gt(l,t=>this.processProvider(t,e,l))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,n){let r=qr(t=mt(t))?t:mt(t&&t.provide);const s=function(t,e,n){return Wr(t)?Ur(void 0,t.useValue):Ur(function(t,e,n){let r=void 0;if(qr(t)){const e=mt(t);return Fe(e)||$r(e)}if(Wr(t))r=()=>mt(t.useValue);else if((s=t)&&s.useFactory)r=()=>t.useFactory(...Jt(t.deps||[]));else if(function(t){return!(!t||!t.useExisting)}(t))r=()=>Gt(mt(t.useExisting));else{const e=mt(t&&(t.useClass||t.provide));if(!function(t){return!!t.deps}(t))return Fe(e)||$r(e);r=()=>new e(...Jt(t.deps))}var s;return r}(t),Mr)}(t);if(qr(t)||!0!==t.multi)this.records.get(r);else{let e=this.records.get(r);e||(e=Ur(void 0,Mr,!0),e.factory=()=>Jt(e.multi),this.records.set(r,e)),r=t,e.multi.push(t)}this.records.set(r,s)}hydrate(t,e){var n;return e.value===Mr&&(e.value=Fr,e.value=e.factory()),\"object\"==typeof e.value&&e.value&&null!==(n=e.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&(\"string\"==typeof t.providedIn?\"any\"===t.providedIn||t.providedIn===this.scope:this.injectorDefTypes.has(t.providedIn))}}function $r(t){const e=et(t),n=null!==e?e.factory:Fe(t);if(null!==n)return n;const r=rt(t);if(null!==r)return r.factory;if(t instanceof ut)throw new Error(`Token ${J(t)} is missing a \\u0275prov definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=function(t,e){const n=[];for(let r=0;r<t;r++)n.push(\"?\");return n}(e);throw new Error(`Can't resolve all parameters for ${J(t)}: (${n.join(\", \")}).`)}const n=function(t){const e=t&&(t[st]||t[it]);if(e){const n=function(t){if(t.hasOwnProperty(\"name\"))return t.name;const e=(\"\"+t).match(/^function\\s*([^\\s(]+)/);return null===e?\"\":e[1]}(t);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\nThis will become an error in a future version of Angular. Please add @Injectable() to the \"${n}\" class.`),e}return null}(t);return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error(\"unreachable\")}function Ur(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Wr(t){return null!==t&&\"object\"==typeof t&&Ut in t}function qr(t){return\"function\"==typeof t}const Qr=function(t,e,n){return function(t,e=null,n=null,r){const s=Zr(t,e,n,r);return s._resolveInjectorDefTypes(),s}({name:n},e,t,n)};let Gr=(()=>{class t{static create(t,e){return Array.isArray(t)?Qr(t,e,\"\"):Qr(t.providers,t.parent,t.name||\"\")}}return t.THROW_IF_NOT_FOUND=Zt,t.NULL=new Pr,t.\\u0275prov=X({token:t,providedIn:\"any\",factory:()=>Gt(Nr)}),t.__NG_ELEMENT_ID__=-1,t})();function Jr(t,e){Ue(ue(t)[1],me())}let Kr=null;function Yr(){if(!Kr){const t=pt.Symbol;if(t&&t.iterator)Kr=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Kr=n)}}}return Kr}function Xr(t){return!!ts(t)&&(Array.isArray(t)||!(t instanceof Map)&&Yr()in t)}function ts(t){return null!==t&&(\"function\"==typeof t||\"object\"==typeof t)}function es(t,e,n,r,s){const o=s?\"class\":\"style\";!function(t,e,n,r,s){for(let o=0;o<n.length;){const i=n[o++],l=n[o++],u=e[i],c=t.data[i];null!==c.setInput?c.setInput(u,s,r,l):u[l]=s}}(t,n,e.inputs[o],o,r)}function ns(t,e,n,r){const s=_e(),o=ye(),i=Yt+t,l=s[11],u=s[i]=Rn(l,e,fe.lFrame.currentNamespace),c=o.firstCreatePass?function(t,e,n,r,s,o,i){const l=e.consts,u=lr(e,t,2,s,ae(l,o));return function(t,e,n,r){let s=!1;if(pe()){const o=function(t,e,n){const r=t.directiveRegistry;let s=null;if(r)for(let o=0;o<r.length;o++){const i=r[o];er(n,i.selectors,!1)&&(s||(s=[]),dn(un(n,e),t,i.type),ne(i)?(gr(t,n),s.unshift(i)):s.push(i))}return s}(t,e,n),i=null===r?null:{\"\":-1};if(null!==o){s=!0,br(n,t.data.length,o.length);for(let t=0;t<o.length;t++){const e=o[t];e.providersResolver&&e.providersResolver(e)}let r=!1,l=!1,u=ur(t,e,o.length,null);for(let s=0;s<o.length;s++){const c=o[s];n.mergedAttrs=tn(n.mergedAttrs,c.hostAttrs),wr(t,n,e,u,c),vr(u,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128);const a=c.type.prototype;!r&&(a.ngOnChanges||a.ngOnInit||a.ngDoCheck)&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n.index),r=!0),l||!a.ngOnChanges&&!a.ngDoCheck||((t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n.index),l=!0),u++}!function(t,e){const n=e.directiveEnd,r=t.data,s=e.attrs,o=[];let i=null,l=null;for(let u=e.directiveStart;u<n;u++){const t=r[u],n=t.inputs,c=null===s||Jn(e)?null:xr(n,s);o.push(c),i=_r(n,u,i),l=_r(t.outputs,u,l)}null!==i&&(i.hasOwnProperty(\"class\")&&(e.flags|=16),i.hasOwnProperty(\"style\")&&(e.flags|=32)),e.initialInputs=o,e.inputs=i,e.outputs=l}(t,n)}i&&function(t,e,n){if(e){const r=t.localNames=[];for(let t=0;t<e.length;t+=2){const s=n[e[t+1]];if(null==s)throw new Ve(\"301\",`Export of name '${e[t+1]}' not found!`);r.push(e[t],s)}}}(n,r,i)}n.mergedAttrs=tn(n.mergedAttrs,n.attrs)}(e,n,u,ae(l,i)),null!==u.attrs&&Hr(u,u.attrs,!1),null!==u.mergedAttrs&&Hr(u,u.mergedAttrs,!0),null!==e.queries&&e.queries.elementStart(e,u),u}(i,o,s,0,e,n,r):o.data[i];ve(c,!0);const a=c.mergedAttrs;null!==a&&Xe(l,u,a);const h=c.classes;null!==h&&Wn(l,u,h);const d=c.styles;null!==d&&Un(l,u,d),64!=(64&c.flags)&&Bn(o,s,u,c),0===fe.lFrame.elementDepthCount&&Tn(u,s),fe.lFrame.elementDepthCount++,function(t){return 1==(1&t.flags)}(c)&&(function(t,e,n){pe()&&(function(t,e,n,r){const s=n.directiveStart,o=n.directiveEnd;t.firstCreatePass||un(n,e),Tn(r,e);const i=n.initialInputs;for(let l=s;l<o;l++){const r=t.data[l],o=ne(r);o&&Cr(e,n,r);const u=gn(e,t,l,n);Tn(u,e),null!==i&&Er(0,l-s,u,r,0,i),o&&(le(n.index,e)[8]=u)}}(t,e,n,ie(n,e)),128==(128&n.flags)&&function(t,e,n){const r=n.directiveStart,s=n.directiveEnd,o=n.index,i=fe.lFrame.currentDirectiveIndex;try{Ne(o);for(let n=r;n<s;n++){const r=t.data[n],s=e[n];xe(n),null===r.hostBindings&&0===r.hostVars&&null===r.hostAttrs||mr(r,s)}}finally{Ne(-1),xe(i)}}(t,e,n))}(o,s,c),function(t,e,n){if(ee(e)){const r=e.directiveEnd;for(let s=e.directiveStart;s<r;s++){const e=t.data[s];e.contentQueries&&e.contentQueries(1,n[s],s)}}}(o,c,s)),null!==r&&function(t,e,n=ie){const r=e.localNames;if(null!==r){let s=e.index+1;for(let o=0;o<r.length;o+=2){const i=r[o+1],l=-1===i?n(e,t):t[i];t[s++]=l}}}(s,c)}function rs(t){return!!t&&\"function\"==typeof t.then}const ss=void 0;var os=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],ss],[[\"AM\",\"PM\"],ss,ss],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],ss,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],ss,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",ss,\"{1} 'at' {0}\",ss],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},\"ltr\",function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===e&&0===n?1:5}];let is={};function ls(t){return t in is||(is[t]=pt.ng&&pt.ng.common&&pt.ng.common.locales&&pt.ng.common.locales[t]),is[t]}var us=function(t){return t[t.LocaleId=0]=\"LocaleId\",t[t.DayPeriodsFormat=1]=\"DayPeriodsFormat\",t[t.DayPeriodsStandalone=2]=\"DayPeriodsStandalone\",t[t.DaysFormat=3]=\"DaysFormat\",t[t.DaysStandalone=4]=\"DaysStandalone\",t[t.MonthsFormat=5]=\"MonthsFormat\",t[t.MonthsStandalone=6]=\"MonthsStandalone\",t[t.Eras=7]=\"Eras\",t[t.FirstDayOfWeek=8]=\"FirstDayOfWeek\",t[t.WeekendRange=9]=\"WeekendRange\",t[t.DateFormat=10]=\"DateFormat\",t[t.TimeFormat=11]=\"TimeFormat\",t[t.DateTimeFormat=12]=\"DateTimeFormat\",t[t.NumberSymbols=13]=\"NumberSymbols\",t[t.NumberFormats=14]=\"NumberFormats\",t[t.CurrencyCode=15]=\"CurrencyCode\",t[t.CurrencySymbol=16]=\"CurrencySymbol\",t[t.CurrencyName=17]=\"CurrencyName\",t[t.Currencies=18]=\"Currencies\",t[t.Directionality=19]=\"Directionality\",t[t.PluralCase=20]=\"PluralCase\",t[t.ExtraData=21]=\"ExtraData\",t}({});const cs=\"en-US\";let as=cs;function hs(t){var e,n;n=\"Expected localeId to be defined\",null==(e=t)&&function(t,e,n,r){throw new Error(\"ASSERTION ERROR: \"+t+` [Expected=> null != ${e} <=Actual]`)}(n,e),\"string\"==typeof t&&(as=t.toLowerCase().replace(/_/g,\"-\"))}class ds{}class fs{resolveComponentFactory(t){throw function(t){const e=Error(`No component factory found for ${J(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(t)}}let ps=(()=>{class t{}return t.NULL=new fs,t})();function _s(...t){}function ys(t,e){return new gs(ie(t,e))}const ms=function(){return ys(me(),_e())};let gs=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=ms,t})();class vs{}let bs=(()=>{class t{}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>null}),t})();class ws{constructor(t){this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}}const Cs=new ws(\"11.0.2\");class Es{constructor(){}supports(t){return Xr(t)}create(t){return new ks(t)}}const xs=(t,e)=>e;class ks{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||xs}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,r=0,s=null;for(;e||n;){const o=!n||e&&e.currentIndex<As(n,r,s)?e:n,i=As(o,r,s),l=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(e=e._next,null==o.previousIndex)r++;else{s||(s=[]);const t=i-r,e=l-r;if(t!=e){for(let n=0;n<t;n++){const r=n<s.length?s[n]:s[n]=0,o=r+n;e<=o&&o<t&&(s[n]=r+1)}s[o.previousIndex]=e-t}}i!==l&&t(o,i,l)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!Xr(t))throw new Error(`Error trying to diff '${J(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,r,s=this._itHead,o=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],r=this._trackByFn(e,n),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,n,r,e)),Object.is(s.item,n)||this._addIdentityChange(s,n)):(s=this._mismatch(s,n,r,e),o=!0),s=s._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[Yr()]();let r;for(;!(r=n.next()).done;)e(r.value)}}(t,t=>{r=this._trackByFn(e,t),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,t,r,e)),Object.is(s.item,t)||this._addIdentityChange(s,t)):(s=this._mismatch(s,t,r,e),o=!0),s=s._next,e++}),this.length=e;return this._truncate(s),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):t=this._addAfter(new Ts(e,n),s,r),t}_verifyReinsertion(t,e,n,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Is),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Is),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class Ts{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Ss{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class Is{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new Ss,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function As(t,e,n){const r=t.previousIndex;if(null===r)return r;let s=0;return n&&r<n.length&&(s=n[r]),r+e+s}class Os{constructor(){}supports(t){return t instanceof Map||ts(t)}create(){return new Ds}}class Ds{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||ts(t)))throw new Error(`Error trying to diff '${J(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const n=this._records.get(t);this._maybeAddToChanges(n,e);const r=n._prev,s=n._next;return r&&(r._next=s),s&&(s._prev=r),n._next=null,n._prev=null,n}const n=new js(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(n=>e(t[n],n))}}class js{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let Hs=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Es])}),t})(),Ns=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Os])}),t})();function Ps(t,e,n,r,s=!1){for(;null!==n;){const o=e[n.index];if(null!==o&&r.push(oe(o)),te(o))for(let t=10;t<o.length;t++){const e=o[t],n=e[1].firstChild;null!==n&&Ps(e[1],e,n,r)}const i=n.type;if(8&i)Ps(t,e,n.child,r);else if(32&i){const t=On(n,e);let s;for(;s=t();)r.push(s)}else if(16&i){const t=e[16],s=t[6].projection[n.projection];if(Array.isArray(s))r.push(...s);else{const e=Dn(t);Ps(e[1],e,s,r,!0)}}n=s?n.projectionNext:n.next}return r}class Rs extends class{constructor(t,e){this._lView=t,this._cdRefInjectingView=e,this._appRef=null,this._viewContainerRef=null}get rootNodes(){const t=this._lView,e=t[1];return Ps(e,t,e.firstChild,[])}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}!function(t,e){if(!(256&e[2])){const n=e[11];re(n)&&n.destroyNode&&zn(t,e,n,3,null,null),function(t){let e=t[13];if(!e)return Mn(t[1],t);for(;e;){let n=null;if(Xt(e))n=e[13];else{const t=e[10];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)Xt(e)&&Mn(e[1],e),e=e[3];null===e&&(e=t),Xt(e)&&Mn(e[1],e),n=e&&e[4]}e=n}}(e)}}(this._lView[1],this._lView)}onDestroy(t){!function(t,e,n,r){const s=(o=e)[7]||(o[7]=[]);var o;s.push(null),t.firstCreatePass&&function(t){return t.cleanup||(t.cleanup=[])}(t).push(r,s.length-1)}(this._lView[1],this._lView,0,t)}markForCheck(){!function(t){for(;t;){t[2]|=64;const e=Dn(t);if(0!=(512&t[2])&&!e)return t;t=e}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){Ar(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(t,e,n){Ce(!0);try{Ar(t,e,n)}finally{Ce(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=t}detachFromAppRef(){var t;this._appRef=null,zn(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=t}}{constructor(t){super(t),this._view=t}detectChanges(){Or(this._view)}checkNoChanges(){!function(t){Ce(!0);try{Or(t)}finally{Ce(!1)}}(this._view)}get context(){return null}}const Ms=[new Os],Fs=new Hs([new Es]),Vs=new Ns(Ms);class Ls{}const Bs={};class Zs extends ps{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=Pt(t);return new Us(e,this.ngModule)}}function zs(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const $s=new ut(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Sn});class Us extends ds{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors.map(rr).join(\",\"),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return zs(this.componentDef.inputs)}get outputs(){return zs(this.componentDef.outputs)}create(t,e,n,r){const s=(r=r||this.ngModule)?function(t,e){return{get:(n,r,s)=>{const o=t.get(n,Bs,s);return o!==Bs||r===Bs?o:e.get(n,r,s)}}}(t,r.injector):t,o=s.get(vs,se),i=s.get(bs,null),l=o.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(t,e,n){if(re(t))return t.selectRootElement(e,n===vt.ShadowDom);let r=\"string\"==typeof e?t.querySelector(e):e;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Rn(o.createRenderer(null,this.componentDef),u,function(t){const e=t.toLowerCase();return\"svg\"===e?\"http://www.w3.org/2000/svg\":\"math\"===e?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h={components:[],scheduler:Sn,clean:jr,playerHandler:null,flags:0},d=pr(0,null,null,1,0,null,null,null,null,null),f=ir(null,d,h,a,null,null,o,l,i,s);let p,_;Ie(f);try{const t=function(t,e,n,r,s,o){const i=n[1];n[20]=t;const l=lr(i,20,2,\"#host\",null),u=l.mergedAttrs=e.hostAttrs;null!==u&&(Hr(l,u,!0),null!==t&&(Xe(s,t,u),null!==l.classes&&Wn(s,t,l.classes),null!==l.styles&&Un(s,t,l.styles)));const c=r.createRenderer(t,e),a=ir(n,fr(e),null,e.onPush?64:16,n[20],l,r,c,null,null);return i.firstCreatePass&&(dn(un(l,n),i,e.type),gr(i,l),br(l,n.length,1)),Ir(n,a),n[20]=a}(c,this.componentDef,f,o,l);if(c)if(n)Xe(l,c,[\"ng-version\",Cs.full]);else{const{attrs:t,classes:e}=function(t){const e=[],n=[];let r=1,s=2;for(;r<t.length;){let o=t[r];if(\"string\"==typeof o)2===s?\"\"!==o&&e.push(o,t[++r]):8===s&&n.push(o);else{if(!Xn(s))break;s=o}r++}return{attrs:e,classes:n}}(this.componentDef.selectors[0]);t&&Xe(l,c,t),e&&e.length>0&&Wn(l,c,e.join(\" \"))}if(_=d.data[20],void 0!==e){const t=_.projection=[];for(let n=0;n<this.ngContentSelectors.length;n++){const r=e[n];t.push(null!=r?Array.from(r):null)}}p=function(t,e,n,r,s){const o=n[1],i=function(t,e,n){const r=me();t.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),wr(t,r,e,ur(t,e,1,null),n));const s=gn(e,t,r.directiveStart,r);Tn(s,e);const o=ie(r,e);return o&&Tn(o,e),s}(o,n,e);if(r.components.push(i),t[8]=i,s&&s.forEach(t=>t(i,e)),e.contentQueries){const t=me();e.contentQueries(1,i,t.directiveStart)}const l=me();return!o.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(Ne(l.index),yr(n[1],l,0,l.directiveStart,l.directiveEnd,e),mr(e,i)),i}(t,this.componentDef,f,h,[Jr]),cr(d,f,null)}finally{He()}return new Ws(this.componentType,p,ys(_,f),f,_)}}class Ws extends class{}{constructor(t,e,n,r,s){super(),this.location=n,this._rootLView=r,this._tNode=s,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new Rs(r),this.componentType=t}get injector(){return new wn(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const qs=new Map;class Qs extends Ls{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Zs(this);const n=Rt(t),r=t[Tt]||null;r&&hs(r),this._bootstrapComponents=In(n.bootstrap),this._r3Injector=Zr(t,e,[{provide:Ls,useValue:this},{provide:ps,useValue:this.componentFactoryResolver}],J(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=Gr.THROW_IF_NOT_FOUND,n=Ft.Default){return t===Gr||t===Ls||t===Nr?this:this._r3Injector.get(t,e,n)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Gs extends class{}{constructor(t){super(),this.moduleType=t,null!==Rt(t)&&function(t){const e=new Set;!function t(n){const r=Rt(n,!0),s=r.id;null!==s&&(function(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${J(e)} vs ${J(e.name)}`)}(s,qs.get(s),n),qs.set(s,n));const o=In(r.imports);for(const i of o)e.has(i)||(e.add(i),t(i))}(t)}(t)}create(t){return new Qs(this.moduleType,t)}}const Js=class extends E{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let r,s=t=>null,o=()=>null;t&&\"object\"==typeof t?(r=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(s=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(o=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(r=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(s=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(o=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,s,o);return t instanceof h&&t.add(i),i}},Ks=new ut(\"Application Initializer\");let Ys=(()=>{class t{constructor(t){this.appInits=t,this.resolve=_s,this.reject=_s,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();rs(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Ks,8))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const Xs=new ut(\"AppId\"),to={provide:Xs,useFactory:function(){return`${eo()}${eo()}${eo()}`},deps:[]};function eo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const no=new ut(\"Platform Initializer\"),ro=new ut(\"Platform ID\"),so=new ut(\"appBootstrapListener\");let oo=(()=>{class t{log(t){console.log(t)}warn(t){console.warn(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const io=new ut(\"LocaleId\"),lo=new ut(\"DefaultCurrencyCode\");class uo{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const co=function(t){return new Gs(t)},ao=co,ho=function(t){return Promise.resolve(co(t))},fo=function(t){const e=co(t),n=In(Rt(t).declarations).reduce((t,e)=>{const n=Pt(e);return n&&t.push(new Us(n)),t},[]);return new uo(e,n)},po=fo,_o=function(t){return Promise.resolve(fo(t))};let yo=(()=>{class t{constructor(){this.compileModuleSync=ao,this.compileModuleAsync=ho,this.compileModuleAndAllComponentsSync=po,this.compileModuleAndAllComponentsAsync=_o}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const mo=(()=>Promise.resolve(0))();function go(t){\"undefined\"==typeof Zone?mo.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",t)}class vo{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Js(!1),this.onMicrotaskEmpty=new Js(!1),this.onStable=new Js(!1),this.onError=new Js(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched();const n=this;n._nesting=0,n._outer=n._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(n._inner=n._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(n._inner=n._inner.fork(Zone.longStackTraceZoneSpec)),n.shouldCoalesceEventChangeDetection=e,n.lastRequestAnimationFrameId=-1,n.nativeRequestAnimationFrame=function(){let t=pt.requestAnimationFrame,e=pt.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__(\"OriginalDelegate\")];n&&(t=n);const r=e[Zone.__symbol__(\"OriginalDelegate\")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function(t){const e=!!t.shouldCoalesceEventChangeDetection&&t.nativeRequestAnimationFrame&&(()=>{!function(t){-1===t.lastRequestAnimationFrameId&&(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(pt,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask(\"fakeTopEventTask\",()=>{t.lastRequestAnimationFrameId=-1,Eo(t),Co(t)},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Eo(t))}(t)});t._inner=t._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:e},onInvokeTask:(n,r,s,o,i,l)=>{try{return xo(t),n.invokeTask(s,o,i,l)}finally{e&&\"eventTask\"===o.type&&e(),ko(t)}},onInvoke:(e,n,r,s,o,i,l)=>{try{return xo(t),e.invoke(r,s,o,i,l)}finally{ko(t)}},onHasTask:(e,n,r,s)=>{e.hasTask(r,s),n===r&&(\"microTask\"==s.change?(t._hasPendingMicrotasks=s.microTask,Eo(t),Co(t)):\"macroTask\"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,n,r,s)=>(e.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(n)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!vo.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(vo.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,r){const s=this._inner,o=s.scheduleEventTask(\"NgZoneEvent: \"+r,t,wo,bo,bo);try{return s.runTask(o,e,n)}finally{s.cancelTask(o)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function bo(){}const wo={};function Co(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Eo(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||t.shouldCoalesceEventChangeDetection&&-1!==t.lastRequestAnimationFrameId)}function xo(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ko(t){t._nesting--,Co(t)}class To{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Js,this.onMicrotaskEmpty=new Js,this.onStable=new Js,this.onError=new Js}run(t,e,n){return t.apply(e,n)}runGuarded(t,e,n){return t.apply(e,n)}runOutsideAngular(t){return t()}runTask(t,e,n,r){return t.apply(e,n)}}let So=(()=>{class t{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{vo.assertNotInAngularZone(),go(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())go(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let r=-1;e&&e>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==r),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Io=(()=>{class t{constructor(){this._applications=new Map,Do.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return Do.findTestabilityInTree(this,t,e)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class Ao{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}let Oo,Do=new Ao;const jo=new ut(\"AllowMultipleToken\");function Ho(t,e,n=[]){const r=\"Platform: \"+e,s=new ut(r);return(e=[])=>{let o=No();if(!o||o.injector.get(jo,!1))if(t)t(n.concat(e).concat({provide:s,useValue:!0}));else{const t=n.concat(e).concat({provide:s,useValue:!0},{provide:Rr,useValue:\"platform\"});!function(t){if(Oo&&!Oo.destroyed&&!Oo.injector.get(jo,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");Oo=t.get(Po);const e=t.get(no,null);e&&e.forEach(t=>t())}(Gr.create({providers:t,name:r}))}return function(t){const e=No();if(!e)throw new Error(\"No platform exists!\");if(!e.injector.get(t,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return e}(s)}}function No(){return Oo&&!Oo.destroyed?Oo:null}let Po=(()=>{class t{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t,e){let n;return n=\"noop\"===t?new To:(\"zone.js\"===t?void 0:t)||new vo({enableLongStackTrace:Me(),shouldCoalesceEventChangeDetection:e}),n}(e?e.ngZone:void 0,e&&e.ngZoneEventCoalescing||!1),r=[{provide:vo,useValue:n}];return n.run(()=>{const e=Gr.create({providers:r,parent:this.injector,name:t.moduleType.name}),s=t.create(e),o=s.injector.get(kn,null);if(!o)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return s.onDestroy(()=>Fo(this._modules,s)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{o.handleError(t)}})),function(t,e,n){try{const r=n();return rs(r)?r.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(o,n,()=>{const t=s.injector.get(Ys);return t.runInitializers(),t.donePromise.then(()=>(hs(s.injector.get(io,cs)||cs),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,e=[]){const n=Ro({},e);return function(t,e,n){const r=new Gs(n);return Promise.resolve(r)}(0,0,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(Mo);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${J(t.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. Please define one of these.`);t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Gr))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Ro(t,e){return Array.isArray(e)?e.reduce(Ro,t):Object.assign(Object.assign({},t),e)}let Mo=(()=>{class t{constructor(t,e,n,r,s,o){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Me(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),l=new g(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{vo.assertNotInAngularZone(),go(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{vo.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=function(...t){let e=Number.POSITIVE_INFINITY,n=null,r=t[t.length-1];var s;return(s=r)&&\"function\"==typeof s.schedule?(n=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(e=t.pop())):\"number\"==typeof r&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof g?t[0]:function(t=Number.POSITIVE_INFINITY){return H(m,t)}(e)(function(t,e){return e?function(t,e){return new g(n=>{const r=new h;let s=0;return r.add(e.schedule(function(){s!==t.length?(n.next(t[s++]),n.closed||r.add(this.schedule())):n.complete()})),r})}(t,e):new g(S(t))}(t,n))}(i,l.pipe(t=>{return R()((e=Z,function(t){let n;n=\"function\"==typeof e?e:function(){return e};const r=Object.create(t,L);return r.source=t,r.subjectFactory=n,r})(t));var e}))}bootstrap(t,e){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=t instanceof ds?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(Ls),s=n.create(Gr.NULL,[],e||n.selector,r);s.onDestroy(()=>{this._unloadComponent(s)});const o=s.injector.get(So,null);return o&&s.injector.get(Io).registerApplication(s.location.nativeElement,o),this._loadComponent(s),Me()&&this._console.log(\"Angular is running in development mode. Call enableProdMode() to enable production mode.\"),s}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Fo(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(so,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),Fo(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo),Gt(oo),Gt(Gr),Gt(kn),Gt(ps),Gt(Ys))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Fo(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const Vo=Ho(null,\"core\",[{provide:ro,useValue:\"unknown\"},{provide:Po,deps:[Gr]},{provide:Io,deps:[]},{provide:oo,deps:[]}]),Lo=[{provide:Mo,useClass:Mo,deps:[vo,oo,Gr,kn,ps,Ys]},{provide:$s,deps:[vo],useFactory:function(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:Ys,useClass:Ys,deps:[[new q,Ks]]},{provide:yo,useClass:yo,deps:[]},to,{provide:Hs,useFactory:function(){return Fs},deps:[]},{provide:Ns,useFactory:function(){return Vs},deps:[]},{provide:io,useFactory:function(t){return hs(t=t||\"undefined\"!=typeof $localize&&$localize.locale||cs),t},deps:[[new W(io),new q,new G]]},{provide:lo,useValue:\"USD\"}];let Bo=(()=>{class t{constructor(t){}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(Mo))},providers:Lo}),t})(),Zo=null;function zo(){return Zo}const $o=new ut(\"DocumentToken\");var Uo=function(t){return t[t.Zero=0]=\"Zero\",t[t.One=1]=\"One\",t[t.Two=2]=\"Two\",t[t.Few=3]=\"Few\",t[t.Many=4]=\"Many\",t[t.Other=5]=\"Other\",t}({});class Wo{}let qo=(()=>{class t extends Wo{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(function(t){return function(t){const e=function(t){return t.toLowerCase().replace(/_/g,\"-\")}(t);let n=ls(e);if(n)return n;const r=e.split(\"-\")[0];if(n=ls(r),n)return n;if(\"en\"===r)return os;throw new Error(`Missing locale data for the locale \"${t}\".`)}(t)[us.PluralCase]}(e||this.locale)(t)){case Uo.Zero:return\"zero\";case Uo.One:return\"one\";case Uo.Two:return\"two\";case Uo.Few:return\"few\";case Uo.Many:return\"many\";default:return\"other\"}}}return t.\\u0275fac=function(e){return new(e||t)(Gt(io))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Qo=(()=>{class t{}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[{provide:Wo,useClass:qo}]}),t})();class Go extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var t;t=new Go,Zo||(Zo=t)}getProperty(t,e){return t[e]}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}getValue(t){return t.value}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return\"window\"===e?window:\"document\"===e?t:\"body\"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=Ko||(Ko=document.querySelector(\"base\"),Ko)?Ko.getAttribute(\"href\"):null;return null==e?null:(n=e,Jo||(Jo=document.createElement(\"a\")),Jo.setAttribute(\"href\",n),\"/\"===Jo.pathname.charAt(0)?Jo.pathname:\"/\"+Jo.pathname);var n}resetBaseElement(){Ko=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return function(t,e){e=encodeURIComponent(e);for(const n of t.split(\";\")){const t=n.indexOf(\"=\"),[r,s]=-1==t?[n,\"\"]:[n.slice(0,t),n.slice(t+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}(document.cookie,t)}}let Jo,Ko=null;const Yo=new ut(\"TRANSITION_ID\"),Xo=[{provide:Ks,useFactory:function(t,e,n){return()=>{n.get(Ys).donePromise.then(()=>{const n=zo();Array.prototype.slice.apply(e.querySelectorAll(\"style[ng-transition]\")).filter(e=>e.getAttribute(\"ng-transition\")===t).forEach(t=>n.remove(t))})}},deps:[Yo,$o,Gr],multi:!0}];class ti{static init(){var t;t=new ti,Do=t}addToWindow(t){pt.getAngularTestability=(e,n=!0)=>{const r=t.findTestabilityInTree(e,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},pt.getAllAngularTestabilities=()=>t.getAllTestabilities(),pt.getAllAngularRootElements=()=>t.getAllRootElements(),pt.frameworkStabilizers||(pt.frameworkStabilizers=[]),pt.frameworkStabilizers.push(t=>{const e=pt.getAllAngularTestabilities();let n=e.length,r=!1;const s=function(e){r=r||e,n--,0==n&&t(r)};e.forEach(function(t){t.whenStable(s)})})}findTestabilityInTree(t,e,n){if(null==e)return null;const r=t.getTestability(e);return null!=r?r:n?zo().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}const ei=new ut(\"EventManagerPlugins\");let ni=(()=>{class t{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let r=0;r<n.length;r++){const e=n[r];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(\"No event manager plugin found for event \"+t)}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ei),Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class ri{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const r=zo().getGlobalEventTarget(this._doc,t);if(!r)throw new Error(`Unsupported event target ${r} for event ${e}`);return this.addEventListener(r,e,n)}}let si=(()=>{class t{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),oi=(()=>{class t extends si{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement(\"style\");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>zo().remove(t))}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const ii={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},li=/%COMP%/g;function ui(t,e,n){for(let r=0;r<e.length;r++){let s=e[r];Array.isArray(s)?ui(t,s,n):(s=s.replace(li,t),n.push(s))}return n}function ci(t){return e=>{if(\"__ngUnwrap__\"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let ai=(()=>{class t{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new hi(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case vt.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new di(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case 1:case vt.ShadowDom:return new fi(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=ui(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ni),Gt(oi),Gt(Xs))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class hi{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(ii[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n=\"string\"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector \"${t}\" did not match any elements`);return e||(n.textContent=\"\"),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,r){if(r){e=r+\":\"+e;const s=ii[r];s?t.setAttributeNS(s,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const r=ii[n];r?t.removeAttributeNS(r,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,r){r&(An.DashCase|An.Important)?t.style.setProperty(e,n,r&An.Important?\"important\":\"\"):t.style[e]=n}removeStyle(t,e,n){n&An.DashCase?t.style.removeProperty(e):t.style[e]=\"\"}setProperty(t,e,n){t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return\"string\"==typeof t?this.eventManager.addGlobalEventListener(t,e,ci(n)):this.eventManager.addEventListener(t,e,ci(n))}}class di extends hi{constructor(t,e,n,r){super(t),this.component=n;const s=ui(r+\"-\"+n.id,n.styles,[]);e.addStyles(s),this.contentAttr=\"_ngcontent-%COMP%\".replace(li,r+\"-\"+n.id),this.hostAttr=\"_nghost-%COMP%\".replace(li,r+\"-\"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,\"\")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,\"\"),n}}class fi extends hi{constructor(t,e,n,r){super(t),this.sharedStylesHost=e,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:\"open\"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=ui(r.id,r.styles,[]);for(let o=0;o<s.length;o++){const t=document.createElement(\"style\");t.textContent=s[o],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}let pi=(()=>{class t extends ri{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,n){return t.addEventListener(e,n,!1),()=>this.removeEventListener(t,e,n)}removeEventListener(t,e,n){return t.removeEventListener(e,n)}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const _i=[\"alt\",\"control\",\"meta\",\"shift\"],yi={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},mi={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},gi={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let vi=(()=>{class t extends ri{constructor(t){super(t)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,n,r){const s=t.parseEventName(n),o=t.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>zo().onAndCancel(e,s.domEventName,o))}static parseEventName(e){const n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const s=t._normalizeKey(n.pop());let o=\"\";if(_i.forEach(t=>{const e=n.indexOf(t);e>-1&&(n.splice(e,1),o+=t+\".\")}),o+=s,0!=n.length||0===s.length)return null;const i={};return i.domEventName=r,i.fullKey=o,i}static getEventFullKey(t){let e=\"\",n=function(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return\"Unidentified\";e.startsWith(\"U+\")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&mi.hasOwnProperty(e)&&(e=mi[e]))}return yi[e]||e}(t);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),_i.forEach(r=>{r!=n&&(0,gi[r])(t)&&(e+=r+\".\")}),e+=n,e}static eventCallback(e,n,r){return s=>{t.getEventFullKey(s)===e&&r.runGuarded(()=>n(s))}}static _normalizeKey(t){switch(t){case\"esc\":return\"escape\";default:return t}}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const bi=Ho(Vo,\"browser\",[{provide:ro,useValue:\"browser\"},{provide:no,useValue:function(){Go.makeCurrent(),ti.init()},multi:!0},{provide:$o,useFactory:function(){return function(t){Kt=t}(document),document},deps:[]}]),wi=[[],{provide:Rr,useValue:\"root\"},{provide:kn,useFactory:function(){return new kn},deps:[]},{provide:ei,useClass:pi,multi:!0,deps:[$o,vo,ro]},{provide:ei,useClass:vi,multi:!0,deps:[$o]},[],{provide:ai,useClass:ai,deps:[ni,oi,Xs]},{provide:vs,useExisting:ai},{provide:si,useExisting:oi},{provide:oi,useClass:oi,deps:[$o]},{provide:So,useClass:So,deps:[vo]},{provide:ni,useClass:ni,deps:[ei,vo]},[]];let Ci=(()=>{class t{constructor(t){if(t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(e){return{ngModule:t,providers:[{provide:Xs,useValue:e.appId},{provide:Yo,useExisting:Xs},Xo]}}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(t,12))},providers:wi,imports:[Qo,Bo]}),t})();\"undefined\"!=typeof window&&window;let Ei=(()=>{class t{constructor(){this.title=\"example\"}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=(e={type:t,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(t,e){1&t&&(ns(0,\"div\",0),function(t,e=\"\"){const n=_e(),r=ye(),s=t+Yt,o=r.firstCreatePass?lr(r,s,1,e,null):r.data[s],i=n[s]=function(t,e){return re(t)?t.createText(e):t.createTextNode(e)}(n[11],e);Bn(r,n,i,o),ve(o,!1)}(1,\" Hello, World\\n\"),function(){let t=me();be()?fe.lFrame.isParent=!1:(t=t.parent,ve(t,!1));const e=t;fe.lFrame.elementDepthCount--;const n=ye();n.firstCreatePass&&(Ue(n,t),ee(t)&&n.queries.elementEnd(t)),null!=e.classesWithoutHost&&function(t){return 0!=(16&t.flags)}(e)&&es(n,e,_e(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function(t){return 0!=(32&t.flags)}(e)&&es(n,e,_e(),e.stylesWithoutHost,!1)}())},styles:[\"\"]},z(()=>{const t={},n={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===ct.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||wt,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||vt.Emulated,id:\"c\",styles:e.styles||wt,_:null,setInput:null,schemas:e.schemas||null,tView:null},r=e.directives,s=e.features,o=e.pipes;return n.id+=At++,n.inputs=Nt(e.inputs,t),n.outputs=Nt(e.outputs),s&&s.forEach(t=>t(n)),n.directiveDefs=r?()=>(\"function\"==typeof r?r():r).map(Ot):null,n.pipeDefs=o?()=>(\"function\"==typeof o?o():o).map(Dt):null,n})),t;var e})(),xi=(()=>{class t{}return t.\\u0275mod=Ht({type:t,bootstrap:[Ei]}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[],imports:[[Ci]]}),t})();(function(){if(Re)throw new Error(\"Cannot enable prod mode after platform setup.\");Pe=!1})(),bi().bootstrapModule(xi).catch(t=>console.error(t))},zn8P:function(t,e){function n(t){return Promise.resolve().then(function(){var e=new Error(\"Cannot find module '\"+t+\"'\");throw e.code=\"MODULE_NOT_FOUND\",e})}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/dist/example/polyfills.bf99d438b005d57b2b31.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{1:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const i=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(i||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class a{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==C.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=a.current;for(;e.parent;)e=e.parent;return e}static get current(){return z.zone}static get currentTask(){return j}static __load_patch(t,r){if(C.hasOwnProperty(t)){if(i)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),C[t]=r(e,a,O),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){z={parent:z,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{z=z.parent}}runGuarded(e,t=null,n,o){z={parent:z,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{z=z.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,T),e.runCount++;const r=j;j=e,z={parent:z,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(T,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),z=z.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(b,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,b,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==b&&e._transitionTo(T,b),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,T,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}a.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new a(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");k(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,i){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=i,!o)throw new Error(\"callback is not defined\");this.callback=o;const a=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,a,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,b)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],_=!1;function k(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!_){for(_=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){O.onUnhandledError(e)}}}O.microtaskDrainDone(),_=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",b=\"scheduling\",T=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",C={},O={symbol:s,currentZoneFrame:()=>z,onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:k,showUncaughtError:()=>!a[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:N,patchMethod:()=>N,bindArguments:()=>[],patchThen:()=>N,patchMacroTask:()=>N,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>N,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>N,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>N,wrapWithCurrentZone:()=>N,filterProperties:()=>[],attachOriginToPatched:()=>N,_redefineProperty:()=>N,patchCallbacks:()=>N};let z={parent:null,zone:new a(null,null)},j=null,I=0;function N(){}o(\"Zone\",\"Zone\"),e.Zone=a}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,i=[],a=!0===e[s(\"DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION\")],c=s(\"Promise\"),l=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;i.length;){const t=i.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){h(e)}}};const u=s(\"unhandledPromiseRejectionHandler\");function h(e){n.onUnhandledError(e);try{const n=t[u];\"function\"==typeof n&&n.call(this,e)}catch(o){}}function p(e){return e&&e.then}function f(e){return e}function d(e){return O.reject(e)}const g=s(\"state\"),_=s(\"value\"),k=s(\"finally\"),m=s(\"parentPromiseValue\"),y=s(\"parentPromiseState\"),v=null,b=!0,T=!1;function E(e,t){return n=>{try{Z(e,t,n)}catch(o){Z(e,!1,o)}}}const w=s(\"currentTaskTrace\");function Z(e,o,s){const c=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(e[g]===v){let h=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(h=s&&s.then)}catch(u){return c(()=>{Z(e,!1,u)})(),e}if(o!==T&&s instanceof O&&s.hasOwnProperty(g)&&s.hasOwnProperty(_)&&s[g]!==v)D(s),Z(e,s[g],s[_]);else if(o!==T&&\"function\"==typeof h)try{h.call(s,c(E(e,o)),c(E(e,!1)))}catch(u){c(()=>{Z(e,!1,u)})()}else{e[g]=o;const c=e[_];if(e[_]=s,e[k]===k&&o===b&&(e[g]=e[y],e[_]=e[m]),o===T&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,w,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<c.length;)P(e,c[t++],c[t++],c[t++],c[t++]);if(0==c.length&&o==T){e[g]=0;let o=s;if(!a)try{throw new Error(\"Uncaught (in promise): \"+((l=s)&&l.toString===Object.prototype.toString?(l.constructor&&l.constructor.name||\"\")+\": \"+JSON.stringify(l):l?l.toString():Object.prototype.toString.call(l))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(u){o=u}o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,i.push(o),n.scheduleMicroTask()}}}var l;return e}const S=s(\"rejectionHandledHandler\");function D(e){if(0===e[g]){try{const n=t[S];n&&\"function\"==typeof n&&n.call(this,{rejection:e[_],promise:e})}catch(n){}e[g]=T;for(let t=0;t<i.length;t++)e===i[t].promise&&i.splice(t,1)}}function P(e,t,n,o,r){D(e);const s=e[g],i=s?\"function\"==typeof o?o:f:\"function\"==typeof r?r:d;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[_],r=!!n&&k===n[k];r&&(n[m]=o,n[y]=s);const a=t.run(i,void 0,r&&i!==d&&i!==f?[]:[o]);Z(n,!0,a)}catch(o){Z(n,!1,o)}},n)}const C=function(){};class O{static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return Z(new this(null),b,e)}static reject(e){return Z(new this(null),T,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let i of e)p(i)||(i=this.resolve(i)),i.then(r,s);return o}static all(e){return O.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof O?this:O).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,i=0;const a=[];for(let l of e){p(l)||(l=this.resolve(l));const e=i;try{l.then(o=>{a[e]=t?t.thenCallback(o):o,s--,0===s&&n(a)},r=>{t?(a[e]=t.errorCallback(r),s--,0===s&&n(a)):o(r)})}catch(c){o(c)}s++,i++}return s-=2,0===s&&n(a),r}constructor(e){const t=this;if(!(t instanceof O))throw new Error(\"Must be an instanceof Promise.\");t[g]=v,t[_]=[];try{e&&e(E(t,b),E(t,T))}catch(n){Z(t,!1,n)}}get[Symbol.toStringTag](){return\"Promise\"}get[Symbol.species](){return O}then(e,n){let o=this.constructor[Symbol.species];o&&\"function\"==typeof o||(o=this.constructor||O);const r=new o(C),s=t.current;return this[g]==v?this[_].push(s,r,e,n):P(this,s,r,e,n),r}catch(e){return this.then(null,e)}finally(e){let n=this.constructor[Symbol.species];n&&\"function\"==typeof n||(n=O);const o=new n(C);o[k]=k;const r=t.current;return this[g]==v?this[_].push(r,o,e,e):P(this,r,o,e,e),o}}O.resolve=O.resolve,O.reject=O.reject,O.race=O.race,O.all=O.all;const z=e[c]=e.Promise,j=t.__symbol__(\"ZoneAwarePromise\");let I=o(e,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return e[j]?e[j]:e[c]},I.set=function(t){t===O?e[j]=t:(e[c]=t,t.prototype[l]||R(t),n.setNativePromise(t))},r(e,\"Promise\",I)),e.Promise=O;const N=s(\"thenPatched\");function R(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[l]=r,e.prototype.then=function(e,t){return new O((e,t)=>{r.call(this,e,t)}).then(e,t)},e[N]=!0}if(n.patchThen=R,z){R(z);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(x=t,function(){let e=x.apply(this,arguments);if(e instanceof O)return e;let t=e.constructor;return t[N]||R(t),e}))}var x;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=i,O});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=\"addEventListener\",i=\"removeEventListener\",a=Zone.__symbol__(s),c=Zone.__symbol__(i),l=\"true\",u=\"false\",h=Zone.__symbol__(\"\");function p(e,t){return Zone.current.wrap(e,t)}function f(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const d=Zone.__symbol__,g=\"undefined\"!=typeof window,_=g?window:void 0,k=g&&_||\"object\"==typeof self&&self||global,m=[null];function y(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=p(e[n],t+\"_\"+n));return e}function v(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const b=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,T=!(\"nw\"in k)&&void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process),E=!T&&!b&&!(!g||!_.HTMLElement),w=void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process)&&!b&&!(!g||!_.HTMLElement),Z={},S=function(e){if(!(e=e||k.event))return;let t=Z[e.type];t||(t=Z[e.type]=d(\"ON_PROPERTY\"+e.type));const n=this||e.target||k,o=n[t];let r;if(E&&n===_&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function D(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const i=d(\"on\"+o+\"patched\");if(n.hasOwnProperty(i)&&n[i])return;delete s.writable,delete s.value;const a=s.get,c=s.set,l=o.substr(2);let u=Z[l];u||(u=Z[l]=d(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==k||(t=k),t&&(t[u]&&t.removeEventListener(l,S),c&&c.apply(t,m),\"function\"==typeof e?(t[u]=e,t.addEventListener(l,S,!1)):t[u]=null)},s.get=function(){let e=this;if(e||n!==k||(e=k),!e)return null;const t=e[u];if(t)return t;if(a){let t=a&&a.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[i]=!0}function P(e,t,n){if(t)for(let o=0;o<t.length;o++)D(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)D(e,t[o],n)}}const C=d(\"originalInstance\");function O(e){const n=k[e];if(!n)return;k[d(e)]=n,k[e]=function(){const t=y(arguments,e);switch(t.length){case 0:this[C]=new n;break;case 1:this[C]=new n(t[0]);break;case 2:this[C]=new n(t[0],t[1]);break;case 3:this[C]=new n(t[0],t[1],t[2]);break;case 4:this[C]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},I(k[e],n);const o=new n(function(){});let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?k[e].prototype[n]=function(){return this[C][n].apply(this[C],arguments)}:t(k[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[C][n]=p(t,e+\".\"+n),I(this[C][n],t)):this[C][n]=t},get:function(){return this[C][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(k[e][r]=n[r])}function z(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const i=d(o);let a=null;if(s&&!(a=s[i])&&(a=s[i]=s[o],v(s&&e(s,o)))){const e=r(a,i,o);s[o]=function(){return e(this,arguments)},I(s[o],a)}return a}function j(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=z(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?f(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function I(e,t){e[d(\"OriginalDelegate\")]=t}let N=!1,R=!1;function x(){try{const e=_.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function M(){if(N)return R;N=!0;try{const e=_.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(R=!0)}catch(e){}return R}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=d(\"OriginalDelegate\"),o=d(\"Promise\"),r=d(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const i=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":i.call(this)}});let L=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){L=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(he){L=!1}const A={useG:!0},H={},F={},G=new RegExp(\"^\"+h+\"(\\\\w+)(true|false)$\"),B=d(\"propagationStopped\");function q(e,t){const n=(t?t(e):e)+u,o=(t?t(e):e)+l,r=h+n,s=h+o;H[e]={},H[e].false=r,H[e].true=s}function W(e,t,o){const r=o&&o.add||s,a=o&&o.rm||i,c=o&&o.listeners||\"eventListeners\",p=o&&o.rmAll||\"removeAllListeners\",f=d(r),g=\".\"+r+\":\",_=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[a].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},k=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].false];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}},m=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].true];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}};function y(t,o){if(!t)return!1;let s=!0;o&&void 0!==o.useG&&(s=o.useG);const i=o&&o.vh;let _=!0;o&&void 0!==o.chkDup&&(_=o.chkDup);let y=!1;o&&void 0!==o.rt&&(y=o.rt);let v=t;for(;v&&!v.hasOwnProperty(r);)v=n(v);if(!v&&t[r]&&(v=t),!v)return!1;if(v[f])return!1;const b=o&&o.eventNameToString,E={},w=v[f]=v[r],Z=v[d(a)]=v[a],S=v[d(c)]=v[c],D=v[d(p)]=v[p];let P;function C(e,t){return!L&&\"object\"==typeof e&&e?!!e.capture:L&&t?\"boolean\"==typeof e?{capture:e,passive:!0}:e?\"object\"==typeof e&&!1!==e.passive?Object.assign(Object.assign({},e),{passive:!0}):e:{passive:!0}:e}o&&o.prepend&&(P=v[d(o.prepend)]=v[o.prepend]);const O=s?function(e){if(!E.isExisting)return w.call(E.target,E.eventName,E.capture?m:k,E.options)}:function(e){return w.call(E.target,E.eventName,e.invoke,E.options)},z=s?function(e){if(!e.isRemoved){const t=H[e.eventName];let n;t&&(n=t[e.capture?l:u]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return Z.call(e.target,e.eventName,e.capture?m:k,e.options)}:function(e){return Z.call(e.target,e.eventName,e.invoke,e.options)},j=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},N=Zone[d(\"BLACK_LISTED_EVENTS\")],R=e[d(\"PASSIVE_EVENTS\")],x=function(t,n,r,a,c=!1,h=!1){return function(){const p=this||e;let f=arguments[0];o&&o.transferEventName&&(f=o.transferEventName(f));let d=arguments[1];if(!d)return t.apply(this,arguments);if(T&&\"uncaughtException\"===f)return t.apply(this,arguments);let g=!1;if(\"function\"!=typeof d){if(!d.handleEvent)return t.apply(this,arguments);g=!0}if(i&&!i(t,d,p,arguments))return;const k=L&&!!R&&-1!==R.indexOf(f),m=C(arguments[2],k);if(N)for(let e=0;e<N.length;e++)if(f===N[e])return k?t.call(p,f,d,m):t.apply(this,arguments);const y=!!m&&(\"boolean\"==typeof m||m.capture),v=!(!m||\"object\"!=typeof m)&&m.once,w=Zone.current;let Z=H[f];Z||(q(f,b),Z=H[f]);const S=Z[y?l:u];let D,P=p[S],O=!1;if(P){if(O=!0,_)for(let e=0;e<P.length;e++)if(j(P[e],d))return}else P=p[S]=[];const z=p.constructor.name,I=F[z];I&&(D=I[f]),D||(D=z+n+(b?b(f):f)),E.options=m,v&&(E.options.once=!1),E.target=p,E.capture=y,E.eventName=f,E.isExisting=O;const x=s?A:void 0;x&&(x.taskData=E);const M=w.scheduleEventTask(D,d,x,r,a);return E.target=null,x&&(x.taskData=null),v&&(m.once=!0),(L||\"boolean\"!=typeof M.options)&&(M.options=m),M.target=p,M.capture=y,M.eventName=f,g&&(M.originalDelegate=d),h?P.unshift(M):P.push(M),c?p:void 0}};return v[r]=x(w,g,O,z,y),P&&(v.prependListener=x(P,\".prependListener:\",function(e){return P.call(E.target,E.eventName,e.invoke,E.options)},z,y,!0)),v[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2],s=!!r&&(\"boolean\"==typeof r||r.capture),a=arguments[1];if(!a)return Z.apply(this,arguments);if(i&&!i(Z,a,t,arguments))return;const c=H[n];let p;c&&(p=c[s?l:u]);const f=p&&t[p];if(f)for(let e=0;e<f.length;e++){const o=f[e];if(j(o,a))return f.splice(e,1),o.isRemoved=!0,0===f.length&&(o.allRemoved=!0,t[p]=null,\"string\"==typeof n)&&(t[h+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),y?t:void 0}return Z.apply(this,arguments)},v[c]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=U(t,b?b(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},v[p]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=H[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=G.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[p].call(this,o)}this[p].call(this,\"removeListener\")}if(y)return this},I(v[r],w),I(v[a],Z),D&&I(v[p],D),S&&I(v[c],S),!0}let v=[];for(let n=0;n<t.length;n++)v[n]=y(t[n],o);return v}function U(e,t){if(!t){const n=[];for(let o in e){const r=G.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}let n=H[t];n||(q(t),n=H[t]);const o=e[n.false],r=e[n.true];return o?r?o.concat(r):o.slice():r?r.slice():[]}function V(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[B]=!0,e&&e.apply(t,n)})}function $(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const i=t[s]=t[o];t[o]=function(s,a,c){return a&&a.prototype&&r.forEach(function(t){const r=`${n}.${o}::`+t,s=a.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(a.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}),i.call(t,s,a,c)},e.attachOriginToPatched(t[o],i)}const X=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplayconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],J=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],Y=[\"load\"],K=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],Q=[\"bounce\",\"finish\",\"start\"],ee=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],te=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],ne=[\"close\",\"error\",\"open\",\"message\"],oe=[\"error\",\"message\"],re=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],X,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function se(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function ie(e,t,n,o){e&&P(e,se(e,t,n),o)}function ae(e,t){if(T&&!w)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(E){const e=window,t=x?[{target:e,ignoreProperties:[\"error\"]}]:[];ie(e,re.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),ie(Document.prototype,re,r),void 0!==e.SVGElement&&ie(e.SVGElement.prototype,re,r),ie(Element.prototype,re,r),ie(HTMLElement.prototype,re,r),ie(HTMLMediaElement.prototype,J,r),ie(HTMLFrameSetElement.prototype,X.concat(K),r),ie(HTMLBodyElement.prototype,X.concat(K),r),ie(HTMLFrameElement.prototype,Y,r),ie(HTMLIFrameElement.prototype,Y,r);const o=e.HTMLMarqueeElement;o&&ie(o.prototype,Q,r);const s=e.Worker;s&&ie(s.prototype,oe,r)}const s=t.XMLHttpRequest;s&&ie(s.prototype,ee,r);const i=t.XMLHttpRequestEventTarget;i&&ie(i&&i.prototype,ee,r),\"undefined\"!=typeof IDBIndex&&(ie(IDBIndex.prototype,te,r),ie(IDBRequest.prototype,te,r),ie(IDBOpenDBRequest.prototype,te,r),ie(IDBDatabase.prototype,te,r),ie(IDBTransaction.prototype,te,r),ie(IDBCursor.prototype,te,r)),o&&ie(WebSocket.prototype,ne,r)}Zone.__load_patch(\"util\",(n,a,c)=>{c.patchOnProperties=P,c.patchMethod=z,c.bindArguments=y,c.patchMacroTask=j;const f=a.__symbol__(\"BLACK_LISTED_EVENTS\"),d=a.__symbol__(\"UNPATCHED_EVENTS\");n[d]&&(n[f]=n[d]),n[f]&&(a[f]=a[d]=n[f]),c.patchEventPrototype=V,c.patchEventTarget=W,c.isIEOrEdge=M,c.ObjectDefineProperty=t,c.ObjectGetOwnPropertyDescriptor=e,c.ObjectCreate=o,c.ArraySlice=r,c.patchClass=O,c.wrapWithCurrentZone=p,c.filterProperties=se,c.attachOriginToPatched=I,c._redefineProperty=Object.defineProperty,c.patchCallbacks=$,c.getGlobalObjects=()=>({globalSources:F,zoneSymbolEventNames:H,eventNames:re,isBrowser:E,isMix:w,isNode:T,TRUE_STR:l,FALSE_STR:u,ZONE_SYMBOL_PREFIX:h,ADD_EVENT_LISTENER_STR:s,REMOVE_EVENT_LISTENER_STR:i})});const ce=d(\"zoneTask\");function le(e,t,n,o){let r=null,s=null;n+=o;const i={};function a(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete i[n.handleId]:n.handleId&&(n.handleId[ce]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=z(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=f(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},a,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?i[n]=e:n&&(n[ce]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=z(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=i[r]:(s=r&&r[ce],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete i[r]:r&&(r[ce]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function ue(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:i}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=i+(e+s),a=i+(e+r);o[e]={},o[e][s]=t,o[e][r]=a}const a=e.EventTarget;return a&&a.prototype?(t.patchEventTarget(e,[a&&a.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{const t=\"set\",n=\"clear\";le(e,t,n,\"Timeout\"),le(e,t,n,\"Interval\"),le(e,t,n,\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{le(e,\"request\",\"cancel\",\"AnimationFrame\"),le(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),le(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)z(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{(function(e,t){t.patchEventPrototype(e,t)})(e,n),ue(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),O(\"MutationObserver\"),O(\"WebKitMutationObserver\"),O(\"IntersectionObserver\"),O(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ae(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const u=e.XMLHttpRequest;if(!u)return;const h=u.prototype;let p=h[a],g=h[c];if(!p){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;p=e[a],g=e[c]}}const _=\"readystatechange\",k=\"scheduled\";function m(e){const o=e.data,i=o.target;i[s]=!1,i[l]=!1;const u=i[r];p||(p=i[a],g=i[c]),u&&g.call(i,_,u);const h=i[r]=()=>{if(i.readyState===i.DONE)if(!o.aborted&&i[s]&&e.state===k){const n=i[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=i[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||e.state!==k||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==i[s]||(i[l]=!0)};return p.call(i,_,h),i[n]||(i[n]=e),w.apply(i,o.args),i[s]=!0,e}function y(){}function v(e){const t=e.data;return t.aborted=!0,Z.apply(t.target,t.args)}const b=z(h,\"open\",()=>function(e,t){return e[o]=0==t[2],e[i]=t[1],b.apply(e,t)}),T=d(\"fetchTaskAborting\"),E=d(\"fetchTaskScheduling\"),w=z(h,\"send\",()=>function(e,n){if(!0===t.current[E])return w.apply(e,n);if(e[o])return w.apply(e,n);{const t={target:e,url:e[i],isPeriodic:!1,args:n,aborted:!1},o=f(\"XMLHttpRequest.send\",y,t,m,v);e&&!0===e[l]&&!t.aborted&&o.state===k&&o.invoke()}}),Z=z(h,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[T])return Z.apply(e,o)})}(e);const n=d(\"xhrTask\"),o=d(\"xhrSync\"),r=d(\"xhrListener\"),s=d(\"xhrScheduled\"),i=d(\"xhrURL\"),l=d(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],i=t[s];if(i){if(!v(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,y(arguments,o+\".\"+s))};return I(t,e),t})(i)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){U(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[d(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[d(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[1,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/dist/example/runtime.359d5ee4682f20e936e9.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/dist/example/styles.51422a5c94b8290ff190.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:initial}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:initial;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:initial;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:initial;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:initial}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:initial}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:initial}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:initial}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:initial}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:initial}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:initial}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:initial}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:initial;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:initial}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:initial;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:initial;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:initial;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:initial;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:initial;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:initial;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:initial;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:initial;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:initial!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:initial!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:initial;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/addTax.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\n\n@Pipe({\n    name: \"addTax\"\n})\nexport class PaAddTaxPipe {\n\n    defaultRate: number = 10;\n\n    transform(value: any, rate?: any): number {\n        let valueNumber = Number.parseFloat(value);\n        let rateNumber = rate == undefined ?\n            this.defaultRate : Number.parseInt(rate);\n        return valueNumber + (valueNumber * (rateNumber / 100));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\nimport { PaAddTaxPipe } from \"./addTax.pipe\";\nimport { PaCategoryFilterPipe } from \"./categoryFilter.pipe\";\nimport { LOCALE_ID } from \"@angular/core\";\nimport localeFr from '@angular/common/locales/fr';\nimport { registerLocaleData } from '@angular/common';\n\nregisterLocaleData(localeFr);\n\n@NgModule({\n  imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n  declarations: [ProductComponent, PaAttrDirective, PaModel,\n    PaStructureDirective, PaIteratorDirective,\n    PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n    ProductFormComponent, PaToggleView, PaAddTaxPipe,\n    PaCategoryFilterPipe],\n  //providers: [{ provide: LOCALE_ID, useValue: \"fr-FR\" }],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/attr.directive.ts",
    "content": "import {\n  Directive, ElementRef, Attribute, Input,\n  SimpleChange, Output, EventEmitter, HostListener, HostBinding\n}\n  from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Directive({\n  selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n  @Input(\"pa-attr\")\n  @HostBinding(\"class\")\n  bgClass: string;\n\n  @Input(\"pa-product\")\n  product: Product;\n\n  @Output(\"pa-category\")\n  click = new EventEmitter<string>();\n\n  @HostListener(\"click\")\n  triggerCustomEvent() {\n    if (this.product != null) {\n      this.click.emit(this.product.category);\n    }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/categoryFilter.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Pipe({\n    name: \"filter\",\n    pure: false\n})\nexport class PaCategoryFilterPipe {\n\n    transform(products: Product[], category: string): Product[] {\n        return category == undefined ?\n            products : products.filter(p => p.category == category);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n    SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\nselector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n@Input(\"paCellDarkColor\")\nmodelProperty: Boolean;\n\n@ContentChildren(PaCellColor, {descendants: true})\ncontentChildren: QueryList<PaCellColor>;\n\nngOnChanges(changes: { [property: string]: SimpleChange }) {\n   this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n}\n\nngAfterContentInit() {\n   this.contentChildren.changes.subscribe(() => {\n       setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n   });\n}\n\nprivate updateContentChildren(dark: Boolean) {\n   if (this.contentChildren != null && dark != undefined) {\n       this.contentChildren.forEach((child, index) => {\n           child.setColor(index % 2 ? dark : !dark);\n       });\n   }\n}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/component.ts",
    "content": "import { ApplicationRef, Component } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\",\n    //styles: [\"/deep/ div { border: 2px black solid;  font-style:italic }\"]\n})\nexport class ProductComponent {\n    model: Model = new Model();\n\n    addProduct(p: Product) {\n        this.model.saveProduct(p);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/datasource.model.ts",
    "content": "import { Product } from \"./product.model\";\n\nexport class SimpleDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;\n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),\n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c =>\n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, ViewRef, IterableChangeRecord\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: IterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <IterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n\n            let arr: IterableChangeRecord<any>[] = [];\n            changes.forEachAddedItem(addition => arr.push(addition));\n            arr.forEach(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, arr.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n      public name?: string,\n      public category?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover {\n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\"\n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\"\n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\"\n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>\n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\",\n    // styleUrls: [\"productForm.component.css\"],\n    // encapsulation: ViewEncapsulation.Emulated\n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    @Output(\"paNewProduct\")\n    newProductEvent = new EventEmitter<Product>();\n\n    submitForm(form: any) {\n        this.newProductEvent.emit(this.newProduct);\n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <tr><th>Name</th><th>Category</th><th>Message</th></tr>\n    <tr *paFor=\"let item of getProducts()\">\n        <td>{{ item.name }}</td>\n        <td>{{ item.category }}</td>\n        <td>Helps you {{ item.category | i18nSelect:selectMap }} </td>\n    </tr>\n</table>\n\n<div class=\"bg-info text-white p-2\">\n    <div>There are {{ 1 | i18nPlural:numberMap }} </div>\n    <div>There are {{ 2 | i18nPlural:numberMap }} </div>\n    <div>There are {{ 100 | i18nPlural:numberMap }} </div>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n\n    @Input(\"model\")\n    dataModel: Model;\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n    categoryFilter: string;\n    itemCount: number = 3;\n\n    dateObject: Date = new Date(2020, 1, 20);\n    dateString: string = \"2020-02-20T00:00:00.000Z\";\n    dateNumber: number = 1582156800000;\n\n    selectMap = {\n        \"Watersports\": \"stay dry\",\n        \"Soccer\": \"score goals\",\n        \"other\": \"have fun\"\n    }\n\n    numberMap = {\n        \"=1\": \"one product\",\n        \"=2\": \"two products\",\n        \"other\": \"# products\"\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/repository.model.ts",
    "content": "import { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\nexport class Model {\n    private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor() {\n        this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n      let p = this.products.shift();\n      this.products.push(new Product(p.id, p.name, p.category, p.price));\n  }\n\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/structure.directive.ts",
    "content": "import {\n  Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n  selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n  constructor(private container: ViewContainerRef,\n      private template: TemplateRef<Object>) { }\n\n  @Input(\"paIf\")\n  expressionResult: boolean;\n\n  ngOnChanges(changes: { [property: string]: SimpleChange }) {\n      let change = changes[\"expressionResult\"];\n      if (!change.isFirstChange() && !change.currentValue) {\n          this.container.clear();\n      } else if (change.currentValue) {\n          this.container.createEmbeddedView(this.template);\n      }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n    <div class=\"col-4 p-2\">\n      <paProductForm (paNewProduct)=\"addProduct($event)\"></paProductForm>\n    </div>\n    <div class=\"col-8 p-2\">\n      <paProductTable [model]=\"model\"></paProductTable>\n    </div>\n  </div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\">\n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\"\n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n  HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n  selector: \"input[paModel]\",\n  exportAs: \"paModel\"\n})\nexport class PaModel {\n\n  direction: string = \"None\";\n\n  @Input(\"paModel\")\n  modelProperty: string;\n\n  @HostBinding(\"value\")\n  fieldValue: string = \"\";\n\n  ngOnChanges(changes: { [property: string]: SimpleChange }) {\n      let change = changes[\"modelProperty\"];\n      if (change.currentValue != this.fieldValue) {\n          this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n          this.direction = \"Model\";\n      }\n  }\n\n  @Output(\"paModelChange\")\n  update = new EventEmitter<string>();\n\n  @HostListener(\"input\", [\"$event.target.value\"])\n  updateValue(newValue: string) {\n      this.fieldValue = newValue;\n      this.update.emit(newValue);\n      this.direction = \"Element\";\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 18/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncss-loader\nMIT\nCopyright JS Foundation and other contributors\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2020 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.51422a5c94b8290ff190.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime.359d5ee4682f20e936e9.js\" defer></script><script src=\"polyfills.bf99d438b005d57b2b31.js\" defer></script><script src=\"main.f78bdaa2683ef468e3b3.js\" defer></script></body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/dist/example/main.f78bdaa2683ef468e3b3.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(t,e,n){t.exports=n(\"zUnb\")},zUnb:function(t,e,n){\"use strict\";function r(t){return\"function\"==typeof t}n.r(e);let s=!1;const o={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else s&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");s=t},get useDeprecatedSynchronousErrorHandling(){return s}};function i(t){setTimeout(()=>{throw t},0)}const l={closed:!0,next(t){},error(t){if(o.useDeprecatedSynchronousErrorHandling)throw t;i(t)},complete(){}},u=(()=>Array.isArray||(t=>t&&\"number\"==typeof t.length))();function c(t){return null!==t&&\"object\"==typeof t}const a=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();let h=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:s,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(r(o)){s&&(this._unsubscribe=void 0);try{o.call(this)}catch(l){e=l instanceof a?d(l.errors):[l]}}if(u(i)){let t=-1,n=i.length;for(;++t<n;){const n=i[t];if(c(n))try{n.unsubscribe()}catch(l){e=e||[],l instanceof a?e=e.concat(d(l.errors)):e.push(l)}}}if(e)throw new a(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case\"function\":n=new t(e);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error(\"unrecognized teardown \"+e+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof t){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const s=this._subscriptions;return null===s?this._subscriptions=[n]:s.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}return t.EMPTY=function(t){return t.closed=!0,t}(new t),t})();function d(t){return t.reduce((t,e)=>t.concat(e instanceof a?e.errors:e),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!t){this.destination=l;break}if(\"object\"==typeof t){t instanceof p?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,t,e,n)}}[f](){return this}static create(t,e,n){const r=new p(t,e,n);return r.syncErrorThrowable=!1,r}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class _ extends p{constructor(t,e,n,s){let o;super(),this._parentSubscriber=t;let i=this;r(e)?o=e:e&&(o=e.next,n=e.error,s=e.complete,e!==l&&(i=Object.create(e),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=o,this._error=n,this._complete=s}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;o.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:n}=o;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):i(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;i(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);o.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),o.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(t,e,n){if(!o.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{e.call(this._context,n)}catch(r){return o.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=r,t.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const y=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function m(t){return t}let g=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:r}=this,s=function(t,e,n){if(t){if(t instanceof p)return t;if(t[f])return t[f]()}return t||e||n?new p(t,e,n):new p(l)}(t,e,n);if(s.add(r?r.call(s,this.source):this.source||o.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),o.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(t){try{return this._subscribe(t)}catch(e){o.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof p?n:null}return!0}(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=v(e))((e,n)=>{let r;r=this.subscribe(e=>{try{t(e)}catch(s){n(s),r&&r.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[y](){return this}pipe(...t){return 0===t.length?this:(0===(e=t).length?m:1===e.length?e[0]:function(t){return e.reduce((t,e)=>e(t),t)})(this);var e}toPromise(t){return new(t=v(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function v(t){if(t||(t=o.Promise||Promise),!t)throw new Error(\"no Promise impl found\");return t}const b=(()=>{function t(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return t.prototype=Object.create(Error.prototype),t})();class w extends h{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}class C extends p{constructor(t){super(t),this.destination=t}}let E=(()=>{class t extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(t){const e=new x(this,this);return e.operator=t,e}next(t){if(this.closed)throw new b;if(!this.isStopped){const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].next(t)}}error(t){if(this.closed)throw new b;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].error(t);this.observers.length=0}complete(){if(this.closed)throw new b;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let r=0;r<e;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new b;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new b;return this.hasError?(t.error(this.thrownError),h.EMPTY):this.isStopped?(t.complete(),h.EMPTY):(this.observers.push(t),new w(this,t))}asObservable(){const t=new g;return t.source=this,t}}return t.create=(t,e)=>new x(t,e),t})();class x extends E{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):h.EMPTY}}class k{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new T(t,this.project,this.thisArg))}}class T extends p{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}const S=t=>e=>{for(let n=0,r=t.length;n<r&&!e.closed;n++)e.next(t[n]);e.complete()};function I(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const A=I();const O=t=>{if(t&&\"function\"==typeof t[y])return o=t,t=>{const e=o[y]();if(\"function\"!=typeof e.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return e.subscribe(t)};if((e=t)&&\"number\"==typeof e.length&&\"function\"!=typeof e)return S(t);var e,n,r,s,o;if((n=t)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return s=t,t=>(s.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,i),t);if(t&&\"function\"==typeof t[A])return r=t,t=>{const e=r[A]();for(;;){let r;try{r=e.next()}catch(n){return t.error(n),t}if(r.done){t.complete();break}if(t.next(r.value),t.closed)break}return\"function\"==typeof e.return&&t.add(()=>{e.return&&e.return()}),t};{const e=c(t)?\"an invalid object\":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`)}};class D extends p{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class j extends p{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function H(t,e,n=Number.POSITIVE_INFINITY){return\"function\"==typeof e?r=>r.pipe(H((n,r)=>{return(s=t(n,r),s instanceof g?s:new g(O(s))).pipe(function(t,e){return function(e){return e.lift(new k(t,void 0))}}((t,s)=>e(n,t,r,s)));var s},n)):(\"number\"==typeof e&&(n=e),e=>e.lift(new N(t,n)))}class N{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new P(t,this.project,this.concurrent))}}class P extends j{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e)}_innerSub(t){const e=new D(this),n=this.destination;n.add(e);const r=function(t,e){if(!e.closed)return t instanceof g?t.subscribe(e):O(t)(e)}(t,e);r!==e&&n.add(r)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t){this.destination.next(t)}notifyComplete(){const t=this.buffer;this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function R(){return function(t){return t.lift(new M(t))}}class M{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const r=new F(t,n),s=e.subscribe(r);return r.closed||(r.connection=n.connect()),s}}class F extends p{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:n}=this,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new h,t.add(this.source.subscribe(new B(this.getSubject(),this))),t.closed&&(this._connection=null,t=h.EMPTY)),t}refCount(){return R()(this)}}const L=(()=>{const t=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class B extends C{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}function Z(){return new E}function z(t){return{toString:t}.toString()}const $=\"__parameters__\";function U(t,e,n){return z(()=>{const r=function(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}(e);function s(...t){if(this instanceof s)return r.apply(this,t),this;const e=new s(...t);return n.annotation=e,n;function n(t,n,r){const s=t.hasOwnProperty($)?t[$]:Object.defineProperty(t,$,{value:[]})[$];for(;s.length<=r;)s.push(null);return(s[r]=s[r]||[]).push(e),t}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s})}const W=U(\"Inject\",t=>({token:t})),q=U(\"Optional\"),Q=U(\"Self\"),G=U(\"SkipSelf\");function J(t){if(\"string\"==typeof t)return t;if(Array.isArray(t))return\"[\"+t.map(J).join(\", \")+\"]\";if(null==t)return\"\"+t;if(t.overriddenName)return\"\"+t.overriddenName;if(t.name)return\"\"+t.name;const e=t.toString();if(null==e)return\"\"+e;const n=e.indexOf(\"\\n\");return-1===n?e:e.substring(0,n)}function K(t,e){return null==t||\"\"===t?null===e?\"\":e:null==e||\"\"===e?t:t+\" \"+e}function Y(t){for(let e in t)if(t[e]===Y)return e;throw Error(\"Could not find renamed property on target object.\")}function X(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function tt(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function et(t){return nt(t,st)||nt(t,it)}function nt(t,e){return t.hasOwnProperty(e)?t[e]:null}function rt(t){return t&&(t.hasOwnProperty(ot)||t.hasOwnProperty(lt))?t[ot]:null}const st=Y({\"\\u0275prov\":Y}),ot=Y({\"\\u0275inj\":Y}),it=Y({ngInjectableDef:Y}),lt=Y({ngInjectorDef:Y});class ut{constructor(t,e){this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\\u0275prov=X({token:this,providedIn:e.providedIn||\"root\",factory:e.factory}))}toString(){return\"InjectionToken \"+this._desc}}var ct=function(t){return t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\",t}({});const at=\"undefined\"!=typeof globalThis&&globalThis,ht=\"undefined\"!=typeof window&&window,dt=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,ft=\"undefined\"!=typeof global&&global,pt=at||ft||ht||dt,_t=Y({__forward_ref__:Y});function yt(t){return t.__forward_ref__=yt,t.toString=function(){return J(this())},t}function mt(t){return\"function\"==typeof(e=t)&&e.hasOwnProperty(_t)&&e.__forward_ref__===yt?t():t;var e}function gt(t,e){t.forEach(t=>Array.isArray(t)?gt(t,e):e(t))}var vt=function(t){return t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\",t}({});const bt={},wt=[],Ct=Y({\"\\u0275cmp\":Y}),Et=Y({\"\\u0275dir\":Y}),xt=Y({\"\\u0275pipe\":Y}),kt=Y({\"\\u0275mod\":Y}),Tt=Y({\"\\u0275loc\":Y}),St=Y({\"\\u0275fac\":Y}),It=Y({__NG_ELEMENT_ID__:Y});let At=0;function Ot(t){return Pt(t)||function(t){return t[Et]||null}(t)}function Dt(t){return function(t){return t[xt]||null}(t)}const jt={};function Ht(t){const e={type:t.type,bootstrap:t.bootstrap||wt,declarations:t.declarations||wt,imports:t.imports||wt,exports:t.exports||wt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&z(()=>{jt[t.id]=t.type}),e}function Nt(t,e){if(null==t)return bt;const n={};for(const r in t)if(t.hasOwnProperty(r)){let s=t[r],o=s;Array.isArray(s)&&(o=s[1],s=s[0]),n[s]=r,e&&(e[s]=o)}return n}function Pt(t){return t[Ct]||null}function Rt(t,e){const n=t[kt]||null;if(!n&&!0===e)throw new Error(`Type ${J(t)} does not have '\\u0275mod' property.`);return n}function Mt(t){return\"function\"==typeof t?t.name||t.toString():\"object\"==typeof t&&null!=t&&\"function\"==typeof t.type?t.type.name||t.type.toString():function(t){return\"string\"==typeof t?t:null==t?\"\":\"\"+t}(t)}var Ft=function(t){return t[t.Default=0]=\"Default\",t[t.Host=1]=\"Host\",t[t.Self=2]=\"Self\",t[t.SkipSelf=4]=\"SkipSelf\",t[t.Optional=8]=\"Optional\",t}({});let Vt;function Lt(t){const e=Vt;return Vt=t,e}function Bt(t,e,n){const r=et(t);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Ft.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${J(t)}]`)}const Zt={},zt=/\\n/gm,$t=\"__source\",Ut=Y({provide:String,useValue:Y});let Wt=void 0;function qt(t){const e=Wt;return Wt=t,e}function Qt(t,e=Ft.Default){if(void 0===Wt)throw new Error(\"inject() must be called from an injection context\");return null===Wt?Bt(t,void 0,e):Wt.get(t,e&Ft.Optional?null:void 0,e)}function Gt(t,e=Ft.Default){return(Vt||Qt)(mt(t),e)}function Jt(t){const e=[];for(let n=0;n<t.length;n++){const r=mt(t[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let t=void 0,n=Ft.Default;for(let e=0;e<r.length;e++){const s=r[e];s instanceof q||\"Optional\"===s.ngMetadataName||s===q?n|=Ft.Optional:s instanceof G||\"SkipSelf\"===s.ngMetadataName||s===G?n|=Ft.SkipSelf:s instanceof Q||\"Self\"===s.ngMetadataName||s===Q?n|=Ft.Self:t=s instanceof W||s===W?s.token:s}e.push(Gt(t,n))}else e.push(Gt(r))}return e}let Kt=void 0;const Yt=20;function Xt(t){return Array.isArray(t)&&\"object\"==typeof t[1]}function te(t){return Array.isArray(t)&&!0===t[1]}function ee(t){return 0!=(8&t.flags)}function ne(t){return null!==t.template}function re(t){return!!t.listen}const se={createRenderer:(t,e)=>void 0!==Kt?Kt:\"undefined\"!=typeof document?document:void 0};function oe(t){for(;Array.isArray(t);)t=t[0];return t}function ie(t,e){return oe(e[t.index])}function le(t,e){const n=e[t];return Xt(n)?n:n[0]}function ue(t){const e=function(t){return t.__ngContext__||null}(t);return e?Array.isArray(e)?e:e.lView:null}function ce(t){return 128==(128&t[2])}function ae(t,e){return null==e?null:t[e]}function he(t){t[18]=0}function de(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const fe={lFrame:Oe(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function pe(){return fe.bindingsEnabled}function _e(){return fe.lFrame.lView}function ye(){return fe.lFrame.tView}function me(){let t=ge();for(;null!==t&&64===t.type;)t=t.parent;return t}function ge(){return fe.lFrame.currentTNode}function ve(t,e){const n=fe.lFrame;n.currentTNode=t,n.isParent=e}function be(){return fe.lFrame.isParent}function we(){return fe.isInCheckNoChangesMode}function Ce(t){fe.isInCheckNoChangesMode=t}function Ee(t,e){const n=fe.lFrame;n.bindingIndex=n.bindingRootIndex=t,xe(e)}function xe(t){fe.lFrame.currentDirectiveIndex=t}function ke(t){fe.lFrame.currentQueryIndex=t}function Te(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function Se(t,e,n){if(n&Ft.SkipSelf){let r=e,s=t;for(;r=r.parent,!(null!==r||n&Ft.Host||(r=Te(s),null===r)||(s=s[15],10&r.type)););if(null===r)return!1;e=r,t=s}const r=fe.lFrame=Ae();return r.currentTNode=e,r.lView=t,!0}function Ie(t){const e=Ae(),n=t[1];fe.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function Ae(){const t=fe.lFrame,e=null===t?null:t.child;return null===e?Oe(t):e}function Oe(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function De(){const t=fe.lFrame;return fe.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const je=De;function He(){const t=De();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Ne(t){fe.lFrame.selectedIndex=t}let Pe=!0,Re=!1;function Me(){return Re=!0,Pe}function Fe(t,e){return t.hasOwnProperty(St)?t[St]:null}class Ve extends Error{constructor(t,e){super(function(t,e){return`${t?`NG0${t}: `:\"\"}${e}`}(t,e)),this.code=t}}function Le(t,e){const n=e?\" in \"+e:\"\";throw new Ve(\"201\",`No provider for ${Mt(t)} found${n}`)}class Be{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function Ze(){const t=$e(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===bt)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}}function ze(t,e,n,r){const s=$e(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:bt,current:null}),o=s.current||(s.current={}),i=s.previous,l=this.declaredInputs[n],u=i[l];o[l]=new Be(u&&u.currentValue,e,i===bt),t[r]=e}function $e(t){return t.__ngSimpleChanges__||null}function Ue(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n<r;n++){const e=t.data[n].type.prototype,{ngAfterContentInit:r,ngAfterContentChecked:s,ngAfterViewInit:o,ngAfterViewChecked:i,ngOnDestroy:l}=e;r&&(t.contentHooks||(t.contentHooks=[])).push(-n,r),s&&((t.contentHooks||(t.contentHooks=[])).push(n,s),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,s)),o&&(t.viewHooks||(t.viewHooks=[])).push(-n,o),i&&((t.viewHooks||(t.viewHooks=[])).push(n,i),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,i)),null!=l&&(t.destroyHooks||(t.destroyHooks=[])).push(n,l)}}function We(t,e,n){Ge(t,e,3,n)}function qe(t,e,n,r){(3&t[2])===n&&Ge(t,e,n,r)}function Qe(t,e){let n=t[2];(3&n)===e&&(n&=2047,n+=1,t[2]=n)}function Ge(t,e,n,r){const s=null!=r?r:-1;let o=0;for(let i=void 0!==r?65535&t[18]:0;i<e.length;i++)if(\"number\"==typeof e[i+1]){if(o=e[i],null!=r&&o>=r)break}else e[i]<0&&(t[18]+=65536),(o<s||-1==s)&&(Je(t,n,e,i),t[18]=(4294901760&t[18])+i+2),i++}function Je(t,e,n,r){const s=n[r]<0,o=n[r+1],i=t[s?-n[r]:n[r]];s?t[2]>>11<t[18]>>16&&(3&t[2])===e&&(t[2]+=2048,o.call(i)):o.call(i)}const Ke=-1;class Ye{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}function Xe(t,e,n){const r=re(t);let s=0;for(;s<n.length;){const o=n[s];if(\"number\"==typeof o){if(0!==o)break;s++;const i=n[s++],l=n[s++],u=n[s++];r?t.setAttribute(e,l,u,i):e.setAttributeNS(i,l,u)}else{const i=o,l=n[++s];64===i.charCodeAt(0)?r&&t.setProperty(e,i,l):r?t.setAttribute(e,i,l):e.setAttribute(i,l),s++}}return s}function tn(t,e){if(null===e||0===e.length);else if(null===t||0===t.length)t=e.slice();else{let n=-1;for(let r=0;r<e.length;r++){const s=e[r];\"number\"==typeof s?n=s:0===n||en(t,n,s,null,-1===n||2===n?e[++r]:null)}}return t}function en(t,e,n,r,s){let o=0,i=t.length;if(-1===e)i=-1;else for(;o<t.length;){const n=t[o++];if(\"number\"==typeof n){if(n===e){i=-1;break}if(n>e){i=o-1;break}}}for(;o<t.length;){const e=t[o];if(\"number\"==typeof e)break;if(e===n){if(null===r)return void(null!==s&&(t[o+1]=s));if(r===t[o+1])return void(t[o+2]=s)}o++,null!==r&&o++,null!==s&&o++}-1!==i&&(t.splice(i,0,e),o=i+1),t.splice(o++,0,n),null!==r&&t.splice(o++,0,r),null!==s&&t.splice(o++,0,s)}function nn(t){return 32767&t}function rn(t,e){let n=t>>16,r=e;for(;n>0;)r=r[15],n--;return r}let sn=!0;function on(t){const e=sn;return sn=t,e}let ln=0;function un(t,e){const n=an(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,cn(r.data,t),cn(e,null),cn(r.blueprint,null));const s=hn(t,e),o=t.injectorIndex;if(s!==Ke){const t=nn(s),n=rn(s,e),r=n[1].data;for(let s=0;s<8;s++)e[o+s]=n[t+s]|r[t+s]}return e[o+8]=s,o}function cn(t,e){t.push(0,0,0,0,0,0,0,0,e)}function an(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function hn(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,s=e;for(;null!==s;){const t=s[1],e=t.type;if(r=2===e?t.declTNode:1===e?s[6]:null,null===r)return Ke;if(n++,s=s[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return Ke}function dn(t,e,n){!function(t,e,n){let r;\"string\"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(It)&&(r=n[It]),null==r&&(r=n[It]=ln++);const s=255&r,o=1<<s,i=64&s,l=32&s,u=e.data;128&s?i?l?u[t+7]|=o:u[t+6]|=o:l?u[t+5]|=o:u[t+4]|=o:i?l?u[t+3]|=o:u[t+2]|=o:l?u[t+1]|=o:u[t]|=o}(t,e,n)}function fn(t,e,n){if(n&Ft.Optional)return t;Le(e,\"NodeInjector\")}function pn(t,e,n,r){if(n&Ft.Optional&&void 0===r&&(r=null),0==(n&(Ft.Self|Ft.Host))){const s=t[9],o=Lt(void 0);try{return s?s.get(e,r,n&Ft.Optional):Bt(e,r,n&Ft.Optional)}finally{Lt(o)}}return fn(r,e,n)}const _n={};function yn(){return new wn(me(),_e())}function mn(t,e,n,r,s,o){const i=e[1],l=i.data[t+8],u=function(t,e,n,r,s){const o=t.providerIndexes,i=e.data,l=1048575&o,u=t.directiveStart,c=o>>20,a=s?l+c:t.directiveEnd;for(let h=r?l:l+c;h<a;h++){const t=i[h];if(h<u&&n===t||h>=u&&t.type===n)return h}if(s){const t=i[u];if(t&&ne(t)&&t.type===n)return u}return null}(l,i,n,null==r?function(t){return 2==(2&t.flags)}(l)&&sn:r!=i&&0!=(3&l.type),s&Ft.Host&&o===l);return null!==u?gn(e,i,u,l):_n}function gn(t,e,n,r){let s=t[n];const o=e.data;if(s instanceof Ye){const i=s;i.resolving&&function(t,e){throw new Ve(\"200\",\"Circular dependency in DI detected for \"+t)}(Mt(o[n]));const l=on(i.canSeeViewProviders);i.resolving=!0;const u=i.injectImpl?Lt(i.injectImpl):null;Se(t,r,Ft.Default);try{s=t[n]=i.factory(void 0,o,t,r),e.firstCreatePass&&n>=r.directiveStart&&function(t,e,n){const{ngOnChanges:r,ngOnInit:s,ngDoCheck:o}=e.type.prototype;if(r){const r=((i=e).type.prototype.ngOnChanges&&(i.setInput=ze),Ze);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,r)}var i;s&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,s),o&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,o))}(n,o[n],e)}finally{null!==u&&Lt(u),on(l),i.resolving=!1,je()}}return s}function vn(t,e,n){const r=64&t,s=32&t;let o;return o=128&t?r?s?n[e+7]:n[e+6]:s?n[e+5]:n[e+4]:r?s?n[e+3]:n[e+2]:s?n[e+1]:n[e],!!(o&1<<t)}function bn(t,e){return!(t&Ft.Self||t&Ft.Host&&e)}class wn{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return function(t,e,n,r=Ft.Default,s){if(null!==t){const o=function(t){if(\"string\"==typeof t)return t.charCodeAt(0)||0;const e=t.hasOwnProperty(It)?t[It]:void 0;return\"number\"==typeof e?e>=0?255&e:yn:e}(n);if(\"function\"==typeof o){if(!Se(e,t,r))return r&Ft.Host?fn(s,n,r):pn(e,n,r,s);try{const t=o();if(null!=t||r&Ft.Optional)return t;Le(n)}finally{je()}}else if(\"number\"==typeof o){let s=null,i=an(t,e),l=Ke,u=r&Ft.Host?e[16][6]:null;for((-1===i||r&Ft.SkipSelf)&&(l=-1===i?hn(t,e):e[i+8],l!==Ke&&bn(r,!1)?(s=e[1],i=nn(l),e=rn(l,e)):i=-1);-1!==i;){const t=e[1];if(vn(o,i,t.data)){const t=mn(i,e,n,s,r,u);if(t!==_n)return t}l=e[i+8],l!==Ke&&bn(r,e[1].data[i+8]===u)&&vn(o,i,e)?(s=t,i=nn(l),e=rn(l,e)):i=-1}}}return pn(e,n,r,s)}(this._tNode,this._lView,t,void 0,e)}}function Cn(t){return t.ngDebugContext}function En(t){return t.ngOriginalError}function xn(t,...e){t.error(...e)}class kn{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),r=function(t){return t.ngErrorLogger||xn}(t);r(this._console,\"ERROR\",t),e&&r(this._console,\"ORIGINAL ERROR\",e),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(t){return t?Cn(t)?Cn(t):this._findContext(En(t)):null}_findOriginalError(t){let e=En(t);for(;e&&En(e);)e=En(e);return e}}function Tn(t,e){t.__ngContext__=e}const Sn=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(pt))();function In(t){return t instanceof Function?t():t}var An=function(t){return t[t.Important=1]=\"Important\",t[t.DashCase=2]=\"DashCase\",t}({});function On(t,e){return(void 0)(t,e)}function Dn(t){const e=t[3];return te(e)?e[3]:e}function jn(t){return Nn(t[13])}function Hn(t){return Nn(t[4])}function Nn(t){for(;null!==t&&!te(t);)t=t[4];return t}function Pn(t,e,n,r,s){if(null!=r){let o,i=!1;te(r)?o=r:Xt(r)&&(i=!0,r=r[0]);const l=oe(r);0===t&&null!==n?null==s?Vn(e,n,l):Fn(e,n,l,s||null,!0):1===t&&null!==n?Fn(e,n,l,s||null,!0):2===t?function(t,e,n){const r=function(t,e){return re(t)?t.parentNode(e):e.parentNode}(t,e);r&&function(t,e,n,r){re(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,l,i):3===t&&e.destroyNode(l),null!=o&&function(t,e,n,r,s){const o=n[7];o!==oe(n)&&Pn(e,t,r,o,s);for(let i=10;i<n.length;i++){const s=n[i];zn(s[1],s,t,e,r,o)}}(e,t,o,n,s)}}function Rn(t,e,n){return re(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Mn(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r<n.length;r+=2){const t=e[n[r]];if(!(t instanceof Ye)){const e=n[r+1];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)e[n+1].call(t[e[n]]);else e.call(t)}}}(t,e),function(t,e){const n=t.cleanup;if(null!==n){const t=e[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const s=n[r+1],o=\"function\"==typeof s?s(e):oe(e[s]),i=t[n[r+2]],l=n[r+3];\"boolean\"==typeof l?o.removeEventListener(n[r],i,l):l>=0?t[l]():t[-l].unsubscribe(),r+=2}else n[r].call(t[n[r+1]]);e[7]=null}}(t,e),1===e[1].type&&re(e[11])&&e[11].destroy();const n=e[17];if(null!==n&&te(e[3])){n!==e[3]&&function(t,e){const n=t[9],r=n.indexOf(e),s=e[3];1024&e[2]&&(e[2]&=-1025,de(s,-1)),n.splice(r,1)}(n,e);const r=e[19];null!==r&&r.detachView(t)}}}function Fn(t,e,n,r,s){re(t)?t.insertBefore(e,n,r,s):e.insertBefore(n,r,s)}function Vn(t,e,n){re(t)?t.appendChild(e,n):e.appendChild(n)}function Ln(t,e,n,r,s){null!==r?Fn(t,e,n,r,s):Vn(t,e,n)}function Bn(t,e,n,r){const s=function(t,e,n){return function(t,e,n){let r=e;for(;null!==r&&40&r.type;)r=(e=r).parent;if(null===r)return n[0];if(2&r.flags){const e=t.data[r.directiveStart].encapsulation;if(e===vt.None||e===vt.Emulated)return null}return ie(r,n)}(t,e.parent,n)}(t,r,e),o=e[11],i=function(t,e,n){return function(t,e,n){return 40&t.type?ie(t,n):null}(t,0,n)}(r.parent||e[6],0,e);if(null!=s)if(Array.isArray(n))for(let l=0;l<n.length;l++)Ln(o,s,n[l],i,!1);else Ln(o,s,n,i,!1)}function Zn(t,e,n,r,s,o,i){for(;null!=n;){const l=r[n.index],u=n.type;if(i&&0===e&&(l&&Tn(oe(l),r),n.flags|=4),64!=(64&n.flags))if(8&u)Zn(t,e,n.child,r,s,o,!1),Pn(e,t,s,l,o);else if(32&u){const i=On(n,r);let u;for(;u=i();)Pn(e,t,s,u,o);Pn(e,t,s,l,o)}else 16&u?$n(t,e,r,n,s,o):Pn(e,t,s,l,o);n=i?n.projectionNext:n.next}}function zn(t,e,n,r,s,o){Zn(n,r,t.firstChild,e,s,o,!1)}function $n(t,e,n,r,s,o){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)Pn(e,t,s,l[u],o);else Zn(t,e,l,i[3],s,o,!0)}function Un(t,e,n){re(t)?t.setAttribute(e,\"style\",n):e.style.cssText=n}function Wn(t,e,n){re(t)?\"\"===n?t.removeAttribute(e,\"class\"):t.setAttribute(e,\"class\",n):e.className=n}function qn(t,e,n){let r=t.length;for(;;){const s=t.indexOf(e,n);if(-1===s)return s;if(0===s||t.charCodeAt(s-1)<=32){const n=e.length;if(s+n===r||t.charCodeAt(s+n)<=32)return s}n=s+1}}const Qn=\"ng-template\";function Gn(t,e,n){let r=0;for(;r<t.length;){let s=t[r++];if(n&&\"class\"===s){if(s=t[r],-1!==qn(s.toLowerCase(),e,0))return!0}else if(1===s){for(;r<t.length&&\"string\"==typeof(s=t[r++]);)if(s.toLowerCase()===e)return!0;return!1}}return!1}function Jn(t){return 4===t.type&&t.value!==Qn}function Kn(t,e,n){return e===(4!==t.type||n?t.value:Qn)}function Yn(t,e,n){let r=4;const s=t.attrs||[],o=function(t){for(let n=0;n<t.length;n++)if(3===(e=t[n])||4===e||6===e)return n;var e;return t.length}(s);let i=!1;for(let l=0;l<e.length;l++){const u=e[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!Kn(t,u,n)||\"\"===u&&1===e.length){if(Xn(r))return!1;i=!0}}else{const c=8&r?u:e[++l];if(8&r&&null!==t.attrs){if(!Gn(t.attrs,c,n)){if(Xn(r))return!1;i=!0}continue}const a=tr(8&r?\"class\":u,s,Jn(t),n);if(-1===a){if(Xn(r))return!1;i=!0;continue}if(\"\"!==c){let t;t=a>o?\"\":s[a+1].toLowerCase();const e=8&r?t:null;if(e&&-1!==qn(e,c,0)||2&r&&c!==t){if(Xn(r))return!1;i=!0}}}}else{if(!i&&!Xn(r)&&!Xn(u))return!1;if(i&&Xn(u))continue;i=!1,r=u|1&r}}return Xn(r)||i}function Xn(t){return 0==(1&t)}function tr(t,e,n,r){if(null===e)return-1;let s=0;if(r||!n){let n=!1;for(;s<e.length;){const r=e[s];if(r===t)return s;if(3===r||6===r)n=!0;else{if(1===r||2===r){let t=e[++s];for(;\"string\"==typeof t;)t=e[++s];continue}if(4===r)break;if(0===r){s+=4;continue}}s+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){const r=t[n];if(\"number\"==typeof r)return-1;if(r===e)return n;n++}return-1}(e,t)}function er(t,e,n=!1){for(let r=0;r<e.length;r++)if(Yn(t,e[r],n))return!0;return!1}function nr(t,e){return t?\":not(\"+e.trim()+\")\":e}function rr(t){let e=t[0],n=1,r=2,s=\"\",o=!1;for(;n<t.length;){let i=t[n];if(\"string\"==typeof i)if(2&r){const e=t[++n];s+=\"[\"+i+(e.length>0?'=\"'+e+'\"':\"\")+\"]\"}else 8&r?s+=\".\"+i:4&r&&(s+=\" \"+i);else\"\"===s||Xn(i)||(e+=nr(o,s),s=\"\"),r=i,o=o||!Xn(r);n++}return\"\"!==s&&(e+=nr(o,s)),e}const sr={};function or(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const s=n[r],o=n[r+1];if(-1!==o){const n=t.data[o];ke(s),n.contentQueries(2,e[o],o)}}}function ir(t,e,n,r,s,o,i,l,u,c){const a=e.blueprint.slice();return a[0]=s,a[2]=140|r,he(a),a[3]=a[15]=t,a[8]=n,a[10]=i||t&&t[10],a[11]=l||t&&t[11],a[12]=u||t&&t[12]||null,a[9]=c||t&&t[9]||null,a[6]=o,a[16]=2==e.type?t[16]:a,a}function lr(t,e,n,r,s){let o=t.data[e];if(null===o)o=function(t,e,n,r,s){const o=ge(),i=be(),l=t.data[e]=function(t,e,n,r,s,o){return{type:n,index:r,insertBeforeIndex:null,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:s,attrs:o,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,i?o:o&&o.parent,n,e,r,s);return null===t.firstChild&&(t.firstChild=l),null!==o&&(i?null==o.child&&null!==l.parent&&(o.child=l):null===o.next&&(o.next=l)),l}(t,e,n,r,s),fe.lFrame.inI18n&&(o.flags|=64);else if(64&o.type){o.type=n,o.value=r,o.attrs=s;const t=function(){const t=fe.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}();o.injectorIndex=null===t?-1:t.injectorIndex}return ve(o,!0),o}function ur(t,e,n,r){if(0===n)return-1;const s=e.length;for(let o=0;o<n;o++)e.push(r),t.blueprint.push(r),t.data.push(null);return s}function cr(t,e,n){Ie(e);try{const r=t.viewQuery;null!==r&&Dr(1,r,n);const s=t.template;null!==s&&dr(t,e,s,1,n),t.firstCreatePass&&(t.firstCreatePass=!1),t.staticContentQueries&&or(t,e),t.staticViewQueries&&Dr(2,t.viewQuery,n);const o=t.components;null!==o&&function(t,e){for(let n=0;n<e.length;n++)Sr(t,e[n])}(e,o)}catch(r){throw t.firstCreatePass&&(t.incompleteFirstPass=!0),r}finally{e[2]&=-5,He()}}function ar(t,e,n,r){const s=e[2];if(256==(256&s))return;Ie(e);const o=we();try{he(e),fe.lFrame.bindingIndex=t.bindingStartIndex,null!==n&&dr(t,e,n,2,r);const i=3==(3&s);if(!o)if(i){const n=t.preOrderCheckHooks;null!==n&&We(e,n,null)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,null),Qe(e,0)}if(function(t){for(let e=jn(t);null!==e;e=Hn(e)){if(!e[2])continue;const t=e[9];for(let e=0;e<t.length;e++){const n=t[e],r=n[3];0==(1024&n[2])&&de(r,1),n[2]|=1024}}}(e),function(t){for(let e=jn(t);null!==e;e=Hn(e))for(let t=10;t<e.length;t++){const n=e[t],r=n[1];ce(n)&&ar(r,n,r.template,n[8])}}(e),null!==t.contentQueries&&or(t,e),!o)if(i){const n=t.contentCheckHooks;null!==n&&We(e,n)}else{const n=t.contentHooks;null!==n&&qe(e,n,1),Qe(e,1)}!function(t,e){const n=t.hostBindingOpCodes;if(null!==n)try{for(let t=0;t<n.length;t++){const r=n[t];if(r<0)Ne(~r);else{const s=r,o=n[++t],i=n[++t];Ee(o,s),i(2,e[s])}}}finally{Ne(-1)}}(t,e);const l=t.components;null!==l&&function(t,e){for(let n=0;n<e.length;n++)kr(t,e[n])}(e,l);const u=t.viewQuery;if(null!==u&&Dr(2,u,r),!o)if(i){const n=t.viewCheckHooks;null!==n&&We(e,n)}else{const n=t.viewHooks;null!==n&&qe(e,n,2),Qe(e,2)}!0===t.firstUpdatePass&&(t.firstUpdatePass=!1),o||(e[2]&=-73),1024&e[2]&&(e[2]&=-1025,de(e[3],-1))}finally{He()}}function hr(t,e,n,r){const s=e[10],o=!we(),i=4==(4&e[2]);try{o&&!i&&s.begin&&s.begin(),i&&cr(t,e,r),ar(t,e,n,r)}finally{o&&!i&&s.end&&s.end()}}function dr(t,e,n,r,s){const o=fe.lFrame.selectedIndex;try{Ne(-1),2&r&&e.length>Yt&&function(t,e,n,r){if(!r)if(3==(3&e[2])){const n=t.preOrderCheckHooks;null!==n&&We(e,n,20)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,20)}Ne(20)}(t,e,0,we()),n(r,s)}finally{Ne(o)}}function fr(t){const e=t.tView;return null===e||e.incompleteFirstPass?t.tView=pr(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts):e}function pr(t,e,n,r,s,o,i,l,u,c){const a=Yt+r,h=a+s,d=function(t,e){const n=[];for(let r=0;r<e;r++)n.push(r<t?null:sr);return n}(a,h),f=\"function\"==typeof c?c():c;return d[1]={type:t,blueprint:d,template:n,queries:null,viewQuery:l,declTNode:e,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof o?o():o,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:f,incompleteFirstPass:!1}}function _r(t,e,n){for(let r in t)if(t.hasOwnProperty(r)){const s=t[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(e,s):n[r]=[e,s]}return n}function yr(t,e,n,r,s,o){const i=o.hostBindings;if(i){let n=t.hostBindingOpCodes;null===n&&(n=t.hostBindingOpCodes=[]);const o=~e.index;(function(t){let e=t.length;for(;e>0;){const n=t[--e];if(\"number\"==typeof n&&n<0)return n}return 0})(n)!=o&&n.push(o),n.push(r,s,i)}}function mr(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function gr(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function vr(t,e,n){if(n){if(e.exportAs)for(let r=0;r<e.exportAs.length;r++)n[e.exportAs[r]]=t;ne(e)&&(n[\"\"]=t)}}function br(t,e,n){t.flags|=1,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function wr(t,e,n,r,s){t.data[r]=s;const o=s.factory||(s.factory=Fe(s.type)),i=new Ye(o,ne(s),null);t.blueprint[r]=i,n[r]=i,yr(t,e,0,r,ur(t,n,s.hostVars,sr),s)}function Cr(t,e,n){const r=ie(e,t),s=fr(n),o=t[10],i=Ir(t,ir(t,s,null,n.onPush?64:16,r,e,o,o.createRenderer(r,n),null,null));t[e.index]=i}function Er(t,e,n,r,s,o){const i=o[e];if(null!==i){const t=r.setInput;for(let e=0;e<i.length;){const s=i[e++],o=i[e++],l=i[e++];null!==t?r.setInput(n,l,s,o):n[o]=l}}}function xr(t,e){let n=null,r=0;for(;r<e.length;){const s=e[r];if(0!==s)if(5!==s){if(\"number\"==typeof s)break;t.hasOwnProperty(s)&&(null===n&&(n=[]),n.push(s,t[s],e[r+1])),r+=2}else r+=2;else r+=4}return n}function kr(t,e){const n=le(e,t);if(ce(n)){const t=n[1];80&n[2]?ar(t,n,t.template,n[8]):n[5]>0&&Tr(n)}}function Tr(t){for(let n=jn(t);null!==n;n=Hn(n))for(let t=10;t<n.length;t++){const e=n[t];if(1024&e[2]){const t=e[1];ar(t,e,t.template,e[8])}else e[5]>0&&Tr(e)}const e=t[1].components;if(null!==e)for(let n=0;n<e.length;n++){const r=le(e[n],t);ce(r)&&r[5]>0&&Tr(r)}}function Sr(t,e){const n=le(e,t),r=n[1];!function(t,e){for(let n=e.length;n<t.blueprint.length;n++)e.push(t.blueprint[n])}(r,n),cr(r,n,n[8])}function Ir(t,e){return t[13]?t[14][4]=e:t[13]=e,t[14]=e,e}function Ar(t,e,n){const r=e[10];r.begin&&r.begin();try{ar(t,e,t.template,n)}catch(s){throw function(t,e){const n=t[9],r=n?n.get(kn,null):null;r&&r.handleError(e)}(e,s),s}finally{r.end&&r.end()}}function Or(t){!function(t){for(let e=0;e<t.components.length;e++){const n=t.components[e],r=ue(n),s=r[1];hr(s,r,s.template,n)}}(t[8])}function Dr(t,e,n){ke(0),e(t,n)}const jr=(()=>Promise.resolve(null))();function Hr(t,e,n){let r=n?t.styles:null,s=n?t.classes:null,o=0;if(null!==e)for(let i=0;i<e.length;i++){const t=e[i];\"number\"==typeof t?o=t:1==o?s=K(s,t):2==o&&(r=K(r,t+\": \"+e[++i]+\";\"))}n?t.styles=r:t.stylesWithoutHost=r,n?t.classes=s:t.classesWithoutHost=s}const Nr=new ut(\"INJECTOR\",-1);class Pr{get(t,e=Zt){if(e===Zt){const e=new Error(`NullInjectorError: No provider for ${J(t)}!`);throw e.name=\"NullInjectorError\",e}return e}}const Rr=new ut(\"Set Injector scope.\"),Mr={},Fr={},Vr=[];let Lr=void 0;function Br(){return void 0===Lr&&(Lr=new Pr),Lr}function Zr(t,e=null,n=null,r){return new zr(t,n,e||Br(),r)}class zr{constructor(t,e,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];e&&gt(e,n=>this.processProvider(n,t,e)),gt([t],t=>this.processInjectorType(t,[],s)),this.records.set(Nr,Ur(void 0,this));const o=this.records.get(Rr);this.scope=null!=o?o.value:null,this.source=r||(\"object\"==typeof t?null:J(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Zt,n=Ft.Default){this.assertNotDestroyed();const r=qt(this);try{if(!(n&Ft.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=(\"function\"==typeof(s=t)||\"object\"==typeof s&&s instanceof ut)&&et(t);e=n&&this.injectableDefInScope(n)?Ur($r(t),Mr):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(n&Ft.Self?Br():this.parent).get(t,e=n&Ft.Optional&&e===Zt?null:e)}catch(o){if(\"NullInjectorError\"===o.name){if((o.ngTempTokenPath=o.ngTempTokenPath||[]).unshift(J(t)),r)throw o;return function(t,e,n,r){const s=t.ngTempTokenPath;throw e[$t]&&s.unshift(e[$t]),t.message=function(t,e,n,r=null){t=t&&\"\\n\"===t.charAt(0)&&\"\\u0275\"==t.charAt(1)?t.substr(2):t;let s=J(e);if(Array.isArray(e))s=e.map(J).join(\" -> \");else if(\"object\"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];t.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):J(r)))}s=`{${t.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${s}]: ${t.replace(zt,\"\\n  \")}`}(\"\\n\"+t.message,s,n,r),t.ngTokenPath=s,t.ngTempTokenPath=null,t}(o,t,\"R3InjectorError\",this.source)}throw o}finally{qt(r)}var s}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((e,n)=>t.push(J(n))),`R3Injector[${t.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(t,e,n){if(!(t=mt(t)))return!1;let r=rt(t);const s=null==r&&t.ngModule||void 0,o=void 0===s?t:s,i=-1!==n.indexOf(o);if(void 0!==s&&(r=rt(s)),null==r)return!1;if(null!=r.imports&&!i){let t;n.push(o);try{gt(r.imports,r=>{this.processInjectorType(r,e,n)&&(void 0===t&&(t=[]),t.push(r))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:r}=t[e];gt(r,t=>this.processProvider(t,n,r||Vr))}}this.injectorDefTypes.add(o),this.records.set(o,Ur(r.factory,Mr));const l=r.providers;if(null!=l&&!i){const e=t;gt(l,t=>this.processProvider(t,e,l))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,n){let r=qr(t=mt(t))?t:mt(t&&t.provide);const s=function(t,e,n){return Wr(t)?Ur(void 0,t.useValue):Ur(function(t,e,n){let r=void 0;if(qr(t)){const e=mt(t);return Fe(e)||$r(e)}if(Wr(t))r=()=>mt(t.useValue);else if((s=t)&&s.useFactory)r=()=>t.useFactory(...Jt(t.deps||[]));else if(function(t){return!(!t||!t.useExisting)}(t))r=()=>Gt(mt(t.useExisting));else{const e=mt(t&&(t.useClass||t.provide));if(!function(t){return!!t.deps}(t))return Fe(e)||$r(e);r=()=>new e(...Jt(t.deps))}var s;return r}(t),Mr)}(t);if(qr(t)||!0!==t.multi)this.records.get(r);else{let e=this.records.get(r);e||(e=Ur(void 0,Mr,!0),e.factory=()=>Jt(e.multi),this.records.set(r,e)),r=t,e.multi.push(t)}this.records.set(r,s)}hydrate(t,e){var n;return e.value===Mr&&(e.value=Fr,e.value=e.factory()),\"object\"==typeof e.value&&e.value&&null!==(n=e.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&(\"string\"==typeof t.providedIn?\"any\"===t.providedIn||t.providedIn===this.scope:this.injectorDefTypes.has(t.providedIn))}}function $r(t){const e=et(t),n=null!==e?e.factory:Fe(t);if(null!==n)return n;const r=rt(t);if(null!==r)return r.factory;if(t instanceof ut)throw new Error(`Token ${J(t)} is missing a \\u0275prov definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=function(t,e){const n=[];for(let r=0;r<t;r++)n.push(\"?\");return n}(e);throw new Error(`Can't resolve all parameters for ${J(t)}: (${n.join(\", \")}).`)}const n=function(t){const e=t&&(t[st]||t[it]);if(e){const n=function(t){if(t.hasOwnProperty(\"name\"))return t.name;const e=(\"\"+t).match(/^function\\s*([^\\s(]+)/);return null===e?\"\":e[1]}(t);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\nThis will become an error in a future version of Angular. Please add @Injectable() to the \"${n}\" class.`),e}return null}(t);return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error(\"unreachable\")}function Ur(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Wr(t){return null!==t&&\"object\"==typeof t&&Ut in t}function qr(t){return\"function\"==typeof t}const Qr=function(t,e,n){return function(t,e=null,n=null,r){const s=Zr(t,e,n,r);return s._resolveInjectorDefTypes(),s}({name:n},e,t,n)};let Gr=(()=>{class t{static create(t,e){return Array.isArray(t)?Qr(t,e,\"\"):Qr(t.providers,t.parent,t.name||\"\")}}return t.THROW_IF_NOT_FOUND=Zt,t.NULL=new Pr,t.\\u0275prov=X({token:t,providedIn:\"any\",factory:()=>Gt(Nr)}),t.__NG_ELEMENT_ID__=-1,t})();function Jr(t,e){Ue(ue(t)[1],me())}let Kr=null;function Yr(){if(!Kr){const t=pt.Symbol;if(t&&t.iterator)Kr=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Kr=n)}}}return Kr}function Xr(t){return!!ts(t)&&(Array.isArray(t)||!(t instanceof Map)&&Yr()in t)}function ts(t){return null!==t&&(\"function\"==typeof t||\"object\"==typeof t)}function es(t,e,n,r,s){const o=s?\"class\":\"style\";!function(t,e,n,r,s){for(let o=0;o<n.length;){const i=n[o++],l=n[o++],u=e[i],c=t.data[i];null!==c.setInput?c.setInput(u,s,r,l):u[l]=s}}(t,n,e.inputs[o],o,r)}function ns(t,e,n,r){const s=_e(),o=ye(),i=Yt+t,l=s[11],u=s[i]=Rn(l,e,fe.lFrame.currentNamespace),c=o.firstCreatePass?function(t,e,n,r,s,o,i){const l=e.consts,u=lr(e,t,2,s,ae(l,o));return function(t,e,n,r){let s=!1;if(pe()){const o=function(t,e,n){const r=t.directiveRegistry;let s=null;if(r)for(let o=0;o<r.length;o++){const i=r[o];er(n,i.selectors,!1)&&(s||(s=[]),dn(un(n,e),t,i.type),ne(i)?(gr(t,n),s.unshift(i)):s.push(i))}return s}(t,e,n),i=null===r?null:{\"\":-1};if(null!==o){s=!0,br(n,t.data.length,o.length);for(let t=0;t<o.length;t++){const e=o[t];e.providersResolver&&e.providersResolver(e)}let r=!1,l=!1,u=ur(t,e,o.length,null);for(let s=0;s<o.length;s++){const c=o[s];n.mergedAttrs=tn(n.mergedAttrs,c.hostAttrs),wr(t,n,e,u,c),vr(u,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128);const a=c.type.prototype;!r&&(a.ngOnChanges||a.ngOnInit||a.ngDoCheck)&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n.index),r=!0),l||!a.ngOnChanges&&!a.ngDoCheck||((t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n.index),l=!0),u++}!function(t,e){const n=e.directiveEnd,r=t.data,s=e.attrs,o=[];let i=null,l=null;for(let u=e.directiveStart;u<n;u++){const t=r[u],n=t.inputs,c=null===s||Jn(e)?null:xr(n,s);o.push(c),i=_r(n,u,i),l=_r(t.outputs,u,l)}null!==i&&(i.hasOwnProperty(\"class\")&&(e.flags|=16),i.hasOwnProperty(\"style\")&&(e.flags|=32)),e.initialInputs=o,e.inputs=i,e.outputs=l}(t,n)}i&&function(t,e,n){if(e){const r=t.localNames=[];for(let t=0;t<e.length;t+=2){const s=n[e[t+1]];if(null==s)throw new Ve(\"301\",`Export of name '${e[t+1]}' not found!`);r.push(e[t],s)}}}(n,r,i)}n.mergedAttrs=tn(n.mergedAttrs,n.attrs)}(e,n,u,ae(l,i)),null!==u.attrs&&Hr(u,u.attrs,!1),null!==u.mergedAttrs&&Hr(u,u.mergedAttrs,!0),null!==e.queries&&e.queries.elementStart(e,u),u}(i,o,s,0,e,n,r):o.data[i];ve(c,!0);const a=c.mergedAttrs;null!==a&&Xe(l,u,a);const h=c.classes;null!==h&&Wn(l,u,h);const d=c.styles;null!==d&&Un(l,u,d),64!=(64&c.flags)&&Bn(o,s,u,c),0===fe.lFrame.elementDepthCount&&Tn(u,s),fe.lFrame.elementDepthCount++,function(t){return 1==(1&t.flags)}(c)&&(function(t,e,n){pe()&&(function(t,e,n,r){const s=n.directiveStart,o=n.directiveEnd;t.firstCreatePass||un(n,e),Tn(r,e);const i=n.initialInputs;for(let l=s;l<o;l++){const r=t.data[l],o=ne(r);o&&Cr(e,n,r);const u=gn(e,t,l,n);Tn(u,e),null!==i&&Er(0,l-s,u,r,0,i),o&&(le(n.index,e)[8]=u)}}(t,e,n,ie(n,e)),128==(128&n.flags)&&function(t,e,n){const r=n.directiveStart,s=n.directiveEnd,o=n.index,i=fe.lFrame.currentDirectiveIndex;try{Ne(o);for(let n=r;n<s;n++){const r=t.data[n],s=e[n];xe(n),null===r.hostBindings&&0===r.hostVars&&null===r.hostAttrs||mr(r,s)}}finally{Ne(-1),xe(i)}}(t,e,n))}(o,s,c),function(t,e,n){if(ee(e)){const r=e.directiveEnd;for(let s=e.directiveStart;s<r;s++){const e=t.data[s];e.contentQueries&&e.contentQueries(1,n[s],s)}}}(o,c,s)),null!==r&&function(t,e,n=ie){const r=e.localNames;if(null!==r){let s=e.index+1;for(let o=0;o<r.length;o+=2){const i=r[o+1],l=-1===i?n(e,t):t[i];t[s++]=l}}}(s,c)}function rs(t){return!!t&&\"function\"==typeof t.then}const ss=void 0;var os=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],ss],[[\"AM\",\"PM\"],ss,ss],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],ss,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],ss,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",ss,\"{1} 'at' {0}\",ss],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},\"ltr\",function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===e&&0===n?1:5}];let is={};function ls(t){return t in is||(is[t]=pt.ng&&pt.ng.common&&pt.ng.common.locales&&pt.ng.common.locales[t]),is[t]}var us=function(t){return t[t.LocaleId=0]=\"LocaleId\",t[t.DayPeriodsFormat=1]=\"DayPeriodsFormat\",t[t.DayPeriodsStandalone=2]=\"DayPeriodsStandalone\",t[t.DaysFormat=3]=\"DaysFormat\",t[t.DaysStandalone=4]=\"DaysStandalone\",t[t.MonthsFormat=5]=\"MonthsFormat\",t[t.MonthsStandalone=6]=\"MonthsStandalone\",t[t.Eras=7]=\"Eras\",t[t.FirstDayOfWeek=8]=\"FirstDayOfWeek\",t[t.WeekendRange=9]=\"WeekendRange\",t[t.DateFormat=10]=\"DateFormat\",t[t.TimeFormat=11]=\"TimeFormat\",t[t.DateTimeFormat=12]=\"DateTimeFormat\",t[t.NumberSymbols=13]=\"NumberSymbols\",t[t.NumberFormats=14]=\"NumberFormats\",t[t.CurrencyCode=15]=\"CurrencyCode\",t[t.CurrencySymbol=16]=\"CurrencySymbol\",t[t.CurrencyName=17]=\"CurrencyName\",t[t.Currencies=18]=\"Currencies\",t[t.Directionality=19]=\"Directionality\",t[t.PluralCase=20]=\"PluralCase\",t[t.ExtraData=21]=\"ExtraData\",t}({});const cs=\"en-US\";let as=cs;function hs(t){var e,n;n=\"Expected localeId to be defined\",null==(e=t)&&function(t,e,n,r){throw new Error(\"ASSERTION ERROR: \"+t+` [Expected=> null != ${e} <=Actual]`)}(n,e),\"string\"==typeof t&&(as=t.toLowerCase().replace(/_/g,\"-\"))}class ds{}class fs{resolveComponentFactory(t){throw function(t){const e=Error(`No component factory found for ${J(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(t)}}let ps=(()=>{class t{}return t.NULL=new fs,t})();function _s(...t){}function ys(t,e){return new gs(ie(t,e))}const ms=function(){return ys(me(),_e())};let gs=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=ms,t})();class vs{}let bs=(()=>{class t{}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>null}),t})();class ws{constructor(t){this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}}const Cs=new ws(\"11.0.2\");class Es{constructor(){}supports(t){return Xr(t)}create(t){return new ks(t)}}const xs=(t,e)=>e;class ks{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||xs}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,r=0,s=null;for(;e||n;){const o=!n||e&&e.currentIndex<As(n,r,s)?e:n,i=As(o,r,s),l=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(e=e._next,null==o.previousIndex)r++;else{s||(s=[]);const t=i-r,e=l-r;if(t!=e){for(let n=0;n<t;n++){const r=n<s.length?s[n]:s[n]=0,o=r+n;e<=o&&o<t&&(s[n]=r+1)}s[o.previousIndex]=e-t}}i!==l&&t(o,i,l)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!Xr(t))throw new Error(`Error trying to diff '${J(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,r,s=this._itHead,o=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],r=this._trackByFn(e,n),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,n,r,e)),Object.is(s.item,n)||this._addIdentityChange(s,n)):(s=this._mismatch(s,n,r,e),o=!0),s=s._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[Yr()]();let r;for(;!(r=n.next()).done;)e(r.value)}}(t,t=>{r=this._trackByFn(e,t),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,t,r,e)),Object.is(s.item,t)||this._addIdentityChange(s,t)):(s=this._mismatch(s,t,r,e),o=!0),s=s._next,e++}),this.length=e;return this._truncate(s),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):t=this._addAfter(new Ts(e,n),s,r),t}_verifyReinsertion(t,e,n,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Is),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Is),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class Ts{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Ss{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class Is{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new Ss,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function As(t,e,n){const r=t.previousIndex;if(null===r)return r;let s=0;return n&&r<n.length&&(s=n[r]),r+e+s}class Os{constructor(){}supports(t){return t instanceof Map||ts(t)}create(){return new Ds}}class Ds{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||ts(t)))throw new Error(`Error trying to diff '${J(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const n=this._records.get(t);this._maybeAddToChanges(n,e);const r=n._prev,s=n._next;return r&&(r._next=s),s&&(s._prev=r),n._next=null,n._prev=null,n}const n=new js(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(n=>e(t[n],n))}}class js{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let Hs=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Es])}),t})(),Ns=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Os])}),t})();function Ps(t,e,n,r,s=!1){for(;null!==n;){const o=e[n.index];if(null!==o&&r.push(oe(o)),te(o))for(let t=10;t<o.length;t++){const e=o[t],n=e[1].firstChild;null!==n&&Ps(e[1],e,n,r)}const i=n.type;if(8&i)Ps(t,e,n.child,r);else if(32&i){const t=On(n,e);let s;for(;s=t();)r.push(s)}else if(16&i){const t=e[16],s=t[6].projection[n.projection];if(Array.isArray(s))r.push(...s);else{const e=Dn(t);Ps(e[1],e,s,r,!0)}}n=s?n.projectionNext:n.next}return r}class Rs extends class{constructor(t,e){this._lView=t,this._cdRefInjectingView=e,this._appRef=null,this._viewContainerRef=null}get rootNodes(){const t=this._lView,e=t[1];return Ps(e,t,e.firstChild,[])}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}!function(t,e){if(!(256&e[2])){const n=e[11];re(n)&&n.destroyNode&&zn(t,e,n,3,null,null),function(t){let e=t[13];if(!e)return Mn(t[1],t);for(;e;){let n=null;if(Xt(e))n=e[13];else{const t=e[10];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)Xt(e)&&Mn(e[1],e),e=e[3];null===e&&(e=t),Xt(e)&&Mn(e[1],e),n=e&&e[4]}e=n}}(e)}}(this._lView[1],this._lView)}onDestroy(t){!function(t,e,n,r){const s=(o=e)[7]||(o[7]=[]);var o;s.push(null),t.firstCreatePass&&function(t){return t.cleanup||(t.cleanup=[])}(t).push(r,s.length-1)}(this._lView[1],this._lView,0,t)}markForCheck(){!function(t){for(;t;){t[2]|=64;const e=Dn(t);if(0!=(512&t[2])&&!e)return t;t=e}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){Ar(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(t,e,n){Ce(!0);try{Ar(t,e,n)}finally{Ce(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=t}detachFromAppRef(){var t;this._appRef=null,zn(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=t}}{constructor(t){super(t),this._view=t}detectChanges(){Or(this._view)}checkNoChanges(){!function(t){Ce(!0);try{Or(t)}finally{Ce(!1)}}(this._view)}get context(){return null}}const Ms=[new Os],Fs=new Hs([new Es]),Vs=new Ns(Ms);class Ls{}const Bs={};class Zs extends ps{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=Pt(t);return new Us(e,this.ngModule)}}function zs(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const $s=new ut(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Sn});class Us extends ds{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors.map(rr).join(\",\"),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return zs(this.componentDef.inputs)}get outputs(){return zs(this.componentDef.outputs)}create(t,e,n,r){const s=(r=r||this.ngModule)?function(t,e){return{get:(n,r,s)=>{const o=t.get(n,Bs,s);return o!==Bs||r===Bs?o:e.get(n,r,s)}}}(t,r.injector):t,o=s.get(vs,se),i=s.get(bs,null),l=o.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(t,e,n){if(re(t))return t.selectRootElement(e,n===vt.ShadowDom);let r=\"string\"==typeof e?t.querySelector(e):e;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Rn(o.createRenderer(null,this.componentDef),u,function(t){const e=t.toLowerCase();return\"svg\"===e?\"http://www.w3.org/2000/svg\":\"math\"===e?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h={components:[],scheduler:Sn,clean:jr,playerHandler:null,flags:0},d=pr(0,null,null,1,0,null,null,null,null,null),f=ir(null,d,h,a,null,null,o,l,i,s);let p,_;Ie(f);try{const t=function(t,e,n,r,s,o){const i=n[1];n[20]=t;const l=lr(i,20,2,\"#host\",null),u=l.mergedAttrs=e.hostAttrs;null!==u&&(Hr(l,u,!0),null!==t&&(Xe(s,t,u),null!==l.classes&&Wn(s,t,l.classes),null!==l.styles&&Un(s,t,l.styles)));const c=r.createRenderer(t,e),a=ir(n,fr(e),null,e.onPush?64:16,n[20],l,r,c,null,null);return i.firstCreatePass&&(dn(un(l,n),i,e.type),gr(i,l),br(l,n.length,1)),Ir(n,a),n[20]=a}(c,this.componentDef,f,o,l);if(c)if(n)Xe(l,c,[\"ng-version\",Cs.full]);else{const{attrs:t,classes:e}=function(t){const e=[],n=[];let r=1,s=2;for(;r<t.length;){let o=t[r];if(\"string\"==typeof o)2===s?\"\"!==o&&e.push(o,t[++r]):8===s&&n.push(o);else{if(!Xn(s))break;s=o}r++}return{attrs:e,classes:n}}(this.componentDef.selectors[0]);t&&Xe(l,c,t),e&&e.length>0&&Wn(l,c,e.join(\" \"))}if(_=d.data[20],void 0!==e){const t=_.projection=[];for(let n=0;n<this.ngContentSelectors.length;n++){const r=e[n];t.push(null!=r?Array.from(r):null)}}p=function(t,e,n,r,s){const o=n[1],i=function(t,e,n){const r=me();t.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),wr(t,r,e,ur(t,e,1,null),n));const s=gn(e,t,r.directiveStart,r);Tn(s,e);const o=ie(r,e);return o&&Tn(o,e),s}(o,n,e);if(r.components.push(i),t[8]=i,s&&s.forEach(t=>t(i,e)),e.contentQueries){const t=me();e.contentQueries(1,i,t.directiveStart)}const l=me();return!o.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(Ne(l.index),yr(n[1],l,0,l.directiveStart,l.directiveEnd,e),mr(e,i)),i}(t,this.componentDef,f,h,[Jr]),cr(d,f,null)}finally{He()}return new Ws(this.componentType,p,ys(_,f),f,_)}}class Ws extends class{}{constructor(t,e,n,r,s){super(),this.location=n,this._rootLView=r,this._tNode=s,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new Rs(r),this.componentType=t}get injector(){return new wn(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const qs=new Map;class Qs extends Ls{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Zs(this);const n=Rt(t),r=t[Tt]||null;r&&hs(r),this._bootstrapComponents=In(n.bootstrap),this._r3Injector=Zr(t,e,[{provide:Ls,useValue:this},{provide:ps,useValue:this.componentFactoryResolver}],J(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=Gr.THROW_IF_NOT_FOUND,n=Ft.Default){return t===Gr||t===Ls||t===Nr?this:this._r3Injector.get(t,e,n)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Gs extends class{}{constructor(t){super(),this.moduleType=t,null!==Rt(t)&&function(t){const e=new Set;!function t(n){const r=Rt(n,!0),s=r.id;null!==s&&(function(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${J(e)} vs ${J(e.name)}`)}(s,qs.get(s),n),qs.set(s,n));const o=In(r.imports);for(const i of o)e.has(i)||(e.add(i),t(i))}(t)}(t)}create(t){return new Qs(this.moduleType,t)}}const Js=class extends E{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let r,s=t=>null,o=()=>null;t&&\"object\"==typeof t?(r=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(s=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(o=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(r=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(s=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(o=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,s,o);return t instanceof h&&t.add(i),i}},Ks=new ut(\"Application Initializer\");let Ys=(()=>{class t{constructor(t){this.appInits=t,this.resolve=_s,this.reject=_s,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();rs(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Ks,8))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const Xs=new ut(\"AppId\"),to={provide:Xs,useFactory:function(){return`${eo()}${eo()}${eo()}`},deps:[]};function eo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const no=new ut(\"Platform Initializer\"),ro=new ut(\"Platform ID\"),so=new ut(\"appBootstrapListener\");let oo=(()=>{class t{log(t){console.log(t)}warn(t){console.warn(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const io=new ut(\"LocaleId\"),lo=new ut(\"DefaultCurrencyCode\");class uo{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const co=function(t){return new Gs(t)},ao=co,ho=function(t){return Promise.resolve(co(t))},fo=function(t){const e=co(t),n=In(Rt(t).declarations).reduce((t,e)=>{const n=Pt(e);return n&&t.push(new Us(n)),t},[]);return new uo(e,n)},po=fo,_o=function(t){return Promise.resolve(fo(t))};let yo=(()=>{class t{constructor(){this.compileModuleSync=ao,this.compileModuleAsync=ho,this.compileModuleAndAllComponentsSync=po,this.compileModuleAndAllComponentsAsync=_o}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const mo=(()=>Promise.resolve(0))();function go(t){\"undefined\"==typeof Zone?mo.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",t)}class vo{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Js(!1),this.onMicrotaskEmpty=new Js(!1),this.onStable=new Js(!1),this.onError=new Js(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched();const n=this;n._nesting=0,n._outer=n._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(n._inner=n._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(n._inner=n._inner.fork(Zone.longStackTraceZoneSpec)),n.shouldCoalesceEventChangeDetection=e,n.lastRequestAnimationFrameId=-1,n.nativeRequestAnimationFrame=function(){let t=pt.requestAnimationFrame,e=pt.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__(\"OriginalDelegate\")];n&&(t=n);const r=e[Zone.__symbol__(\"OriginalDelegate\")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function(t){const e=!!t.shouldCoalesceEventChangeDetection&&t.nativeRequestAnimationFrame&&(()=>{!function(t){-1===t.lastRequestAnimationFrameId&&(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(pt,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask(\"fakeTopEventTask\",()=>{t.lastRequestAnimationFrameId=-1,Eo(t),Co(t)},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Eo(t))}(t)});t._inner=t._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:e},onInvokeTask:(n,r,s,o,i,l)=>{try{return xo(t),n.invokeTask(s,o,i,l)}finally{e&&\"eventTask\"===o.type&&e(),ko(t)}},onInvoke:(e,n,r,s,o,i,l)=>{try{return xo(t),e.invoke(r,s,o,i,l)}finally{ko(t)}},onHasTask:(e,n,r,s)=>{e.hasTask(r,s),n===r&&(\"microTask\"==s.change?(t._hasPendingMicrotasks=s.microTask,Eo(t),Co(t)):\"macroTask\"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,n,r,s)=>(e.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(n)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!vo.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(vo.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,r){const s=this._inner,o=s.scheduleEventTask(\"NgZoneEvent: \"+r,t,wo,bo,bo);try{return s.runTask(o,e,n)}finally{s.cancelTask(o)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function bo(){}const wo={};function Co(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Eo(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||t.shouldCoalesceEventChangeDetection&&-1!==t.lastRequestAnimationFrameId)}function xo(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ko(t){t._nesting--,Co(t)}class To{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Js,this.onMicrotaskEmpty=new Js,this.onStable=new Js,this.onError=new Js}run(t,e,n){return t.apply(e,n)}runGuarded(t,e,n){return t.apply(e,n)}runOutsideAngular(t){return t()}runTask(t,e,n,r){return t.apply(e,n)}}let So=(()=>{class t{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{vo.assertNotInAngularZone(),go(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())go(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let r=-1;e&&e>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==r),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Io=(()=>{class t{constructor(){this._applications=new Map,Do.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return Do.findTestabilityInTree(this,t,e)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class Ao{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}let Oo,Do=new Ao;const jo=new ut(\"AllowMultipleToken\");function Ho(t,e,n=[]){const r=\"Platform: \"+e,s=new ut(r);return(e=[])=>{let o=No();if(!o||o.injector.get(jo,!1))if(t)t(n.concat(e).concat({provide:s,useValue:!0}));else{const t=n.concat(e).concat({provide:s,useValue:!0},{provide:Rr,useValue:\"platform\"});!function(t){if(Oo&&!Oo.destroyed&&!Oo.injector.get(jo,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");Oo=t.get(Po);const e=t.get(no,null);e&&e.forEach(t=>t())}(Gr.create({providers:t,name:r}))}return function(t){const e=No();if(!e)throw new Error(\"No platform exists!\");if(!e.injector.get(t,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return e}(s)}}function No(){return Oo&&!Oo.destroyed?Oo:null}let Po=(()=>{class t{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t,e){let n;return n=\"noop\"===t?new To:(\"zone.js\"===t?void 0:t)||new vo({enableLongStackTrace:Me(),shouldCoalesceEventChangeDetection:e}),n}(e?e.ngZone:void 0,e&&e.ngZoneEventCoalescing||!1),r=[{provide:vo,useValue:n}];return n.run(()=>{const e=Gr.create({providers:r,parent:this.injector,name:t.moduleType.name}),s=t.create(e),o=s.injector.get(kn,null);if(!o)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return s.onDestroy(()=>Fo(this._modules,s)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{o.handleError(t)}})),function(t,e,n){try{const r=n();return rs(r)?r.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(o,n,()=>{const t=s.injector.get(Ys);return t.runInitializers(),t.donePromise.then(()=>(hs(s.injector.get(io,cs)||cs),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,e=[]){const n=Ro({},e);return function(t,e,n){const r=new Gs(n);return Promise.resolve(r)}(0,0,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(Mo);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${J(t.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. Please define one of these.`);t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Gr))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Ro(t,e){return Array.isArray(e)?e.reduce(Ro,t):Object.assign(Object.assign({},t),e)}let Mo=(()=>{class t{constructor(t,e,n,r,s,o){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Me(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),l=new g(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{vo.assertNotInAngularZone(),go(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{vo.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=function(...t){let e=Number.POSITIVE_INFINITY,n=null,r=t[t.length-1];var s;return(s=r)&&\"function\"==typeof s.schedule?(n=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(e=t.pop())):\"number\"==typeof r&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof g?t[0]:function(t=Number.POSITIVE_INFINITY){return H(m,t)}(e)(function(t,e){return e?function(t,e){return new g(n=>{const r=new h;let s=0;return r.add(e.schedule(function(){s!==t.length?(n.next(t[s++]),n.closed||r.add(this.schedule())):n.complete()})),r})}(t,e):new g(S(t))}(t,n))}(i,l.pipe(t=>{return R()((e=Z,function(t){let n;n=\"function\"==typeof e?e:function(){return e};const r=Object.create(t,L);return r.source=t,r.subjectFactory=n,r})(t));var e}))}bootstrap(t,e){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=t instanceof ds?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(Ls),s=n.create(Gr.NULL,[],e||n.selector,r);s.onDestroy(()=>{this._unloadComponent(s)});const o=s.injector.get(So,null);return o&&s.injector.get(Io).registerApplication(s.location.nativeElement,o),this._loadComponent(s),Me()&&this._console.log(\"Angular is running in development mode. Call enableProdMode() to enable production mode.\"),s}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Fo(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(so,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),Fo(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo),Gt(oo),Gt(Gr),Gt(kn),Gt(ps),Gt(Ys))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Fo(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const Vo=Ho(null,\"core\",[{provide:ro,useValue:\"unknown\"},{provide:Po,deps:[Gr]},{provide:Io,deps:[]},{provide:oo,deps:[]}]),Lo=[{provide:Mo,useClass:Mo,deps:[vo,oo,Gr,kn,ps,Ys]},{provide:$s,deps:[vo],useFactory:function(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:Ys,useClass:Ys,deps:[[new q,Ks]]},{provide:yo,useClass:yo,deps:[]},to,{provide:Hs,useFactory:function(){return Fs},deps:[]},{provide:Ns,useFactory:function(){return Vs},deps:[]},{provide:io,useFactory:function(t){return hs(t=t||\"undefined\"!=typeof $localize&&$localize.locale||cs),t},deps:[[new W(io),new q,new G]]},{provide:lo,useValue:\"USD\"}];let Bo=(()=>{class t{constructor(t){}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(Mo))},providers:Lo}),t})(),Zo=null;function zo(){return Zo}const $o=new ut(\"DocumentToken\");var Uo=function(t){return t[t.Zero=0]=\"Zero\",t[t.One=1]=\"One\",t[t.Two=2]=\"Two\",t[t.Few=3]=\"Few\",t[t.Many=4]=\"Many\",t[t.Other=5]=\"Other\",t}({});class Wo{}let qo=(()=>{class t extends Wo{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(function(t){return function(t){const e=function(t){return t.toLowerCase().replace(/_/g,\"-\")}(t);let n=ls(e);if(n)return n;const r=e.split(\"-\")[0];if(n=ls(r),n)return n;if(\"en\"===r)return os;throw new Error(`Missing locale data for the locale \"${t}\".`)}(t)[us.PluralCase]}(e||this.locale)(t)){case Uo.Zero:return\"zero\";case Uo.One:return\"one\";case Uo.Two:return\"two\";case Uo.Few:return\"few\";case Uo.Many:return\"many\";default:return\"other\"}}}return t.\\u0275fac=function(e){return new(e||t)(Gt(io))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Qo=(()=>{class t{}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[{provide:Wo,useClass:qo}]}),t})();class Go extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var t;t=new Go,Zo||(Zo=t)}getProperty(t,e){return t[e]}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}getValue(t){return t.value}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return\"window\"===e?window:\"document\"===e?t:\"body\"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=Ko||(Ko=document.querySelector(\"base\"),Ko)?Ko.getAttribute(\"href\"):null;return null==e?null:(n=e,Jo||(Jo=document.createElement(\"a\")),Jo.setAttribute(\"href\",n),\"/\"===Jo.pathname.charAt(0)?Jo.pathname:\"/\"+Jo.pathname);var n}resetBaseElement(){Ko=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return function(t,e){e=encodeURIComponent(e);for(const n of t.split(\";\")){const t=n.indexOf(\"=\"),[r,s]=-1==t?[n,\"\"]:[n.slice(0,t),n.slice(t+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}(document.cookie,t)}}let Jo,Ko=null;const Yo=new ut(\"TRANSITION_ID\"),Xo=[{provide:Ks,useFactory:function(t,e,n){return()=>{n.get(Ys).donePromise.then(()=>{const n=zo();Array.prototype.slice.apply(e.querySelectorAll(\"style[ng-transition]\")).filter(e=>e.getAttribute(\"ng-transition\")===t).forEach(t=>n.remove(t))})}},deps:[Yo,$o,Gr],multi:!0}];class ti{static init(){var t;t=new ti,Do=t}addToWindow(t){pt.getAngularTestability=(e,n=!0)=>{const r=t.findTestabilityInTree(e,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},pt.getAllAngularTestabilities=()=>t.getAllTestabilities(),pt.getAllAngularRootElements=()=>t.getAllRootElements(),pt.frameworkStabilizers||(pt.frameworkStabilizers=[]),pt.frameworkStabilizers.push(t=>{const e=pt.getAllAngularTestabilities();let n=e.length,r=!1;const s=function(e){r=r||e,n--,0==n&&t(r)};e.forEach(function(t){t.whenStable(s)})})}findTestabilityInTree(t,e,n){if(null==e)return null;const r=t.getTestability(e);return null!=r?r:n?zo().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}const ei=new ut(\"EventManagerPlugins\");let ni=(()=>{class t{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let r=0;r<n.length;r++){const e=n[r];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(\"No event manager plugin found for event \"+t)}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ei),Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class ri{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const r=zo().getGlobalEventTarget(this._doc,t);if(!r)throw new Error(`Unsupported event target ${r} for event ${e}`);return this.addEventListener(r,e,n)}}let si=(()=>{class t{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),oi=(()=>{class t extends si{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement(\"style\");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>zo().remove(t))}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const ii={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},li=/%COMP%/g;function ui(t,e,n){for(let r=0;r<e.length;r++){let s=e[r];Array.isArray(s)?ui(t,s,n):(s=s.replace(li,t),n.push(s))}return n}function ci(t){return e=>{if(\"__ngUnwrap__\"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let ai=(()=>{class t{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new hi(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case vt.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new di(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case 1:case vt.ShadowDom:return new fi(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=ui(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ni),Gt(oi),Gt(Xs))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class hi{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(ii[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n=\"string\"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector \"${t}\" did not match any elements`);return e||(n.textContent=\"\"),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,r){if(r){e=r+\":\"+e;const s=ii[r];s?t.setAttributeNS(s,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const r=ii[n];r?t.removeAttributeNS(r,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,r){r&(An.DashCase|An.Important)?t.style.setProperty(e,n,r&An.Important?\"important\":\"\"):t.style[e]=n}removeStyle(t,e,n){n&An.DashCase?t.style.removeProperty(e):t.style[e]=\"\"}setProperty(t,e,n){t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return\"string\"==typeof t?this.eventManager.addGlobalEventListener(t,e,ci(n)):this.eventManager.addEventListener(t,e,ci(n))}}class di extends hi{constructor(t,e,n,r){super(t),this.component=n;const s=ui(r+\"-\"+n.id,n.styles,[]);e.addStyles(s),this.contentAttr=\"_ngcontent-%COMP%\".replace(li,r+\"-\"+n.id),this.hostAttr=\"_nghost-%COMP%\".replace(li,r+\"-\"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,\"\")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,\"\"),n}}class fi extends hi{constructor(t,e,n,r){super(t),this.sharedStylesHost=e,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:\"open\"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=ui(r.id,r.styles,[]);for(let o=0;o<s.length;o++){const t=document.createElement(\"style\");t.textContent=s[o],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}let pi=(()=>{class t extends ri{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,n){return t.addEventListener(e,n,!1),()=>this.removeEventListener(t,e,n)}removeEventListener(t,e,n){return t.removeEventListener(e,n)}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const _i=[\"alt\",\"control\",\"meta\",\"shift\"],yi={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},mi={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},gi={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let vi=(()=>{class t extends ri{constructor(t){super(t)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,n,r){const s=t.parseEventName(n),o=t.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>zo().onAndCancel(e,s.domEventName,o))}static parseEventName(e){const n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const s=t._normalizeKey(n.pop());let o=\"\";if(_i.forEach(t=>{const e=n.indexOf(t);e>-1&&(n.splice(e,1),o+=t+\".\")}),o+=s,0!=n.length||0===s.length)return null;const i={};return i.domEventName=r,i.fullKey=o,i}static getEventFullKey(t){let e=\"\",n=function(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return\"Unidentified\";e.startsWith(\"U+\")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&mi.hasOwnProperty(e)&&(e=mi[e]))}return yi[e]||e}(t);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),_i.forEach(r=>{r!=n&&(0,gi[r])(t)&&(e+=r+\".\")}),e+=n,e}static eventCallback(e,n,r){return s=>{t.getEventFullKey(s)===e&&r.runGuarded(()=>n(s))}}static _normalizeKey(t){switch(t){case\"esc\":return\"escape\";default:return t}}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const bi=Ho(Vo,\"browser\",[{provide:ro,useValue:\"browser\"},{provide:no,useValue:function(){Go.makeCurrent(),ti.init()},multi:!0},{provide:$o,useFactory:function(){return function(t){Kt=t}(document),document},deps:[]}]),wi=[[],{provide:Rr,useValue:\"root\"},{provide:kn,useFactory:function(){return new kn},deps:[]},{provide:ei,useClass:pi,multi:!0,deps:[$o,vo,ro]},{provide:ei,useClass:vi,multi:!0,deps:[$o]},[],{provide:ai,useClass:ai,deps:[ni,oi,Xs]},{provide:vs,useExisting:ai},{provide:si,useExisting:oi},{provide:oi,useClass:oi,deps:[$o]},{provide:So,useClass:So,deps:[vo]},{provide:ni,useClass:ni,deps:[ei,vo]},[]];let Ci=(()=>{class t{constructor(t){if(t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(e){return{ngModule:t,providers:[{provide:Xs,useValue:e.appId},{provide:Yo,useExisting:Xs},Xo]}}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(t,12))},providers:wi,imports:[Qo,Bo]}),t})();\"undefined\"!=typeof window&&window;let Ei=(()=>{class t{constructor(){this.title=\"example\"}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=(e={type:t,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(t,e){1&t&&(ns(0,\"div\",0),function(t,e=\"\"){const n=_e(),r=ye(),s=t+Yt,o=r.firstCreatePass?lr(r,s,1,e,null):r.data[s],i=n[s]=function(t,e){return re(t)?t.createText(e):t.createTextNode(e)}(n[11],e);Bn(r,n,i,o),ve(o,!1)}(1,\" Hello, World\\n\"),function(){let t=me();be()?fe.lFrame.isParent=!1:(t=t.parent,ve(t,!1));const e=t;fe.lFrame.elementDepthCount--;const n=ye();n.firstCreatePass&&(Ue(n,t),ee(t)&&n.queries.elementEnd(t)),null!=e.classesWithoutHost&&function(t){return 0!=(16&t.flags)}(e)&&es(n,e,_e(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function(t){return 0!=(32&t.flags)}(e)&&es(n,e,_e(),e.stylesWithoutHost,!1)}())},styles:[\"\"]},z(()=>{const t={},n={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===ct.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||wt,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||vt.Emulated,id:\"c\",styles:e.styles||wt,_:null,setInput:null,schemas:e.schemas||null,tView:null},r=e.directives,s=e.features,o=e.pipes;return n.id+=At++,n.inputs=Nt(e.inputs,t),n.outputs=Nt(e.outputs),s&&s.forEach(t=>t(n)),n.directiveDefs=r?()=>(\"function\"==typeof r?r():r).map(Ot):null,n.pipeDefs=o?()=>(\"function\"==typeof o?o():o).map(Dt):null,n})),t;var e})(),xi=(()=>{class t{}return t.\\u0275mod=Ht({type:t,bootstrap:[Ei]}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[],imports:[[Ci]]}),t})();(function(){if(Re)throw new Error(\"Cannot enable prod mode after platform setup.\");Pe=!1})(),bi().bootstrapModule(xi).catch(t=>console.error(t))},zn8P:function(t,e){function n(t){return Promise.resolve().then(function(){var e=new Error(\"Cannot find module '\"+t+\"'\");throw e.code=\"MODULE_NOT_FOUND\",e})}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/dist/example/polyfills.bf99d438b005d57b2b31.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{1:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const i=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(i||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class a{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==C.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=a.current;for(;e.parent;)e=e.parent;return e}static get current(){return z.zone}static get currentTask(){return j}static __load_patch(t,r){if(C.hasOwnProperty(t)){if(i)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),C[t]=r(e,a,O),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){z={parent:z,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{z=z.parent}}runGuarded(e,t=null,n,o){z={parent:z,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{z=z.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,T),e.runCount++;const r=j;j=e,z={parent:z,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(T,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),z=z.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(b,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,b,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==b&&e._transitionTo(T,b),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,T,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}a.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new a(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");k(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,i){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=i,!o)throw new Error(\"callback is not defined\");this.callback=o;const a=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,a,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,b)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],_=!1;function k(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!_){for(_=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){O.onUnhandledError(e)}}}O.microtaskDrainDone(),_=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",b=\"scheduling\",T=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",C={},O={symbol:s,currentZoneFrame:()=>z,onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:k,showUncaughtError:()=>!a[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:N,patchMethod:()=>N,bindArguments:()=>[],patchThen:()=>N,patchMacroTask:()=>N,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>N,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>N,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>N,wrapWithCurrentZone:()=>N,filterProperties:()=>[],attachOriginToPatched:()=>N,_redefineProperty:()=>N,patchCallbacks:()=>N};let z={parent:null,zone:new a(null,null)},j=null,I=0;function N(){}o(\"Zone\",\"Zone\"),e.Zone=a}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,i=[],a=!0===e[s(\"DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION\")],c=s(\"Promise\"),l=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;i.length;){const t=i.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){h(e)}}};const u=s(\"unhandledPromiseRejectionHandler\");function h(e){n.onUnhandledError(e);try{const n=t[u];\"function\"==typeof n&&n.call(this,e)}catch(o){}}function p(e){return e&&e.then}function f(e){return e}function d(e){return O.reject(e)}const g=s(\"state\"),_=s(\"value\"),k=s(\"finally\"),m=s(\"parentPromiseValue\"),y=s(\"parentPromiseState\"),v=null,b=!0,T=!1;function E(e,t){return n=>{try{Z(e,t,n)}catch(o){Z(e,!1,o)}}}const w=s(\"currentTaskTrace\");function Z(e,o,s){const c=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(e[g]===v){let h=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(h=s&&s.then)}catch(u){return c(()=>{Z(e,!1,u)})(),e}if(o!==T&&s instanceof O&&s.hasOwnProperty(g)&&s.hasOwnProperty(_)&&s[g]!==v)D(s),Z(e,s[g],s[_]);else if(o!==T&&\"function\"==typeof h)try{h.call(s,c(E(e,o)),c(E(e,!1)))}catch(u){c(()=>{Z(e,!1,u)})()}else{e[g]=o;const c=e[_];if(e[_]=s,e[k]===k&&o===b&&(e[g]=e[y],e[_]=e[m]),o===T&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,w,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<c.length;)P(e,c[t++],c[t++],c[t++],c[t++]);if(0==c.length&&o==T){e[g]=0;let o=s;if(!a)try{throw new Error(\"Uncaught (in promise): \"+((l=s)&&l.toString===Object.prototype.toString?(l.constructor&&l.constructor.name||\"\")+\": \"+JSON.stringify(l):l?l.toString():Object.prototype.toString.call(l))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(u){o=u}o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,i.push(o),n.scheduleMicroTask()}}}var l;return e}const S=s(\"rejectionHandledHandler\");function D(e){if(0===e[g]){try{const n=t[S];n&&\"function\"==typeof n&&n.call(this,{rejection:e[_],promise:e})}catch(n){}e[g]=T;for(let t=0;t<i.length;t++)e===i[t].promise&&i.splice(t,1)}}function P(e,t,n,o,r){D(e);const s=e[g],i=s?\"function\"==typeof o?o:f:\"function\"==typeof r?r:d;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[_],r=!!n&&k===n[k];r&&(n[m]=o,n[y]=s);const a=t.run(i,void 0,r&&i!==d&&i!==f?[]:[o]);Z(n,!0,a)}catch(o){Z(n,!1,o)}},n)}const C=function(){};class O{static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return Z(new this(null),b,e)}static reject(e){return Z(new this(null),T,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let i of e)p(i)||(i=this.resolve(i)),i.then(r,s);return o}static all(e){return O.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof O?this:O).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,i=0;const a=[];for(let l of e){p(l)||(l=this.resolve(l));const e=i;try{l.then(o=>{a[e]=t?t.thenCallback(o):o,s--,0===s&&n(a)},r=>{t?(a[e]=t.errorCallback(r),s--,0===s&&n(a)):o(r)})}catch(c){o(c)}s++,i++}return s-=2,0===s&&n(a),r}constructor(e){const t=this;if(!(t instanceof O))throw new Error(\"Must be an instanceof Promise.\");t[g]=v,t[_]=[];try{e&&e(E(t,b),E(t,T))}catch(n){Z(t,!1,n)}}get[Symbol.toStringTag](){return\"Promise\"}get[Symbol.species](){return O}then(e,n){let o=this.constructor[Symbol.species];o&&\"function\"==typeof o||(o=this.constructor||O);const r=new o(C),s=t.current;return this[g]==v?this[_].push(s,r,e,n):P(this,s,r,e,n),r}catch(e){return this.then(null,e)}finally(e){let n=this.constructor[Symbol.species];n&&\"function\"==typeof n||(n=O);const o=new n(C);o[k]=k;const r=t.current;return this[g]==v?this[_].push(r,o,e,e):P(this,r,o,e,e),o}}O.resolve=O.resolve,O.reject=O.reject,O.race=O.race,O.all=O.all;const z=e[c]=e.Promise,j=t.__symbol__(\"ZoneAwarePromise\");let I=o(e,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return e[j]?e[j]:e[c]},I.set=function(t){t===O?e[j]=t:(e[c]=t,t.prototype[l]||R(t),n.setNativePromise(t))},r(e,\"Promise\",I)),e.Promise=O;const N=s(\"thenPatched\");function R(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[l]=r,e.prototype.then=function(e,t){return new O((e,t)=>{r.call(this,e,t)}).then(e,t)},e[N]=!0}if(n.patchThen=R,z){R(z);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(x=t,function(){let e=x.apply(this,arguments);if(e instanceof O)return e;let t=e.constructor;return t[N]||R(t),e}))}var x;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=i,O});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=\"addEventListener\",i=\"removeEventListener\",a=Zone.__symbol__(s),c=Zone.__symbol__(i),l=\"true\",u=\"false\",h=Zone.__symbol__(\"\");function p(e,t){return Zone.current.wrap(e,t)}function f(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const d=Zone.__symbol__,g=\"undefined\"!=typeof window,_=g?window:void 0,k=g&&_||\"object\"==typeof self&&self||global,m=[null];function y(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=p(e[n],t+\"_\"+n));return e}function v(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const b=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,T=!(\"nw\"in k)&&void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process),E=!T&&!b&&!(!g||!_.HTMLElement),w=void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process)&&!b&&!(!g||!_.HTMLElement),Z={},S=function(e){if(!(e=e||k.event))return;let t=Z[e.type];t||(t=Z[e.type]=d(\"ON_PROPERTY\"+e.type));const n=this||e.target||k,o=n[t];let r;if(E&&n===_&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function D(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const i=d(\"on\"+o+\"patched\");if(n.hasOwnProperty(i)&&n[i])return;delete s.writable,delete s.value;const a=s.get,c=s.set,l=o.substr(2);let u=Z[l];u||(u=Z[l]=d(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==k||(t=k),t&&(t[u]&&t.removeEventListener(l,S),c&&c.apply(t,m),\"function\"==typeof e?(t[u]=e,t.addEventListener(l,S,!1)):t[u]=null)},s.get=function(){let e=this;if(e||n!==k||(e=k),!e)return null;const t=e[u];if(t)return t;if(a){let t=a&&a.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[i]=!0}function P(e,t,n){if(t)for(let o=0;o<t.length;o++)D(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)D(e,t[o],n)}}const C=d(\"originalInstance\");function O(e){const n=k[e];if(!n)return;k[d(e)]=n,k[e]=function(){const t=y(arguments,e);switch(t.length){case 0:this[C]=new n;break;case 1:this[C]=new n(t[0]);break;case 2:this[C]=new n(t[0],t[1]);break;case 3:this[C]=new n(t[0],t[1],t[2]);break;case 4:this[C]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},I(k[e],n);const o=new n(function(){});let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?k[e].prototype[n]=function(){return this[C][n].apply(this[C],arguments)}:t(k[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[C][n]=p(t,e+\".\"+n),I(this[C][n],t)):this[C][n]=t},get:function(){return this[C][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(k[e][r]=n[r])}function z(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const i=d(o);let a=null;if(s&&!(a=s[i])&&(a=s[i]=s[o],v(s&&e(s,o)))){const e=r(a,i,o);s[o]=function(){return e(this,arguments)},I(s[o],a)}return a}function j(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=z(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?f(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function I(e,t){e[d(\"OriginalDelegate\")]=t}let N=!1,R=!1;function x(){try{const e=_.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function M(){if(N)return R;N=!0;try{const e=_.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(R=!0)}catch(e){}return R}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=d(\"OriginalDelegate\"),o=d(\"Promise\"),r=d(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const i=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":i.call(this)}});let L=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){L=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(he){L=!1}const A={useG:!0},H={},F={},G=new RegExp(\"^\"+h+\"(\\\\w+)(true|false)$\"),B=d(\"propagationStopped\");function q(e,t){const n=(t?t(e):e)+u,o=(t?t(e):e)+l,r=h+n,s=h+o;H[e]={},H[e].false=r,H[e].true=s}function W(e,t,o){const r=o&&o.add||s,a=o&&o.rm||i,c=o&&o.listeners||\"eventListeners\",p=o&&o.rmAll||\"removeAllListeners\",f=d(r),g=\".\"+r+\":\",_=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[a].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},k=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].false];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}},m=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].true];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}};function y(t,o){if(!t)return!1;let s=!0;o&&void 0!==o.useG&&(s=o.useG);const i=o&&o.vh;let _=!0;o&&void 0!==o.chkDup&&(_=o.chkDup);let y=!1;o&&void 0!==o.rt&&(y=o.rt);let v=t;for(;v&&!v.hasOwnProperty(r);)v=n(v);if(!v&&t[r]&&(v=t),!v)return!1;if(v[f])return!1;const b=o&&o.eventNameToString,E={},w=v[f]=v[r],Z=v[d(a)]=v[a],S=v[d(c)]=v[c],D=v[d(p)]=v[p];let P;function C(e,t){return!L&&\"object\"==typeof e&&e?!!e.capture:L&&t?\"boolean\"==typeof e?{capture:e,passive:!0}:e?\"object\"==typeof e&&!1!==e.passive?Object.assign(Object.assign({},e),{passive:!0}):e:{passive:!0}:e}o&&o.prepend&&(P=v[d(o.prepend)]=v[o.prepend]);const O=s?function(e){if(!E.isExisting)return w.call(E.target,E.eventName,E.capture?m:k,E.options)}:function(e){return w.call(E.target,E.eventName,e.invoke,E.options)},z=s?function(e){if(!e.isRemoved){const t=H[e.eventName];let n;t&&(n=t[e.capture?l:u]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return Z.call(e.target,e.eventName,e.capture?m:k,e.options)}:function(e){return Z.call(e.target,e.eventName,e.invoke,e.options)},j=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},N=Zone[d(\"BLACK_LISTED_EVENTS\")],R=e[d(\"PASSIVE_EVENTS\")],x=function(t,n,r,a,c=!1,h=!1){return function(){const p=this||e;let f=arguments[0];o&&o.transferEventName&&(f=o.transferEventName(f));let d=arguments[1];if(!d)return t.apply(this,arguments);if(T&&\"uncaughtException\"===f)return t.apply(this,arguments);let g=!1;if(\"function\"!=typeof d){if(!d.handleEvent)return t.apply(this,arguments);g=!0}if(i&&!i(t,d,p,arguments))return;const k=L&&!!R&&-1!==R.indexOf(f),m=C(arguments[2],k);if(N)for(let e=0;e<N.length;e++)if(f===N[e])return k?t.call(p,f,d,m):t.apply(this,arguments);const y=!!m&&(\"boolean\"==typeof m||m.capture),v=!(!m||\"object\"!=typeof m)&&m.once,w=Zone.current;let Z=H[f];Z||(q(f,b),Z=H[f]);const S=Z[y?l:u];let D,P=p[S],O=!1;if(P){if(O=!0,_)for(let e=0;e<P.length;e++)if(j(P[e],d))return}else P=p[S]=[];const z=p.constructor.name,I=F[z];I&&(D=I[f]),D||(D=z+n+(b?b(f):f)),E.options=m,v&&(E.options.once=!1),E.target=p,E.capture=y,E.eventName=f,E.isExisting=O;const x=s?A:void 0;x&&(x.taskData=E);const M=w.scheduleEventTask(D,d,x,r,a);return E.target=null,x&&(x.taskData=null),v&&(m.once=!0),(L||\"boolean\"!=typeof M.options)&&(M.options=m),M.target=p,M.capture=y,M.eventName=f,g&&(M.originalDelegate=d),h?P.unshift(M):P.push(M),c?p:void 0}};return v[r]=x(w,g,O,z,y),P&&(v.prependListener=x(P,\".prependListener:\",function(e){return P.call(E.target,E.eventName,e.invoke,E.options)},z,y,!0)),v[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2],s=!!r&&(\"boolean\"==typeof r||r.capture),a=arguments[1];if(!a)return Z.apply(this,arguments);if(i&&!i(Z,a,t,arguments))return;const c=H[n];let p;c&&(p=c[s?l:u]);const f=p&&t[p];if(f)for(let e=0;e<f.length;e++){const o=f[e];if(j(o,a))return f.splice(e,1),o.isRemoved=!0,0===f.length&&(o.allRemoved=!0,t[p]=null,\"string\"==typeof n)&&(t[h+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),y?t:void 0}return Z.apply(this,arguments)},v[c]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=U(t,b?b(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},v[p]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=H[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=G.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[p].call(this,o)}this[p].call(this,\"removeListener\")}if(y)return this},I(v[r],w),I(v[a],Z),D&&I(v[p],D),S&&I(v[c],S),!0}let v=[];for(let n=0;n<t.length;n++)v[n]=y(t[n],o);return v}function U(e,t){if(!t){const n=[];for(let o in e){const r=G.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}let n=H[t];n||(q(t),n=H[t]);const o=e[n.false],r=e[n.true];return o?r?o.concat(r):o.slice():r?r.slice():[]}function V(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[B]=!0,e&&e.apply(t,n)})}function $(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const i=t[s]=t[o];t[o]=function(s,a,c){return a&&a.prototype&&r.forEach(function(t){const r=`${n}.${o}::`+t,s=a.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(a.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}),i.call(t,s,a,c)},e.attachOriginToPatched(t[o],i)}const X=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplayconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],J=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],Y=[\"load\"],K=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],Q=[\"bounce\",\"finish\",\"start\"],ee=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],te=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],ne=[\"close\",\"error\",\"open\",\"message\"],oe=[\"error\",\"message\"],re=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],X,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function se(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function ie(e,t,n,o){e&&P(e,se(e,t,n),o)}function ae(e,t){if(T&&!w)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(E){const e=window,t=x?[{target:e,ignoreProperties:[\"error\"]}]:[];ie(e,re.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),ie(Document.prototype,re,r),void 0!==e.SVGElement&&ie(e.SVGElement.prototype,re,r),ie(Element.prototype,re,r),ie(HTMLElement.prototype,re,r),ie(HTMLMediaElement.prototype,J,r),ie(HTMLFrameSetElement.prototype,X.concat(K),r),ie(HTMLBodyElement.prototype,X.concat(K),r),ie(HTMLFrameElement.prototype,Y,r),ie(HTMLIFrameElement.prototype,Y,r);const o=e.HTMLMarqueeElement;o&&ie(o.prototype,Q,r);const s=e.Worker;s&&ie(s.prototype,oe,r)}const s=t.XMLHttpRequest;s&&ie(s.prototype,ee,r);const i=t.XMLHttpRequestEventTarget;i&&ie(i&&i.prototype,ee,r),\"undefined\"!=typeof IDBIndex&&(ie(IDBIndex.prototype,te,r),ie(IDBRequest.prototype,te,r),ie(IDBOpenDBRequest.prototype,te,r),ie(IDBDatabase.prototype,te,r),ie(IDBTransaction.prototype,te,r),ie(IDBCursor.prototype,te,r)),o&&ie(WebSocket.prototype,ne,r)}Zone.__load_patch(\"util\",(n,a,c)=>{c.patchOnProperties=P,c.patchMethod=z,c.bindArguments=y,c.patchMacroTask=j;const f=a.__symbol__(\"BLACK_LISTED_EVENTS\"),d=a.__symbol__(\"UNPATCHED_EVENTS\");n[d]&&(n[f]=n[d]),n[f]&&(a[f]=a[d]=n[f]),c.patchEventPrototype=V,c.patchEventTarget=W,c.isIEOrEdge=M,c.ObjectDefineProperty=t,c.ObjectGetOwnPropertyDescriptor=e,c.ObjectCreate=o,c.ArraySlice=r,c.patchClass=O,c.wrapWithCurrentZone=p,c.filterProperties=se,c.attachOriginToPatched=I,c._redefineProperty=Object.defineProperty,c.patchCallbacks=$,c.getGlobalObjects=()=>({globalSources:F,zoneSymbolEventNames:H,eventNames:re,isBrowser:E,isMix:w,isNode:T,TRUE_STR:l,FALSE_STR:u,ZONE_SYMBOL_PREFIX:h,ADD_EVENT_LISTENER_STR:s,REMOVE_EVENT_LISTENER_STR:i})});const ce=d(\"zoneTask\");function le(e,t,n,o){let r=null,s=null;n+=o;const i={};function a(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete i[n.handleId]:n.handleId&&(n.handleId[ce]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=z(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=f(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},a,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?i[n]=e:n&&(n[ce]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=z(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=i[r]:(s=r&&r[ce],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete i[r]:r&&(r[ce]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function ue(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:i}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=i+(e+s),a=i+(e+r);o[e]={},o[e][s]=t,o[e][r]=a}const a=e.EventTarget;return a&&a.prototype?(t.patchEventTarget(e,[a&&a.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{const t=\"set\",n=\"clear\";le(e,t,n,\"Timeout\"),le(e,t,n,\"Interval\"),le(e,t,n,\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{le(e,\"request\",\"cancel\",\"AnimationFrame\"),le(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),le(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)z(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{(function(e,t){t.patchEventPrototype(e,t)})(e,n),ue(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),O(\"MutationObserver\"),O(\"WebKitMutationObserver\"),O(\"IntersectionObserver\"),O(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ae(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const u=e.XMLHttpRequest;if(!u)return;const h=u.prototype;let p=h[a],g=h[c];if(!p){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;p=e[a],g=e[c]}}const _=\"readystatechange\",k=\"scheduled\";function m(e){const o=e.data,i=o.target;i[s]=!1,i[l]=!1;const u=i[r];p||(p=i[a],g=i[c]),u&&g.call(i,_,u);const h=i[r]=()=>{if(i.readyState===i.DONE)if(!o.aborted&&i[s]&&e.state===k){const n=i[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=i[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||e.state!==k||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==i[s]||(i[l]=!0)};return p.call(i,_,h),i[n]||(i[n]=e),w.apply(i,o.args),i[s]=!0,e}function y(){}function v(e){const t=e.data;return t.aborted=!0,Z.apply(t.target,t.args)}const b=z(h,\"open\",()=>function(e,t){return e[o]=0==t[2],e[i]=t[1],b.apply(e,t)}),T=d(\"fetchTaskAborting\"),E=d(\"fetchTaskScheduling\"),w=z(h,\"send\",()=>function(e,n){if(!0===t.current[E])return w.apply(e,n);if(e[o])return w.apply(e,n);{const t={target:e,url:e[i],isPeriodic:!1,args:n,aborted:!1},o=f(\"XMLHttpRequest.send\",y,t,m,v);e&&!0===e[l]&&!t.aborted&&o.state===k&&o.invoke()}}),Z=z(h,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[T])return Z.apply(e,o)})}(e);const n=d(\"xhrTask\"),o=d(\"xhrSync\"),r=d(\"xhrListener\"),s=d(\"xhrScheduled\"),i=d(\"xhrURL\"),l=d(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],i=t[s];if(i){if(!v(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,y(arguments,o+\".\"+s))};return I(t,e),t})(i)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){U(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[d(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[d(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[1,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/dist/example/runtime.359d5ee4682f20e936e9.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/dist/example/styles.51422a5c94b8290ff190.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:initial}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:initial;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:initial;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:initial;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:initial}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:initial}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:initial}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:initial}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:initial}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:initial}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:initial}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:initial}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:initial;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:initial}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:initial;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:initial;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:initial;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:initial;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:initial;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:initial;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:initial;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:initial;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:initial!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:initial!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:initial;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/addTax.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\n\n@Pipe({\n    name: \"addTax\"\n})\nexport class PaAddTaxPipe {\n\n    defaultRate: number = 10;\n\n    transform(value: any, rate?: any): number {\n        let valueNumber = Number.parseFloat(value);\n        let rateNumber = rate == undefined ?\n            this.defaultRate : Number.parseInt(rate);\n        return valueNumber + (valueNumber * (rateNumber / 100));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\nimport { PaAddTaxPipe } from \"./addTax.pipe\";\nimport { PaCategoryFilterPipe } from \"./categoryFilter.pipe\";\nimport { LOCALE_ID } from \"@angular/core\";\nimport localeFr from '@angular/common/locales/fr';\nimport { registerLocaleData } from '@angular/common';\nimport { PaDiscountDisplayComponent } from \"./discountDisplay.component\";\nimport { PaDiscountEditorComponent } from \"./discountEditor.component\";\nimport { DiscountService } from \"./discount.service\";\nimport { PaDiscountPipe } from \"./discount.pipe\";\nimport { PaDiscountAmountDirective } from \"./discountAmount.directive\";\nimport { SimpleDataSource } from \"./datasource.model\";\nimport { Model } from \"./repository.model\";\n\nregisterLocaleData(localeFr);\n\n@NgModule({\n  imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n  declarations: [ProductComponent, PaAttrDirective, PaModel,\n    PaStructureDirective, PaIteratorDirective,\n    PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n    ProductFormComponent, PaToggleView, PaAddTaxPipe,\n    PaCategoryFilterPipe, PaDiscountDisplayComponent, PaDiscountEditorComponent,\n    PaDiscountPipe, PaDiscountAmountDirective],\n    providers: [DiscountService, SimpleDataSource, Model],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/attr.directive.ts",
    "content": "import {\n  Directive, ElementRef, Attribute, Input,\n  SimpleChange, Output, EventEmitter, HostListener, HostBinding\n}\n  from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Directive({\n  selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n  @Input(\"pa-attr\")\n  @HostBinding(\"class\")\n  bgClass: string;\n\n  @Input(\"pa-product\")\n  product: Product;\n\n  @Output(\"pa-category\")\n  click = new EventEmitter<string>();\n\n  @HostListener(\"click\")\n  triggerCustomEvent() {\n    if (this.product != null) {\n      this.click.emit(this.product.category);\n    }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/categoryFilter.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Pipe({\n    name: \"filter\",\n    pure: false\n})\nexport class PaCategoryFilterPipe {\n\n    transform(products: Product[], category: string): Product[] {\n        return category == undefined ?\n            products : products.filter(p => p.category == category);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n    SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\nselector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n@Input(\"paCellDarkColor\")\nmodelProperty: Boolean;\n\n@ContentChildren(PaCellColor, {descendants: true})\ncontentChildren: QueryList<PaCellColor>;\n\nngOnChanges(changes: { [property: string]: SimpleChange }) {\n   this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n}\n\nngAfterContentInit() {\n   this.contentChildren.changes.subscribe(() => {\n       setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n   });\n}\n\nprivate updateContentChildren(dark: Boolean) {\n   if (this.contentChildren != null && dark != undefined) {\n       this.contentChildren.forEach((child, index) => {\n           child.setColor(index % 2 ? dark : !dark);\n       });\n   }\n}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/component.ts",
    "content": "import { Component } from \"@angular/core\";\n//import { Model } from \"./repository.model\";\n//import { Product } from \"./product.model\";\n//import { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    //model: Model = new Model();\n\n    //constructor(public model: Model) { }\n\n    //addProduct(p: Product) {\n    //    this.model.saveProduct(p);\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/datasource.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class SimpleDataSource {\n    private data:Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n        new Product(1, \"Kayak\", \"Watersports\", 275),\n        new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n        new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n        new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n        new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/discount.pipe.ts",
    "content": "import { Pipe, Injectable } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Pipe({\n    name: \"discount\",\n    pure: false\n})\nexport class PaDiscountPipe {\n\n    constructor(private discount: DiscountService) { }\n\n    transform(price: number): number {\n        return this.discount.applyDiscount(price);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/discount.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class DiscountService {\n    private discountValue: number = 10;\n\n    public get discount(): number {\n        return this.discountValue;\n    }\n\n    public set discount(newValue: number) {\n        this.discountValue = newValue || 0;\n    }\n\n    public applyDiscount(price: number) {\n        return Math.max(price - this.discountValue, 5);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/discountAmount.directive.ts",
    "content": "import { Directive, HostBinding, Input,\n    SimpleChange, KeyValueDiffer, KeyValueDiffers,\n    ChangeDetectorRef } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Directive({\n    selector: \"td[pa-price]\",\n    exportAs: \"discount\"\n})\nexport class PaDiscountAmountDirective {\n    private differ: KeyValueDiffer<any, any>;\n\n    constructor(private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef,\n        private discount: DiscountService) { }\n\n    @Input(\"pa-price\")\n    originalPrice: number;\n\n    discountAmount: number;\n\n    ngOnInit() {\n        this.differ =\n            this.keyValueDiffers.find(this.discount).create();\n    }\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        if (changes[\"originalPrice\"] != null) {\n            this.updateValue();\n        }\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.discount) != null) {\n            this.updateValue();\n        }\n    }\n\n    private updateValue() {\n        this.discountAmount = this.originalPrice\n            - this.discount.applyDiscount(this.originalPrice);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/discountDisplay.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n  selector: \"paDiscountDisplay\",\n  template: `<div class=\"bg-info text-white p-2\">\n                The discount is {{discounter.discount}}\n               </div>`\n})\nexport class PaDiscountDisplayComponent {\n\n  constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/discountEditor.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n    selector: \"paDiscountEditor\",\n    template: `<div class=\"form-group\">\n                   <label>Discount</label>\n                   <input [(ngModel)]=\"discounter.discount\"\n                        class=\"form-control\" type=\"number\" />\n               </div>`\n})\nexport class PaDiscountEditorComponent {\n\n    constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;\n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),\n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c =>\n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, ViewRef, IterableChangeRecord\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: IterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <IterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n\n            let arr: IterableChangeRecord<any>[] = [];\n            changes.forEachAddedItem(addition => arr.push(addition));\n            arr.forEach(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, arr.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n      public name?: string,\n      public category?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover {\n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\"\n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\"\n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\"\n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>\n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n\n<paDiscountEditor></paDiscountEditor>\n<paDiscountDisplay></paDiscountDisplay>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Model } from \"./repository.model\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\"\n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    constructor(private model: Model) { }\n\n    // @Output(\"paNewProduct\")\n    // newProductEvent = new EventEmitter<Product>();\n\n    submitForm(form: any) {\n        //this.newProductEvent.emit(this.newProduct);\n        this.model.saveProduct(this.newProduct);\n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <thead>\n        <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *paFor=\"let item of getProducts(); let i = index\">\n            <td>{{i + 1}}</td>\n            <td>{{item.name}}</td>\n            <td>{{item.category}}</td>\n            <td [pa-price]=\"item.price\" #discount=\"discount\">\n                {{ discount.discountAmount | currency:\"USD\":\"symbol\"}}\n            </td>\n            <td class=\"text-center\">\n                <button class=\"btn btn-danger btn-sm\"\n                        (click)=\"deleteProduct(item.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>\n</table>\n\n<paDiscountEditor></paDiscountEditor>\n<paDiscountDisplay></paDiscountDisplay>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\"\n})\nexport class ProductTableComponent {\n    //discounter: DiscountService = new DiscountService();\n\n    constructor(private dataModel: Model) { }\n\n    // @Input(\"model\")\n    // dataModel: Model;\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n    dateObject: Date = new Date(2020, 1, 20);\n    dateString: string = \"2020-02-20T00:00:00.000Z\";\n    dateNumber: number = 1582156800000;\n\n    selectMap = {\n        \"Watersports\": \"stay dry\",\n        \"Soccer\": \"score goals\",\n        \"other\": \"have fun\"\n    }\n\n    numberMap = {\n        \"=1\": \"one product\",\n        \"=2\": \"two products\",\n        \"other\": \"# products\"\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\n@Injectable()\nexport class Model {\n    //private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p:Product, id:number) => p.id == id;\n\n    constructor(private dataSource: SimpleDataSource) {\n        //this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n      let p = this.products.shift();\n      this.products.push(new Product(p.id, p.name, p.category, p.price));\n  }\n\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/structure.directive.ts",
    "content": "import {\n  Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n  selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n  constructor(private container: ViewContainerRef,\n      private template: TemplateRef<Object>) { }\n\n  @Input(\"paIf\")\n  expressionResult: boolean;\n\n  ngOnChanges(changes: { [property: string]: SimpleChange }) {\n      let change = changes[\"expressionResult\"];\n      if (!change.isFirstChange() && !change.currentValue) {\n          this.container.clear();\n      } else if (change.currentValue) {\n          this.container.createEmbeddedView(this.template);\n      }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n    <div class=\"col-4 p-2\">\n      <paProductForm></paProductForm>\n    </div>\n    <div class=\"col-8 p-2\">\n      <paProductTable></paProductTable>\n    </div>\n  </div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\">\n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\"\n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n  HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n  selector: \"input[paModel]\",\n  exportAs: \"paModel\"\n})\nexport class PaModel {\n\n  direction: string = \"None\";\n\n  @Input(\"paModel\")\n  modelProperty: string;\n\n  @HostBinding(\"value\")\n  fieldValue: string = \"\";\n\n  ngOnChanges(changes: { [property: string]: SimpleChange }) {\n      let change = changes[\"modelProperty\"];\n      if (change.currentValue != this.fieldValue) {\n          this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n          this.direction = \"Model\";\n      }\n  }\n\n  @Output(\"paModelChange\")\n  update = new EventEmitter<string>();\n\n  @HostListener(\"input\", [\"$event.target.value\"])\n  updateValue(newValue: string) {\n      this.fieldValue = newValue;\n      this.update.emit(newValue);\n      this.direction = \"Element\";\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 19/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncss-loader\nMIT\nCopyright JS Foundation and other contributors\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2020 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.51422a5c94b8290ff190.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime.359d5ee4682f20e936e9.js\" defer></script><script src=\"polyfills.bf99d438b005d57b2b31.js\" defer></script><script src=\"main.f78bdaa2683ef468e3b3.js\" defer></script></body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/dist/example/main.f78bdaa2683ef468e3b3.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(t,e,n){t.exports=n(\"zUnb\")},zUnb:function(t,e,n){\"use strict\";function r(t){return\"function\"==typeof t}n.r(e);let s=!1;const o={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else s&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");s=t},get useDeprecatedSynchronousErrorHandling(){return s}};function i(t){setTimeout(()=>{throw t},0)}const l={closed:!0,next(t){},error(t){if(o.useDeprecatedSynchronousErrorHandling)throw t;i(t)},complete(){}},u=(()=>Array.isArray||(t=>t&&\"number\"==typeof t.length))();function c(t){return null!==t&&\"object\"==typeof t}const a=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();let h=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:s,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(r(o)){s&&(this._unsubscribe=void 0);try{o.call(this)}catch(l){e=l instanceof a?d(l.errors):[l]}}if(u(i)){let t=-1,n=i.length;for(;++t<n;){const n=i[t];if(c(n))try{n.unsubscribe()}catch(l){e=e||[],l instanceof a?e=e.concat(d(l.errors)):e.push(l)}}}if(e)throw new a(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case\"function\":n=new t(e);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error(\"unrecognized teardown \"+e+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof t){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const s=this._subscriptions;return null===s?this._subscriptions=[n]:s.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}return t.EMPTY=function(t){return t.closed=!0,t}(new t),t})();function d(t){return t.reduce((t,e)=>t.concat(e instanceof a?e.errors:e),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!t){this.destination=l;break}if(\"object\"==typeof t){t instanceof p?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,t,e,n)}}[f](){return this}static create(t,e,n){const r=new p(t,e,n);return r.syncErrorThrowable=!1,r}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class _ extends p{constructor(t,e,n,s){let o;super(),this._parentSubscriber=t;let i=this;r(e)?o=e:e&&(o=e.next,n=e.error,s=e.complete,e!==l&&(i=Object.create(e),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=o,this._error=n,this._complete=s}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;o.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:n}=o;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):i(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;i(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);o.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),o.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(t,e,n){if(!o.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{e.call(this._context,n)}catch(r){return o.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=r,t.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const y=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function m(t){return t}let g=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:r}=this,s=function(t,e,n){if(t){if(t instanceof p)return t;if(t[f])return t[f]()}return t||e||n?new p(t,e,n):new p(l)}(t,e,n);if(s.add(r?r.call(s,this.source):this.source||o.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),o.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(t){try{return this._subscribe(t)}catch(e){o.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof p?n:null}return!0}(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=v(e))((e,n)=>{let r;r=this.subscribe(e=>{try{t(e)}catch(s){n(s),r&&r.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[y](){return this}pipe(...t){return 0===t.length?this:(0===(e=t).length?m:1===e.length?e[0]:function(t){return e.reduce((t,e)=>e(t),t)})(this);var e}toPromise(t){return new(t=v(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function v(t){if(t||(t=o.Promise||Promise),!t)throw new Error(\"no Promise impl found\");return t}const b=(()=>{function t(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return t.prototype=Object.create(Error.prototype),t})();class w extends h{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}class C extends p{constructor(t){super(t),this.destination=t}}let E=(()=>{class t extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(t){const e=new x(this,this);return e.operator=t,e}next(t){if(this.closed)throw new b;if(!this.isStopped){const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].next(t)}}error(t){if(this.closed)throw new b;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].error(t);this.observers.length=0}complete(){if(this.closed)throw new b;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let r=0;r<e;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new b;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new b;return this.hasError?(t.error(this.thrownError),h.EMPTY):this.isStopped?(t.complete(),h.EMPTY):(this.observers.push(t),new w(this,t))}asObservable(){const t=new g;return t.source=this,t}}return t.create=(t,e)=>new x(t,e),t})();class x extends E{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):h.EMPTY}}class k{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new T(t,this.project,this.thisArg))}}class T extends p{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}const S=t=>e=>{for(let n=0,r=t.length;n<r&&!e.closed;n++)e.next(t[n]);e.complete()};function I(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const A=I();const O=t=>{if(t&&\"function\"==typeof t[y])return o=t,t=>{const e=o[y]();if(\"function\"!=typeof e.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return e.subscribe(t)};if((e=t)&&\"number\"==typeof e.length&&\"function\"!=typeof e)return S(t);var e,n,r,s,o;if((n=t)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return s=t,t=>(s.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,i),t);if(t&&\"function\"==typeof t[A])return r=t,t=>{const e=r[A]();for(;;){let r;try{r=e.next()}catch(n){return t.error(n),t}if(r.done){t.complete();break}if(t.next(r.value),t.closed)break}return\"function\"==typeof e.return&&t.add(()=>{e.return&&e.return()}),t};{const e=c(t)?\"an invalid object\":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`)}};class D extends p{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class j extends p{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function H(t,e,n=Number.POSITIVE_INFINITY){return\"function\"==typeof e?r=>r.pipe(H((n,r)=>{return(s=t(n,r),s instanceof g?s:new g(O(s))).pipe(function(t,e){return function(e){return e.lift(new k(t,void 0))}}((t,s)=>e(n,t,r,s)));var s},n)):(\"number\"==typeof e&&(n=e),e=>e.lift(new N(t,n)))}class N{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new P(t,this.project,this.concurrent))}}class P extends j{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e)}_innerSub(t){const e=new D(this),n=this.destination;n.add(e);const r=function(t,e){if(!e.closed)return t instanceof g?t.subscribe(e):O(t)(e)}(t,e);r!==e&&n.add(r)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t){this.destination.next(t)}notifyComplete(){const t=this.buffer;this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function R(){return function(t){return t.lift(new M(t))}}class M{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const r=new F(t,n),s=e.subscribe(r);return r.closed||(r.connection=n.connect()),s}}class F extends p{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:n}=this,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new h,t.add(this.source.subscribe(new B(this.getSubject(),this))),t.closed&&(this._connection=null,t=h.EMPTY)),t}refCount(){return R()(this)}}const L=(()=>{const t=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class B extends C{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}function Z(){return new E}function z(t){return{toString:t}.toString()}const $=\"__parameters__\";function U(t,e,n){return z(()=>{const r=function(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}(e);function s(...t){if(this instanceof s)return r.apply(this,t),this;const e=new s(...t);return n.annotation=e,n;function n(t,n,r){const s=t.hasOwnProperty($)?t[$]:Object.defineProperty(t,$,{value:[]})[$];for(;s.length<=r;)s.push(null);return(s[r]=s[r]||[]).push(e),t}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s})}const W=U(\"Inject\",t=>({token:t})),q=U(\"Optional\"),Q=U(\"Self\"),G=U(\"SkipSelf\");function J(t){if(\"string\"==typeof t)return t;if(Array.isArray(t))return\"[\"+t.map(J).join(\", \")+\"]\";if(null==t)return\"\"+t;if(t.overriddenName)return\"\"+t.overriddenName;if(t.name)return\"\"+t.name;const e=t.toString();if(null==e)return\"\"+e;const n=e.indexOf(\"\\n\");return-1===n?e:e.substring(0,n)}function K(t,e){return null==t||\"\"===t?null===e?\"\":e:null==e||\"\"===e?t:t+\" \"+e}function Y(t){for(let e in t)if(t[e]===Y)return e;throw Error(\"Could not find renamed property on target object.\")}function X(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function tt(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function et(t){return nt(t,st)||nt(t,it)}function nt(t,e){return t.hasOwnProperty(e)?t[e]:null}function rt(t){return t&&(t.hasOwnProperty(ot)||t.hasOwnProperty(lt))?t[ot]:null}const st=Y({\"\\u0275prov\":Y}),ot=Y({\"\\u0275inj\":Y}),it=Y({ngInjectableDef:Y}),lt=Y({ngInjectorDef:Y});class ut{constructor(t,e){this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\\u0275prov=X({token:this,providedIn:e.providedIn||\"root\",factory:e.factory}))}toString(){return\"InjectionToken \"+this._desc}}var ct=function(t){return t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\",t}({});const at=\"undefined\"!=typeof globalThis&&globalThis,ht=\"undefined\"!=typeof window&&window,dt=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,ft=\"undefined\"!=typeof global&&global,pt=at||ft||ht||dt,_t=Y({__forward_ref__:Y});function yt(t){return t.__forward_ref__=yt,t.toString=function(){return J(this())},t}function mt(t){return\"function\"==typeof(e=t)&&e.hasOwnProperty(_t)&&e.__forward_ref__===yt?t():t;var e}function gt(t,e){t.forEach(t=>Array.isArray(t)?gt(t,e):e(t))}var vt=function(t){return t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\",t}({});const bt={},wt=[],Ct=Y({\"\\u0275cmp\":Y}),Et=Y({\"\\u0275dir\":Y}),xt=Y({\"\\u0275pipe\":Y}),kt=Y({\"\\u0275mod\":Y}),Tt=Y({\"\\u0275loc\":Y}),St=Y({\"\\u0275fac\":Y}),It=Y({__NG_ELEMENT_ID__:Y});let At=0;function Ot(t){return Pt(t)||function(t){return t[Et]||null}(t)}function Dt(t){return function(t){return t[xt]||null}(t)}const jt={};function Ht(t){const e={type:t.type,bootstrap:t.bootstrap||wt,declarations:t.declarations||wt,imports:t.imports||wt,exports:t.exports||wt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&z(()=>{jt[t.id]=t.type}),e}function Nt(t,e){if(null==t)return bt;const n={};for(const r in t)if(t.hasOwnProperty(r)){let s=t[r],o=s;Array.isArray(s)&&(o=s[1],s=s[0]),n[s]=r,e&&(e[s]=o)}return n}function Pt(t){return t[Ct]||null}function Rt(t,e){const n=t[kt]||null;if(!n&&!0===e)throw new Error(`Type ${J(t)} does not have '\\u0275mod' property.`);return n}function Mt(t){return\"function\"==typeof t?t.name||t.toString():\"object\"==typeof t&&null!=t&&\"function\"==typeof t.type?t.type.name||t.type.toString():function(t){return\"string\"==typeof t?t:null==t?\"\":\"\"+t}(t)}var Ft=function(t){return t[t.Default=0]=\"Default\",t[t.Host=1]=\"Host\",t[t.Self=2]=\"Self\",t[t.SkipSelf=4]=\"SkipSelf\",t[t.Optional=8]=\"Optional\",t}({});let Vt;function Lt(t){const e=Vt;return Vt=t,e}function Bt(t,e,n){const r=et(t);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Ft.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${J(t)}]`)}const Zt={},zt=/\\n/gm,$t=\"__source\",Ut=Y({provide:String,useValue:Y});let Wt=void 0;function qt(t){const e=Wt;return Wt=t,e}function Qt(t,e=Ft.Default){if(void 0===Wt)throw new Error(\"inject() must be called from an injection context\");return null===Wt?Bt(t,void 0,e):Wt.get(t,e&Ft.Optional?null:void 0,e)}function Gt(t,e=Ft.Default){return(Vt||Qt)(mt(t),e)}function Jt(t){const e=[];for(let n=0;n<t.length;n++){const r=mt(t[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let t=void 0,n=Ft.Default;for(let e=0;e<r.length;e++){const s=r[e];s instanceof q||\"Optional\"===s.ngMetadataName||s===q?n|=Ft.Optional:s instanceof G||\"SkipSelf\"===s.ngMetadataName||s===G?n|=Ft.SkipSelf:s instanceof Q||\"Self\"===s.ngMetadataName||s===Q?n|=Ft.Self:t=s instanceof W||s===W?s.token:s}e.push(Gt(t,n))}else e.push(Gt(r))}return e}let Kt=void 0;const Yt=20;function Xt(t){return Array.isArray(t)&&\"object\"==typeof t[1]}function te(t){return Array.isArray(t)&&!0===t[1]}function ee(t){return 0!=(8&t.flags)}function ne(t){return null!==t.template}function re(t){return!!t.listen}const se={createRenderer:(t,e)=>void 0!==Kt?Kt:\"undefined\"!=typeof document?document:void 0};function oe(t){for(;Array.isArray(t);)t=t[0];return t}function ie(t,e){return oe(e[t.index])}function le(t,e){const n=e[t];return Xt(n)?n:n[0]}function ue(t){const e=function(t){return t.__ngContext__||null}(t);return e?Array.isArray(e)?e:e.lView:null}function ce(t){return 128==(128&t[2])}function ae(t,e){return null==e?null:t[e]}function he(t){t[18]=0}function de(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const fe={lFrame:Oe(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function pe(){return fe.bindingsEnabled}function _e(){return fe.lFrame.lView}function ye(){return fe.lFrame.tView}function me(){let t=ge();for(;null!==t&&64===t.type;)t=t.parent;return t}function ge(){return fe.lFrame.currentTNode}function ve(t,e){const n=fe.lFrame;n.currentTNode=t,n.isParent=e}function be(){return fe.lFrame.isParent}function we(){return fe.isInCheckNoChangesMode}function Ce(t){fe.isInCheckNoChangesMode=t}function Ee(t,e){const n=fe.lFrame;n.bindingIndex=n.bindingRootIndex=t,xe(e)}function xe(t){fe.lFrame.currentDirectiveIndex=t}function ke(t){fe.lFrame.currentQueryIndex=t}function Te(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function Se(t,e,n){if(n&Ft.SkipSelf){let r=e,s=t;for(;r=r.parent,!(null!==r||n&Ft.Host||(r=Te(s),null===r)||(s=s[15],10&r.type)););if(null===r)return!1;e=r,t=s}const r=fe.lFrame=Ae();return r.currentTNode=e,r.lView=t,!0}function Ie(t){const e=Ae(),n=t[1];fe.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function Ae(){const t=fe.lFrame,e=null===t?null:t.child;return null===e?Oe(t):e}function Oe(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function De(){const t=fe.lFrame;return fe.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const je=De;function He(){const t=De();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Ne(t){fe.lFrame.selectedIndex=t}let Pe=!0,Re=!1;function Me(){return Re=!0,Pe}function Fe(t,e){return t.hasOwnProperty(St)?t[St]:null}class Ve extends Error{constructor(t,e){super(function(t,e){return`${t?`NG0${t}: `:\"\"}${e}`}(t,e)),this.code=t}}function Le(t,e){const n=e?\" in \"+e:\"\";throw new Ve(\"201\",`No provider for ${Mt(t)} found${n}`)}class Be{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function Ze(){const t=$e(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===bt)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}}function ze(t,e,n,r){const s=$e(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:bt,current:null}),o=s.current||(s.current={}),i=s.previous,l=this.declaredInputs[n],u=i[l];o[l]=new Be(u&&u.currentValue,e,i===bt),t[r]=e}function $e(t){return t.__ngSimpleChanges__||null}function Ue(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n<r;n++){const e=t.data[n].type.prototype,{ngAfterContentInit:r,ngAfterContentChecked:s,ngAfterViewInit:o,ngAfterViewChecked:i,ngOnDestroy:l}=e;r&&(t.contentHooks||(t.contentHooks=[])).push(-n,r),s&&((t.contentHooks||(t.contentHooks=[])).push(n,s),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,s)),o&&(t.viewHooks||(t.viewHooks=[])).push(-n,o),i&&((t.viewHooks||(t.viewHooks=[])).push(n,i),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,i)),null!=l&&(t.destroyHooks||(t.destroyHooks=[])).push(n,l)}}function We(t,e,n){Ge(t,e,3,n)}function qe(t,e,n,r){(3&t[2])===n&&Ge(t,e,n,r)}function Qe(t,e){let n=t[2];(3&n)===e&&(n&=2047,n+=1,t[2]=n)}function Ge(t,e,n,r){const s=null!=r?r:-1;let o=0;for(let i=void 0!==r?65535&t[18]:0;i<e.length;i++)if(\"number\"==typeof e[i+1]){if(o=e[i],null!=r&&o>=r)break}else e[i]<0&&(t[18]+=65536),(o<s||-1==s)&&(Je(t,n,e,i),t[18]=(4294901760&t[18])+i+2),i++}function Je(t,e,n,r){const s=n[r]<0,o=n[r+1],i=t[s?-n[r]:n[r]];s?t[2]>>11<t[18]>>16&&(3&t[2])===e&&(t[2]+=2048,o.call(i)):o.call(i)}const Ke=-1;class Ye{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}function Xe(t,e,n){const r=re(t);let s=0;for(;s<n.length;){const o=n[s];if(\"number\"==typeof o){if(0!==o)break;s++;const i=n[s++],l=n[s++],u=n[s++];r?t.setAttribute(e,l,u,i):e.setAttributeNS(i,l,u)}else{const i=o,l=n[++s];64===i.charCodeAt(0)?r&&t.setProperty(e,i,l):r?t.setAttribute(e,i,l):e.setAttribute(i,l),s++}}return s}function tn(t,e){if(null===e||0===e.length);else if(null===t||0===t.length)t=e.slice();else{let n=-1;for(let r=0;r<e.length;r++){const s=e[r];\"number\"==typeof s?n=s:0===n||en(t,n,s,null,-1===n||2===n?e[++r]:null)}}return t}function en(t,e,n,r,s){let o=0,i=t.length;if(-1===e)i=-1;else for(;o<t.length;){const n=t[o++];if(\"number\"==typeof n){if(n===e){i=-1;break}if(n>e){i=o-1;break}}}for(;o<t.length;){const e=t[o];if(\"number\"==typeof e)break;if(e===n){if(null===r)return void(null!==s&&(t[o+1]=s));if(r===t[o+1])return void(t[o+2]=s)}o++,null!==r&&o++,null!==s&&o++}-1!==i&&(t.splice(i,0,e),o=i+1),t.splice(o++,0,n),null!==r&&t.splice(o++,0,r),null!==s&&t.splice(o++,0,s)}function nn(t){return 32767&t}function rn(t,e){let n=t>>16,r=e;for(;n>0;)r=r[15],n--;return r}let sn=!0;function on(t){const e=sn;return sn=t,e}let ln=0;function un(t,e){const n=an(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,cn(r.data,t),cn(e,null),cn(r.blueprint,null));const s=hn(t,e),o=t.injectorIndex;if(s!==Ke){const t=nn(s),n=rn(s,e),r=n[1].data;for(let s=0;s<8;s++)e[o+s]=n[t+s]|r[t+s]}return e[o+8]=s,o}function cn(t,e){t.push(0,0,0,0,0,0,0,0,e)}function an(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function hn(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,s=e;for(;null!==s;){const t=s[1],e=t.type;if(r=2===e?t.declTNode:1===e?s[6]:null,null===r)return Ke;if(n++,s=s[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return Ke}function dn(t,e,n){!function(t,e,n){let r;\"string\"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(It)&&(r=n[It]),null==r&&(r=n[It]=ln++);const s=255&r,o=1<<s,i=64&s,l=32&s,u=e.data;128&s?i?l?u[t+7]|=o:u[t+6]|=o:l?u[t+5]|=o:u[t+4]|=o:i?l?u[t+3]|=o:u[t+2]|=o:l?u[t+1]|=o:u[t]|=o}(t,e,n)}function fn(t,e,n){if(n&Ft.Optional)return t;Le(e,\"NodeInjector\")}function pn(t,e,n,r){if(n&Ft.Optional&&void 0===r&&(r=null),0==(n&(Ft.Self|Ft.Host))){const s=t[9],o=Lt(void 0);try{return s?s.get(e,r,n&Ft.Optional):Bt(e,r,n&Ft.Optional)}finally{Lt(o)}}return fn(r,e,n)}const _n={};function yn(){return new wn(me(),_e())}function mn(t,e,n,r,s,o){const i=e[1],l=i.data[t+8],u=function(t,e,n,r,s){const o=t.providerIndexes,i=e.data,l=1048575&o,u=t.directiveStart,c=o>>20,a=s?l+c:t.directiveEnd;for(let h=r?l:l+c;h<a;h++){const t=i[h];if(h<u&&n===t||h>=u&&t.type===n)return h}if(s){const t=i[u];if(t&&ne(t)&&t.type===n)return u}return null}(l,i,n,null==r?function(t){return 2==(2&t.flags)}(l)&&sn:r!=i&&0!=(3&l.type),s&Ft.Host&&o===l);return null!==u?gn(e,i,u,l):_n}function gn(t,e,n,r){let s=t[n];const o=e.data;if(s instanceof Ye){const i=s;i.resolving&&function(t,e){throw new Ve(\"200\",\"Circular dependency in DI detected for \"+t)}(Mt(o[n]));const l=on(i.canSeeViewProviders);i.resolving=!0;const u=i.injectImpl?Lt(i.injectImpl):null;Se(t,r,Ft.Default);try{s=t[n]=i.factory(void 0,o,t,r),e.firstCreatePass&&n>=r.directiveStart&&function(t,e,n){const{ngOnChanges:r,ngOnInit:s,ngDoCheck:o}=e.type.prototype;if(r){const r=((i=e).type.prototype.ngOnChanges&&(i.setInput=ze),Ze);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,r)}var i;s&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,s),o&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,o))}(n,o[n],e)}finally{null!==u&&Lt(u),on(l),i.resolving=!1,je()}}return s}function vn(t,e,n){const r=64&t,s=32&t;let o;return o=128&t?r?s?n[e+7]:n[e+6]:s?n[e+5]:n[e+4]:r?s?n[e+3]:n[e+2]:s?n[e+1]:n[e],!!(o&1<<t)}function bn(t,e){return!(t&Ft.Self||t&Ft.Host&&e)}class wn{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return function(t,e,n,r=Ft.Default,s){if(null!==t){const o=function(t){if(\"string\"==typeof t)return t.charCodeAt(0)||0;const e=t.hasOwnProperty(It)?t[It]:void 0;return\"number\"==typeof e?e>=0?255&e:yn:e}(n);if(\"function\"==typeof o){if(!Se(e,t,r))return r&Ft.Host?fn(s,n,r):pn(e,n,r,s);try{const t=o();if(null!=t||r&Ft.Optional)return t;Le(n)}finally{je()}}else if(\"number\"==typeof o){let s=null,i=an(t,e),l=Ke,u=r&Ft.Host?e[16][6]:null;for((-1===i||r&Ft.SkipSelf)&&(l=-1===i?hn(t,e):e[i+8],l!==Ke&&bn(r,!1)?(s=e[1],i=nn(l),e=rn(l,e)):i=-1);-1!==i;){const t=e[1];if(vn(o,i,t.data)){const t=mn(i,e,n,s,r,u);if(t!==_n)return t}l=e[i+8],l!==Ke&&bn(r,e[1].data[i+8]===u)&&vn(o,i,e)?(s=t,i=nn(l),e=rn(l,e)):i=-1}}}return pn(e,n,r,s)}(this._tNode,this._lView,t,void 0,e)}}function Cn(t){return t.ngDebugContext}function En(t){return t.ngOriginalError}function xn(t,...e){t.error(...e)}class kn{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),r=function(t){return t.ngErrorLogger||xn}(t);r(this._console,\"ERROR\",t),e&&r(this._console,\"ORIGINAL ERROR\",e),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(t){return t?Cn(t)?Cn(t):this._findContext(En(t)):null}_findOriginalError(t){let e=En(t);for(;e&&En(e);)e=En(e);return e}}function Tn(t,e){t.__ngContext__=e}const Sn=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(pt))();function In(t){return t instanceof Function?t():t}var An=function(t){return t[t.Important=1]=\"Important\",t[t.DashCase=2]=\"DashCase\",t}({});function On(t,e){return(void 0)(t,e)}function Dn(t){const e=t[3];return te(e)?e[3]:e}function jn(t){return Nn(t[13])}function Hn(t){return Nn(t[4])}function Nn(t){for(;null!==t&&!te(t);)t=t[4];return t}function Pn(t,e,n,r,s){if(null!=r){let o,i=!1;te(r)?o=r:Xt(r)&&(i=!0,r=r[0]);const l=oe(r);0===t&&null!==n?null==s?Vn(e,n,l):Fn(e,n,l,s||null,!0):1===t&&null!==n?Fn(e,n,l,s||null,!0):2===t?function(t,e,n){const r=function(t,e){return re(t)?t.parentNode(e):e.parentNode}(t,e);r&&function(t,e,n,r){re(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,l,i):3===t&&e.destroyNode(l),null!=o&&function(t,e,n,r,s){const o=n[7];o!==oe(n)&&Pn(e,t,r,o,s);for(let i=10;i<n.length;i++){const s=n[i];zn(s[1],s,t,e,r,o)}}(e,t,o,n,s)}}function Rn(t,e,n){return re(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Mn(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r<n.length;r+=2){const t=e[n[r]];if(!(t instanceof Ye)){const e=n[r+1];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)e[n+1].call(t[e[n]]);else e.call(t)}}}(t,e),function(t,e){const n=t.cleanup;if(null!==n){const t=e[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const s=n[r+1],o=\"function\"==typeof s?s(e):oe(e[s]),i=t[n[r+2]],l=n[r+3];\"boolean\"==typeof l?o.removeEventListener(n[r],i,l):l>=0?t[l]():t[-l].unsubscribe(),r+=2}else n[r].call(t[n[r+1]]);e[7]=null}}(t,e),1===e[1].type&&re(e[11])&&e[11].destroy();const n=e[17];if(null!==n&&te(e[3])){n!==e[3]&&function(t,e){const n=t[9],r=n.indexOf(e),s=e[3];1024&e[2]&&(e[2]&=-1025,de(s,-1)),n.splice(r,1)}(n,e);const r=e[19];null!==r&&r.detachView(t)}}}function Fn(t,e,n,r,s){re(t)?t.insertBefore(e,n,r,s):e.insertBefore(n,r,s)}function Vn(t,e,n){re(t)?t.appendChild(e,n):e.appendChild(n)}function Ln(t,e,n,r,s){null!==r?Fn(t,e,n,r,s):Vn(t,e,n)}function Bn(t,e,n,r){const s=function(t,e,n){return function(t,e,n){let r=e;for(;null!==r&&40&r.type;)r=(e=r).parent;if(null===r)return n[0];if(2&r.flags){const e=t.data[r.directiveStart].encapsulation;if(e===vt.None||e===vt.Emulated)return null}return ie(r,n)}(t,e.parent,n)}(t,r,e),o=e[11],i=function(t,e,n){return function(t,e,n){return 40&t.type?ie(t,n):null}(t,0,n)}(r.parent||e[6],0,e);if(null!=s)if(Array.isArray(n))for(let l=0;l<n.length;l++)Ln(o,s,n[l],i,!1);else Ln(o,s,n,i,!1)}function Zn(t,e,n,r,s,o,i){for(;null!=n;){const l=r[n.index],u=n.type;if(i&&0===e&&(l&&Tn(oe(l),r),n.flags|=4),64!=(64&n.flags))if(8&u)Zn(t,e,n.child,r,s,o,!1),Pn(e,t,s,l,o);else if(32&u){const i=On(n,r);let u;for(;u=i();)Pn(e,t,s,u,o);Pn(e,t,s,l,o)}else 16&u?$n(t,e,r,n,s,o):Pn(e,t,s,l,o);n=i?n.projectionNext:n.next}}function zn(t,e,n,r,s,o){Zn(n,r,t.firstChild,e,s,o,!1)}function $n(t,e,n,r,s,o){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)Pn(e,t,s,l[u],o);else Zn(t,e,l,i[3],s,o,!0)}function Un(t,e,n){re(t)?t.setAttribute(e,\"style\",n):e.style.cssText=n}function Wn(t,e,n){re(t)?\"\"===n?t.removeAttribute(e,\"class\"):t.setAttribute(e,\"class\",n):e.className=n}function qn(t,e,n){let r=t.length;for(;;){const s=t.indexOf(e,n);if(-1===s)return s;if(0===s||t.charCodeAt(s-1)<=32){const n=e.length;if(s+n===r||t.charCodeAt(s+n)<=32)return s}n=s+1}}const Qn=\"ng-template\";function Gn(t,e,n){let r=0;for(;r<t.length;){let s=t[r++];if(n&&\"class\"===s){if(s=t[r],-1!==qn(s.toLowerCase(),e,0))return!0}else if(1===s){for(;r<t.length&&\"string\"==typeof(s=t[r++]);)if(s.toLowerCase()===e)return!0;return!1}}return!1}function Jn(t){return 4===t.type&&t.value!==Qn}function Kn(t,e,n){return e===(4!==t.type||n?t.value:Qn)}function Yn(t,e,n){let r=4;const s=t.attrs||[],o=function(t){for(let n=0;n<t.length;n++)if(3===(e=t[n])||4===e||6===e)return n;var e;return t.length}(s);let i=!1;for(let l=0;l<e.length;l++){const u=e[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!Kn(t,u,n)||\"\"===u&&1===e.length){if(Xn(r))return!1;i=!0}}else{const c=8&r?u:e[++l];if(8&r&&null!==t.attrs){if(!Gn(t.attrs,c,n)){if(Xn(r))return!1;i=!0}continue}const a=tr(8&r?\"class\":u,s,Jn(t),n);if(-1===a){if(Xn(r))return!1;i=!0;continue}if(\"\"!==c){let t;t=a>o?\"\":s[a+1].toLowerCase();const e=8&r?t:null;if(e&&-1!==qn(e,c,0)||2&r&&c!==t){if(Xn(r))return!1;i=!0}}}}else{if(!i&&!Xn(r)&&!Xn(u))return!1;if(i&&Xn(u))continue;i=!1,r=u|1&r}}return Xn(r)||i}function Xn(t){return 0==(1&t)}function tr(t,e,n,r){if(null===e)return-1;let s=0;if(r||!n){let n=!1;for(;s<e.length;){const r=e[s];if(r===t)return s;if(3===r||6===r)n=!0;else{if(1===r||2===r){let t=e[++s];for(;\"string\"==typeof t;)t=e[++s];continue}if(4===r)break;if(0===r){s+=4;continue}}s+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){const r=t[n];if(\"number\"==typeof r)return-1;if(r===e)return n;n++}return-1}(e,t)}function er(t,e,n=!1){for(let r=0;r<e.length;r++)if(Yn(t,e[r],n))return!0;return!1}function nr(t,e){return t?\":not(\"+e.trim()+\")\":e}function rr(t){let e=t[0],n=1,r=2,s=\"\",o=!1;for(;n<t.length;){let i=t[n];if(\"string\"==typeof i)if(2&r){const e=t[++n];s+=\"[\"+i+(e.length>0?'=\"'+e+'\"':\"\")+\"]\"}else 8&r?s+=\".\"+i:4&r&&(s+=\" \"+i);else\"\"===s||Xn(i)||(e+=nr(o,s),s=\"\"),r=i,o=o||!Xn(r);n++}return\"\"!==s&&(e+=nr(o,s)),e}const sr={};function or(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const s=n[r],o=n[r+1];if(-1!==o){const n=t.data[o];ke(s),n.contentQueries(2,e[o],o)}}}function ir(t,e,n,r,s,o,i,l,u,c){const a=e.blueprint.slice();return a[0]=s,a[2]=140|r,he(a),a[3]=a[15]=t,a[8]=n,a[10]=i||t&&t[10],a[11]=l||t&&t[11],a[12]=u||t&&t[12]||null,a[9]=c||t&&t[9]||null,a[6]=o,a[16]=2==e.type?t[16]:a,a}function lr(t,e,n,r,s){let o=t.data[e];if(null===o)o=function(t,e,n,r,s){const o=ge(),i=be(),l=t.data[e]=function(t,e,n,r,s,o){return{type:n,index:r,insertBeforeIndex:null,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:s,attrs:o,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,i?o:o&&o.parent,n,e,r,s);return null===t.firstChild&&(t.firstChild=l),null!==o&&(i?null==o.child&&null!==l.parent&&(o.child=l):null===o.next&&(o.next=l)),l}(t,e,n,r,s),fe.lFrame.inI18n&&(o.flags|=64);else if(64&o.type){o.type=n,o.value=r,o.attrs=s;const t=function(){const t=fe.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}();o.injectorIndex=null===t?-1:t.injectorIndex}return ve(o,!0),o}function ur(t,e,n,r){if(0===n)return-1;const s=e.length;for(let o=0;o<n;o++)e.push(r),t.blueprint.push(r),t.data.push(null);return s}function cr(t,e,n){Ie(e);try{const r=t.viewQuery;null!==r&&Dr(1,r,n);const s=t.template;null!==s&&dr(t,e,s,1,n),t.firstCreatePass&&(t.firstCreatePass=!1),t.staticContentQueries&&or(t,e),t.staticViewQueries&&Dr(2,t.viewQuery,n);const o=t.components;null!==o&&function(t,e){for(let n=0;n<e.length;n++)Sr(t,e[n])}(e,o)}catch(r){throw t.firstCreatePass&&(t.incompleteFirstPass=!0),r}finally{e[2]&=-5,He()}}function ar(t,e,n,r){const s=e[2];if(256==(256&s))return;Ie(e);const o=we();try{he(e),fe.lFrame.bindingIndex=t.bindingStartIndex,null!==n&&dr(t,e,n,2,r);const i=3==(3&s);if(!o)if(i){const n=t.preOrderCheckHooks;null!==n&&We(e,n,null)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,null),Qe(e,0)}if(function(t){for(let e=jn(t);null!==e;e=Hn(e)){if(!e[2])continue;const t=e[9];for(let e=0;e<t.length;e++){const n=t[e],r=n[3];0==(1024&n[2])&&de(r,1),n[2]|=1024}}}(e),function(t){for(let e=jn(t);null!==e;e=Hn(e))for(let t=10;t<e.length;t++){const n=e[t],r=n[1];ce(n)&&ar(r,n,r.template,n[8])}}(e),null!==t.contentQueries&&or(t,e),!o)if(i){const n=t.contentCheckHooks;null!==n&&We(e,n)}else{const n=t.contentHooks;null!==n&&qe(e,n,1),Qe(e,1)}!function(t,e){const n=t.hostBindingOpCodes;if(null!==n)try{for(let t=0;t<n.length;t++){const r=n[t];if(r<0)Ne(~r);else{const s=r,o=n[++t],i=n[++t];Ee(o,s),i(2,e[s])}}}finally{Ne(-1)}}(t,e);const l=t.components;null!==l&&function(t,e){for(let n=0;n<e.length;n++)kr(t,e[n])}(e,l);const u=t.viewQuery;if(null!==u&&Dr(2,u,r),!o)if(i){const n=t.viewCheckHooks;null!==n&&We(e,n)}else{const n=t.viewHooks;null!==n&&qe(e,n,2),Qe(e,2)}!0===t.firstUpdatePass&&(t.firstUpdatePass=!1),o||(e[2]&=-73),1024&e[2]&&(e[2]&=-1025,de(e[3],-1))}finally{He()}}function hr(t,e,n,r){const s=e[10],o=!we(),i=4==(4&e[2]);try{o&&!i&&s.begin&&s.begin(),i&&cr(t,e,r),ar(t,e,n,r)}finally{o&&!i&&s.end&&s.end()}}function dr(t,e,n,r,s){const o=fe.lFrame.selectedIndex;try{Ne(-1),2&r&&e.length>Yt&&function(t,e,n,r){if(!r)if(3==(3&e[2])){const n=t.preOrderCheckHooks;null!==n&&We(e,n,20)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,20)}Ne(20)}(t,e,0,we()),n(r,s)}finally{Ne(o)}}function fr(t){const e=t.tView;return null===e||e.incompleteFirstPass?t.tView=pr(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts):e}function pr(t,e,n,r,s,o,i,l,u,c){const a=Yt+r,h=a+s,d=function(t,e){const n=[];for(let r=0;r<e;r++)n.push(r<t?null:sr);return n}(a,h),f=\"function\"==typeof c?c():c;return d[1]={type:t,blueprint:d,template:n,queries:null,viewQuery:l,declTNode:e,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof o?o():o,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:f,incompleteFirstPass:!1}}function _r(t,e,n){for(let r in t)if(t.hasOwnProperty(r)){const s=t[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(e,s):n[r]=[e,s]}return n}function yr(t,e,n,r,s,o){const i=o.hostBindings;if(i){let n=t.hostBindingOpCodes;null===n&&(n=t.hostBindingOpCodes=[]);const o=~e.index;(function(t){let e=t.length;for(;e>0;){const n=t[--e];if(\"number\"==typeof n&&n<0)return n}return 0})(n)!=o&&n.push(o),n.push(r,s,i)}}function mr(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function gr(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function vr(t,e,n){if(n){if(e.exportAs)for(let r=0;r<e.exportAs.length;r++)n[e.exportAs[r]]=t;ne(e)&&(n[\"\"]=t)}}function br(t,e,n){t.flags|=1,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function wr(t,e,n,r,s){t.data[r]=s;const o=s.factory||(s.factory=Fe(s.type)),i=new Ye(o,ne(s),null);t.blueprint[r]=i,n[r]=i,yr(t,e,0,r,ur(t,n,s.hostVars,sr),s)}function Cr(t,e,n){const r=ie(e,t),s=fr(n),o=t[10],i=Ir(t,ir(t,s,null,n.onPush?64:16,r,e,o,o.createRenderer(r,n),null,null));t[e.index]=i}function Er(t,e,n,r,s,o){const i=o[e];if(null!==i){const t=r.setInput;for(let e=0;e<i.length;){const s=i[e++],o=i[e++],l=i[e++];null!==t?r.setInput(n,l,s,o):n[o]=l}}}function xr(t,e){let n=null,r=0;for(;r<e.length;){const s=e[r];if(0!==s)if(5!==s){if(\"number\"==typeof s)break;t.hasOwnProperty(s)&&(null===n&&(n=[]),n.push(s,t[s],e[r+1])),r+=2}else r+=2;else r+=4}return n}function kr(t,e){const n=le(e,t);if(ce(n)){const t=n[1];80&n[2]?ar(t,n,t.template,n[8]):n[5]>0&&Tr(n)}}function Tr(t){for(let n=jn(t);null!==n;n=Hn(n))for(let t=10;t<n.length;t++){const e=n[t];if(1024&e[2]){const t=e[1];ar(t,e,t.template,e[8])}else e[5]>0&&Tr(e)}const e=t[1].components;if(null!==e)for(let n=0;n<e.length;n++){const r=le(e[n],t);ce(r)&&r[5]>0&&Tr(r)}}function Sr(t,e){const n=le(e,t),r=n[1];!function(t,e){for(let n=e.length;n<t.blueprint.length;n++)e.push(t.blueprint[n])}(r,n),cr(r,n,n[8])}function Ir(t,e){return t[13]?t[14][4]=e:t[13]=e,t[14]=e,e}function Ar(t,e,n){const r=e[10];r.begin&&r.begin();try{ar(t,e,t.template,n)}catch(s){throw function(t,e){const n=t[9],r=n?n.get(kn,null):null;r&&r.handleError(e)}(e,s),s}finally{r.end&&r.end()}}function Or(t){!function(t){for(let e=0;e<t.components.length;e++){const n=t.components[e],r=ue(n),s=r[1];hr(s,r,s.template,n)}}(t[8])}function Dr(t,e,n){ke(0),e(t,n)}const jr=(()=>Promise.resolve(null))();function Hr(t,e,n){let r=n?t.styles:null,s=n?t.classes:null,o=0;if(null!==e)for(let i=0;i<e.length;i++){const t=e[i];\"number\"==typeof t?o=t:1==o?s=K(s,t):2==o&&(r=K(r,t+\": \"+e[++i]+\";\"))}n?t.styles=r:t.stylesWithoutHost=r,n?t.classes=s:t.classesWithoutHost=s}const Nr=new ut(\"INJECTOR\",-1);class Pr{get(t,e=Zt){if(e===Zt){const e=new Error(`NullInjectorError: No provider for ${J(t)}!`);throw e.name=\"NullInjectorError\",e}return e}}const Rr=new ut(\"Set Injector scope.\"),Mr={},Fr={},Vr=[];let Lr=void 0;function Br(){return void 0===Lr&&(Lr=new Pr),Lr}function Zr(t,e=null,n=null,r){return new zr(t,n,e||Br(),r)}class zr{constructor(t,e,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];e&&gt(e,n=>this.processProvider(n,t,e)),gt([t],t=>this.processInjectorType(t,[],s)),this.records.set(Nr,Ur(void 0,this));const o=this.records.get(Rr);this.scope=null!=o?o.value:null,this.source=r||(\"object\"==typeof t?null:J(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Zt,n=Ft.Default){this.assertNotDestroyed();const r=qt(this);try{if(!(n&Ft.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=(\"function\"==typeof(s=t)||\"object\"==typeof s&&s instanceof ut)&&et(t);e=n&&this.injectableDefInScope(n)?Ur($r(t),Mr):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(n&Ft.Self?Br():this.parent).get(t,e=n&Ft.Optional&&e===Zt?null:e)}catch(o){if(\"NullInjectorError\"===o.name){if((o.ngTempTokenPath=o.ngTempTokenPath||[]).unshift(J(t)),r)throw o;return function(t,e,n,r){const s=t.ngTempTokenPath;throw e[$t]&&s.unshift(e[$t]),t.message=function(t,e,n,r=null){t=t&&\"\\n\"===t.charAt(0)&&\"\\u0275\"==t.charAt(1)?t.substr(2):t;let s=J(e);if(Array.isArray(e))s=e.map(J).join(\" -> \");else if(\"object\"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];t.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):J(r)))}s=`{${t.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${s}]: ${t.replace(zt,\"\\n  \")}`}(\"\\n\"+t.message,s,n,r),t.ngTokenPath=s,t.ngTempTokenPath=null,t}(o,t,\"R3InjectorError\",this.source)}throw o}finally{qt(r)}var s}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((e,n)=>t.push(J(n))),`R3Injector[${t.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(t,e,n){if(!(t=mt(t)))return!1;let r=rt(t);const s=null==r&&t.ngModule||void 0,o=void 0===s?t:s,i=-1!==n.indexOf(o);if(void 0!==s&&(r=rt(s)),null==r)return!1;if(null!=r.imports&&!i){let t;n.push(o);try{gt(r.imports,r=>{this.processInjectorType(r,e,n)&&(void 0===t&&(t=[]),t.push(r))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:r}=t[e];gt(r,t=>this.processProvider(t,n,r||Vr))}}this.injectorDefTypes.add(o),this.records.set(o,Ur(r.factory,Mr));const l=r.providers;if(null!=l&&!i){const e=t;gt(l,t=>this.processProvider(t,e,l))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,n){let r=qr(t=mt(t))?t:mt(t&&t.provide);const s=function(t,e,n){return Wr(t)?Ur(void 0,t.useValue):Ur(function(t,e,n){let r=void 0;if(qr(t)){const e=mt(t);return Fe(e)||$r(e)}if(Wr(t))r=()=>mt(t.useValue);else if((s=t)&&s.useFactory)r=()=>t.useFactory(...Jt(t.deps||[]));else if(function(t){return!(!t||!t.useExisting)}(t))r=()=>Gt(mt(t.useExisting));else{const e=mt(t&&(t.useClass||t.provide));if(!function(t){return!!t.deps}(t))return Fe(e)||$r(e);r=()=>new e(...Jt(t.deps))}var s;return r}(t),Mr)}(t);if(qr(t)||!0!==t.multi)this.records.get(r);else{let e=this.records.get(r);e||(e=Ur(void 0,Mr,!0),e.factory=()=>Jt(e.multi),this.records.set(r,e)),r=t,e.multi.push(t)}this.records.set(r,s)}hydrate(t,e){var n;return e.value===Mr&&(e.value=Fr,e.value=e.factory()),\"object\"==typeof e.value&&e.value&&null!==(n=e.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&(\"string\"==typeof t.providedIn?\"any\"===t.providedIn||t.providedIn===this.scope:this.injectorDefTypes.has(t.providedIn))}}function $r(t){const e=et(t),n=null!==e?e.factory:Fe(t);if(null!==n)return n;const r=rt(t);if(null!==r)return r.factory;if(t instanceof ut)throw new Error(`Token ${J(t)} is missing a \\u0275prov definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=function(t,e){const n=[];for(let r=0;r<t;r++)n.push(\"?\");return n}(e);throw new Error(`Can't resolve all parameters for ${J(t)}: (${n.join(\", \")}).`)}const n=function(t){const e=t&&(t[st]||t[it]);if(e){const n=function(t){if(t.hasOwnProperty(\"name\"))return t.name;const e=(\"\"+t).match(/^function\\s*([^\\s(]+)/);return null===e?\"\":e[1]}(t);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\nThis will become an error in a future version of Angular. Please add @Injectable() to the \"${n}\" class.`),e}return null}(t);return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error(\"unreachable\")}function Ur(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Wr(t){return null!==t&&\"object\"==typeof t&&Ut in t}function qr(t){return\"function\"==typeof t}const Qr=function(t,e,n){return function(t,e=null,n=null,r){const s=Zr(t,e,n,r);return s._resolveInjectorDefTypes(),s}({name:n},e,t,n)};let Gr=(()=>{class t{static create(t,e){return Array.isArray(t)?Qr(t,e,\"\"):Qr(t.providers,t.parent,t.name||\"\")}}return t.THROW_IF_NOT_FOUND=Zt,t.NULL=new Pr,t.\\u0275prov=X({token:t,providedIn:\"any\",factory:()=>Gt(Nr)}),t.__NG_ELEMENT_ID__=-1,t})();function Jr(t,e){Ue(ue(t)[1],me())}let Kr=null;function Yr(){if(!Kr){const t=pt.Symbol;if(t&&t.iterator)Kr=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Kr=n)}}}return Kr}function Xr(t){return!!ts(t)&&(Array.isArray(t)||!(t instanceof Map)&&Yr()in t)}function ts(t){return null!==t&&(\"function\"==typeof t||\"object\"==typeof t)}function es(t,e,n,r,s){const o=s?\"class\":\"style\";!function(t,e,n,r,s){for(let o=0;o<n.length;){const i=n[o++],l=n[o++],u=e[i],c=t.data[i];null!==c.setInput?c.setInput(u,s,r,l):u[l]=s}}(t,n,e.inputs[o],o,r)}function ns(t,e,n,r){const s=_e(),o=ye(),i=Yt+t,l=s[11],u=s[i]=Rn(l,e,fe.lFrame.currentNamespace),c=o.firstCreatePass?function(t,e,n,r,s,o,i){const l=e.consts,u=lr(e,t,2,s,ae(l,o));return function(t,e,n,r){let s=!1;if(pe()){const o=function(t,e,n){const r=t.directiveRegistry;let s=null;if(r)for(let o=0;o<r.length;o++){const i=r[o];er(n,i.selectors,!1)&&(s||(s=[]),dn(un(n,e),t,i.type),ne(i)?(gr(t,n),s.unshift(i)):s.push(i))}return s}(t,e,n),i=null===r?null:{\"\":-1};if(null!==o){s=!0,br(n,t.data.length,o.length);for(let t=0;t<o.length;t++){const e=o[t];e.providersResolver&&e.providersResolver(e)}let r=!1,l=!1,u=ur(t,e,o.length,null);for(let s=0;s<o.length;s++){const c=o[s];n.mergedAttrs=tn(n.mergedAttrs,c.hostAttrs),wr(t,n,e,u,c),vr(u,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128);const a=c.type.prototype;!r&&(a.ngOnChanges||a.ngOnInit||a.ngDoCheck)&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n.index),r=!0),l||!a.ngOnChanges&&!a.ngDoCheck||((t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n.index),l=!0),u++}!function(t,e){const n=e.directiveEnd,r=t.data,s=e.attrs,o=[];let i=null,l=null;for(let u=e.directiveStart;u<n;u++){const t=r[u],n=t.inputs,c=null===s||Jn(e)?null:xr(n,s);o.push(c),i=_r(n,u,i),l=_r(t.outputs,u,l)}null!==i&&(i.hasOwnProperty(\"class\")&&(e.flags|=16),i.hasOwnProperty(\"style\")&&(e.flags|=32)),e.initialInputs=o,e.inputs=i,e.outputs=l}(t,n)}i&&function(t,e,n){if(e){const r=t.localNames=[];for(let t=0;t<e.length;t+=2){const s=n[e[t+1]];if(null==s)throw new Ve(\"301\",`Export of name '${e[t+1]}' not found!`);r.push(e[t],s)}}}(n,r,i)}n.mergedAttrs=tn(n.mergedAttrs,n.attrs)}(e,n,u,ae(l,i)),null!==u.attrs&&Hr(u,u.attrs,!1),null!==u.mergedAttrs&&Hr(u,u.mergedAttrs,!0),null!==e.queries&&e.queries.elementStart(e,u),u}(i,o,s,0,e,n,r):o.data[i];ve(c,!0);const a=c.mergedAttrs;null!==a&&Xe(l,u,a);const h=c.classes;null!==h&&Wn(l,u,h);const d=c.styles;null!==d&&Un(l,u,d),64!=(64&c.flags)&&Bn(o,s,u,c),0===fe.lFrame.elementDepthCount&&Tn(u,s),fe.lFrame.elementDepthCount++,function(t){return 1==(1&t.flags)}(c)&&(function(t,e,n){pe()&&(function(t,e,n,r){const s=n.directiveStart,o=n.directiveEnd;t.firstCreatePass||un(n,e),Tn(r,e);const i=n.initialInputs;for(let l=s;l<o;l++){const r=t.data[l],o=ne(r);o&&Cr(e,n,r);const u=gn(e,t,l,n);Tn(u,e),null!==i&&Er(0,l-s,u,r,0,i),o&&(le(n.index,e)[8]=u)}}(t,e,n,ie(n,e)),128==(128&n.flags)&&function(t,e,n){const r=n.directiveStart,s=n.directiveEnd,o=n.index,i=fe.lFrame.currentDirectiveIndex;try{Ne(o);for(let n=r;n<s;n++){const r=t.data[n],s=e[n];xe(n),null===r.hostBindings&&0===r.hostVars&&null===r.hostAttrs||mr(r,s)}}finally{Ne(-1),xe(i)}}(t,e,n))}(o,s,c),function(t,e,n){if(ee(e)){const r=e.directiveEnd;for(let s=e.directiveStart;s<r;s++){const e=t.data[s];e.contentQueries&&e.contentQueries(1,n[s],s)}}}(o,c,s)),null!==r&&function(t,e,n=ie){const r=e.localNames;if(null!==r){let s=e.index+1;for(let o=0;o<r.length;o+=2){const i=r[o+1],l=-1===i?n(e,t):t[i];t[s++]=l}}}(s,c)}function rs(t){return!!t&&\"function\"==typeof t.then}const ss=void 0;var os=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],ss],[[\"AM\",\"PM\"],ss,ss],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],ss,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],ss,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",ss,\"{1} 'at' {0}\",ss],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},\"ltr\",function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===e&&0===n?1:5}];let is={};function ls(t){return t in is||(is[t]=pt.ng&&pt.ng.common&&pt.ng.common.locales&&pt.ng.common.locales[t]),is[t]}var us=function(t){return t[t.LocaleId=0]=\"LocaleId\",t[t.DayPeriodsFormat=1]=\"DayPeriodsFormat\",t[t.DayPeriodsStandalone=2]=\"DayPeriodsStandalone\",t[t.DaysFormat=3]=\"DaysFormat\",t[t.DaysStandalone=4]=\"DaysStandalone\",t[t.MonthsFormat=5]=\"MonthsFormat\",t[t.MonthsStandalone=6]=\"MonthsStandalone\",t[t.Eras=7]=\"Eras\",t[t.FirstDayOfWeek=8]=\"FirstDayOfWeek\",t[t.WeekendRange=9]=\"WeekendRange\",t[t.DateFormat=10]=\"DateFormat\",t[t.TimeFormat=11]=\"TimeFormat\",t[t.DateTimeFormat=12]=\"DateTimeFormat\",t[t.NumberSymbols=13]=\"NumberSymbols\",t[t.NumberFormats=14]=\"NumberFormats\",t[t.CurrencyCode=15]=\"CurrencyCode\",t[t.CurrencySymbol=16]=\"CurrencySymbol\",t[t.CurrencyName=17]=\"CurrencyName\",t[t.Currencies=18]=\"Currencies\",t[t.Directionality=19]=\"Directionality\",t[t.PluralCase=20]=\"PluralCase\",t[t.ExtraData=21]=\"ExtraData\",t}({});const cs=\"en-US\";let as=cs;function hs(t){var e,n;n=\"Expected localeId to be defined\",null==(e=t)&&function(t,e,n,r){throw new Error(\"ASSERTION ERROR: \"+t+` [Expected=> null != ${e} <=Actual]`)}(n,e),\"string\"==typeof t&&(as=t.toLowerCase().replace(/_/g,\"-\"))}class ds{}class fs{resolveComponentFactory(t){throw function(t){const e=Error(`No component factory found for ${J(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(t)}}let ps=(()=>{class t{}return t.NULL=new fs,t})();function _s(...t){}function ys(t,e){return new gs(ie(t,e))}const ms=function(){return ys(me(),_e())};let gs=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=ms,t})();class vs{}let bs=(()=>{class t{}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>null}),t})();class ws{constructor(t){this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}}const Cs=new ws(\"11.0.2\");class Es{constructor(){}supports(t){return Xr(t)}create(t){return new ks(t)}}const xs=(t,e)=>e;class ks{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||xs}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,r=0,s=null;for(;e||n;){const o=!n||e&&e.currentIndex<As(n,r,s)?e:n,i=As(o,r,s),l=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(e=e._next,null==o.previousIndex)r++;else{s||(s=[]);const t=i-r,e=l-r;if(t!=e){for(let n=0;n<t;n++){const r=n<s.length?s[n]:s[n]=0,o=r+n;e<=o&&o<t&&(s[n]=r+1)}s[o.previousIndex]=e-t}}i!==l&&t(o,i,l)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!Xr(t))throw new Error(`Error trying to diff '${J(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,r,s=this._itHead,o=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],r=this._trackByFn(e,n),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,n,r,e)),Object.is(s.item,n)||this._addIdentityChange(s,n)):(s=this._mismatch(s,n,r,e),o=!0),s=s._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[Yr()]();let r;for(;!(r=n.next()).done;)e(r.value)}}(t,t=>{r=this._trackByFn(e,t),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,t,r,e)),Object.is(s.item,t)||this._addIdentityChange(s,t)):(s=this._mismatch(s,t,r,e),o=!0),s=s._next,e++}),this.length=e;return this._truncate(s),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):t=this._addAfter(new Ts(e,n),s,r),t}_verifyReinsertion(t,e,n,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Is),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Is),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class Ts{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Ss{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class Is{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new Ss,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function As(t,e,n){const r=t.previousIndex;if(null===r)return r;let s=0;return n&&r<n.length&&(s=n[r]),r+e+s}class Os{constructor(){}supports(t){return t instanceof Map||ts(t)}create(){return new Ds}}class Ds{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||ts(t)))throw new Error(`Error trying to diff '${J(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const n=this._records.get(t);this._maybeAddToChanges(n,e);const r=n._prev,s=n._next;return r&&(r._next=s),s&&(s._prev=r),n._next=null,n._prev=null,n}const n=new js(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(n=>e(t[n],n))}}class js{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let Hs=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Es])}),t})(),Ns=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Os])}),t})();function Ps(t,e,n,r,s=!1){for(;null!==n;){const o=e[n.index];if(null!==o&&r.push(oe(o)),te(o))for(let t=10;t<o.length;t++){const e=o[t],n=e[1].firstChild;null!==n&&Ps(e[1],e,n,r)}const i=n.type;if(8&i)Ps(t,e,n.child,r);else if(32&i){const t=On(n,e);let s;for(;s=t();)r.push(s)}else if(16&i){const t=e[16],s=t[6].projection[n.projection];if(Array.isArray(s))r.push(...s);else{const e=Dn(t);Ps(e[1],e,s,r,!0)}}n=s?n.projectionNext:n.next}return r}class Rs extends class{constructor(t,e){this._lView=t,this._cdRefInjectingView=e,this._appRef=null,this._viewContainerRef=null}get rootNodes(){const t=this._lView,e=t[1];return Ps(e,t,e.firstChild,[])}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}!function(t,e){if(!(256&e[2])){const n=e[11];re(n)&&n.destroyNode&&zn(t,e,n,3,null,null),function(t){let e=t[13];if(!e)return Mn(t[1],t);for(;e;){let n=null;if(Xt(e))n=e[13];else{const t=e[10];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)Xt(e)&&Mn(e[1],e),e=e[3];null===e&&(e=t),Xt(e)&&Mn(e[1],e),n=e&&e[4]}e=n}}(e)}}(this._lView[1],this._lView)}onDestroy(t){!function(t,e,n,r){const s=(o=e)[7]||(o[7]=[]);var o;s.push(null),t.firstCreatePass&&function(t){return t.cleanup||(t.cleanup=[])}(t).push(r,s.length-1)}(this._lView[1],this._lView,0,t)}markForCheck(){!function(t){for(;t;){t[2]|=64;const e=Dn(t);if(0!=(512&t[2])&&!e)return t;t=e}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){Ar(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(t,e,n){Ce(!0);try{Ar(t,e,n)}finally{Ce(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=t}detachFromAppRef(){var t;this._appRef=null,zn(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=t}}{constructor(t){super(t),this._view=t}detectChanges(){Or(this._view)}checkNoChanges(){!function(t){Ce(!0);try{Or(t)}finally{Ce(!1)}}(this._view)}get context(){return null}}const Ms=[new Os],Fs=new Hs([new Es]),Vs=new Ns(Ms);class Ls{}const Bs={};class Zs extends ps{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=Pt(t);return new Us(e,this.ngModule)}}function zs(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const $s=new ut(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Sn});class Us extends ds{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors.map(rr).join(\",\"),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return zs(this.componentDef.inputs)}get outputs(){return zs(this.componentDef.outputs)}create(t,e,n,r){const s=(r=r||this.ngModule)?function(t,e){return{get:(n,r,s)=>{const o=t.get(n,Bs,s);return o!==Bs||r===Bs?o:e.get(n,r,s)}}}(t,r.injector):t,o=s.get(vs,se),i=s.get(bs,null),l=o.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(t,e,n){if(re(t))return t.selectRootElement(e,n===vt.ShadowDom);let r=\"string\"==typeof e?t.querySelector(e):e;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Rn(o.createRenderer(null,this.componentDef),u,function(t){const e=t.toLowerCase();return\"svg\"===e?\"http://www.w3.org/2000/svg\":\"math\"===e?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h={components:[],scheduler:Sn,clean:jr,playerHandler:null,flags:0},d=pr(0,null,null,1,0,null,null,null,null,null),f=ir(null,d,h,a,null,null,o,l,i,s);let p,_;Ie(f);try{const t=function(t,e,n,r,s,o){const i=n[1];n[20]=t;const l=lr(i,20,2,\"#host\",null),u=l.mergedAttrs=e.hostAttrs;null!==u&&(Hr(l,u,!0),null!==t&&(Xe(s,t,u),null!==l.classes&&Wn(s,t,l.classes),null!==l.styles&&Un(s,t,l.styles)));const c=r.createRenderer(t,e),a=ir(n,fr(e),null,e.onPush?64:16,n[20],l,r,c,null,null);return i.firstCreatePass&&(dn(un(l,n),i,e.type),gr(i,l),br(l,n.length,1)),Ir(n,a),n[20]=a}(c,this.componentDef,f,o,l);if(c)if(n)Xe(l,c,[\"ng-version\",Cs.full]);else{const{attrs:t,classes:e}=function(t){const e=[],n=[];let r=1,s=2;for(;r<t.length;){let o=t[r];if(\"string\"==typeof o)2===s?\"\"!==o&&e.push(o,t[++r]):8===s&&n.push(o);else{if(!Xn(s))break;s=o}r++}return{attrs:e,classes:n}}(this.componentDef.selectors[0]);t&&Xe(l,c,t),e&&e.length>0&&Wn(l,c,e.join(\" \"))}if(_=d.data[20],void 0!==e){const t=_.projection=[];for(let n=0;n<this.ngContentSelectors.length;n++){const r=e[n];t.push(null!=r?Array.from(r):null)}}p=function(t,e,n,r,s){const o=n[1],i=function(t,e,n){const r=me();t.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),wr(t,r,e,ur(t,e,1,null),n));const s=gn(e,t,r.directiveStart,r);Tn(s,e);const o=ie(r,e);return o&&Tn(o,e),s}(o,n,e);if(r.components.push(i),t[8]=i,s&&s.forEach(t=>t(i,e)),e.contentQueries){const t=me();e.contentQueries(1,i,t.directiveStart)}const l=me();return!o.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(Ne(l.index),yr(n[1],l,0,l.directiveStart,l.directiveEnd,e),mr(e,i)),i}(t,this.componentDef,f,h,[Jr]),cr(d,f,null)}finally{He()}return new Ws(this.componentType,p,ys(_,f),f,_)}}class Ws extends class{}{constructor(t,e,n,r,s){super(),this.location=n,this._rootLView=r,this._tNode=s,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new Rs(r),this.componentType=t}get injector(){return new wn(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const qs=new Map;class Qs extends Ls{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Zs(this);const n=Rt(t),r=t[Tt]||null;r&&hs(r),this._bootstrapComponents=In(n.bootstrap),this._r3Injector=Zr(t,e,[{provide:Ls,useValue:this},{provide:ps,useValue:this.componentFactoryResolver}],J(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=Gr.THROW_IF_NOT_FOUND,n=Ft.Default){return t===Gr||t===Ls||t===Nr?this:this._r3Injector.get(t,e,n)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Gs extends class{}{constructor(t){super(),this.moduleType=t,null!==Rt(t)&&function(t){const e=new Set;!function t(n){const r=Rt(n,!0),s=r.id;null!==s&&(function(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${J(e)} vs ${J(e.name)}`)}(s,qs.get(s),n),qs.set(s,n));const o=In(r.imports);for(const i of o)e.has(i)||(e.add(i),t(i))}(t)}(t)}create(t){return new Qs(this.moduleType,t)}}const Js=class extends E{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let r,s=t=>null,o=()=>null;t&&\"object\"==typeof t?(r=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(s=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(o=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(r=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(s=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(o=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,s,o);return t instanceof h&&t.add(i),i}},Ks=new ut(\"Application Initializer\");let Ys=(()=>{class t{constructor(t){this.appInits=t,this.resolve=_s,this.reject=_s,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();rs(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Ks,8))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const Xs=new ut(\"AppId\"),to={provide:Xs,useFactory:function(){return`${eo()}${eo()}${eo()}`},deps:[]};function eo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const no=new ut(\"Platform Initializer\"),ro=new ut(\"Platform ID\"),so=new ut(\"appBootstrapListener\");let oo=(()=>{class t{log(t){console.log(t)}warn(t){console.warn(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const io=new ut(\"LocaleId\"),lo=new ut(\"DefaultCurrencyCode\");class uo{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const co=function(t){return new Gs(t)},ao=co,ho=function(t){return Promise.resolve(co(t))},fo=function(t){const e=co(t),n=In(Rt(t).declarations).reduce((t,e)=>{const n=Pt(e);return n&&t.push(new Us(n)),t},[]);return new uo(e,n)},po=fo,_o=function(t){return Promise.resolve(fo(t))};let yo=(()=>{class t{constructor(){this.compileModuleSync=ao,this.compileModuleAsync=ho,this.compileModuleAndAllComponentsSync=po,this.compileModuleAndAllComponentsAsync=_o}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const mo=(()=>Promise.resolve(0))();function go(t){\"undefined\"==typeof Zone?mo.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",t)}class vo{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Js(!1),this.onMicrotaskEmpty=new Js(!1),this.onStable=new Js(!1),this.onError=new Js(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched();const n=this;n._nesting=0,n._outer=n._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(n._inner=n._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(n._inner=n._inner.fork(Zone.longStackTraceZoneSpec)),n.shouldCoalesceEventChangeDetection=e,n.lastRequestAnimationFrameId=-1,n.nativeRequestAnimationFrame=function(){let t=pt.requestAnimationFrame,e=pt.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__(\"OriginalDelegate\")];n&&(t=n);const r=e[Zone.__symbol__(\"OriginalDelegate\")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function(t){const e=!!t.shouldCoalesceEventChangeDetection&&t.nativeRequestAnimationFrame&&(()=>{!function(t){-1===t.lastRequestAnimationFrameId&&(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(pt,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask(\"fakeTopEventTask\",()=>{t.lastRequestAnimationFrameId=-1,Eo(t),Co(t)},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Eo(t))}(t)});t._inner=t._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:e},onInvokeTask:(n,r,s,o,i,l)=>{try{return xo(t),n.invokeTask(s,o,i,l)}finally{e&&\"eventTask\"===o.type&&e(),ko(t)}},onInvoke:(e,n,r,s,o,i,l)=>{try{return xo(t),e.invoke(r,s,o,i,l)}finally{ko(t)}},onHasTask:(e,n,r,s)=>{e.hasTask(r,s),n===r&&(\"microTask\"==s.change?(t._hasPendingMicrotasks=s.microTask,Eo(t),Co(t)):\"macroTask\"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,n,r,s)=>(e.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(n)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!vo.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(vo.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,r){const s=this._inner,o=s.scheduleEventTask(\"NgZoneEvent: \"+r,t,wo,bo,bo);try{return s.runTask(o,e,n)}finally{s.cancelTask(o)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function bo(){}const wo={};function Co(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Eo(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||t.shouldCoalesceEventChangeDetection&&-1!==t.lastRequestAnimationFrameId)}function xo(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ko(t){t._nesting--,Co(t)}class To{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Js,this.onMicrotaskEmpty=new Js,this.onStable=new Js,this.onError=new Js}run(t,e,n){return t.apply(e,n)}runGuarded(t,e,n){return t.apply(e,n)}runOutsideAngular(t){return t()}runTask(t,e,n,r){return t.apply(e,n)}}let So=(()=>{class t{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{vo.assertNotInAngularZone(),go(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())go(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let r=-1;e&&e>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==r),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Io=(()=>{class t{constructor(){this._applications=new Map,Do.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return Do.findTestabilityInTree(this,t,e)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class Ao{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}let Oo,Do=new Ao;const jo=new ut(\"AllowMultipleToken\");function Ho(t,e,n=[]){const r=\"Platform: \"+e,s=new ut(r);return(e=[])=>{let o=No();if(!o||o.injector.get(jo,!1))if(t)t(n.concat(e).concat({provide:s,useValue:!0}));else{const t=n.concat(e).concat({provide:s,useValue:!0},{provide:Rr,useValue:\"platform\"});!function(t){if(Oo&&!Oo.destroyed&&!Oo.injector.get(jo,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");Oo=t.get(Po);const e=t.get(no,null);e&&e.forEach(t=>t())}(Gr.create({providers:t,name:r}))}return function(t){const e=No();if(!e)throw new Error(\"No platform exists!\");if(!e.injector.get(t,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return e}(s)}}function No(){return Oo&&!Oo.destroyed?Oo:null}let Po=(()=>{class t{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t,e){let n;return n=\"noop\"===t?new To:(\"zone.js\"===t?void 0:t)||new vo({enableLongStackTrace:Me(),shouldCoalesceEventChangeDetection:e}),n}(e?e.ngZone:void 0,e&&e.ngZoneEventCoalescing||!1),r=[{provide:vo,useValue:n}];return n.run(()=>{const e=Gr.create({providers:r,parent:this.injector,name:t.moduleType.name}),s=t.create(e),o=s.injector.get(kn,null);if(!o)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return s.onDestroy(()=>Fo(this._modules,s)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{o.handleError(t)}})),function(t,e,n){try{const r=n();return rs(r)?r.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(o,n,()=>{const t=s.injector.get(Ys);return t.runInitializers(),t.donePromise.then(()=>(hs(s.injector.get(io,cs)||cs),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,e=[]){const n=Ro({},e);return function(t,e,n){const r=new Gs(n);return Promise.resolve(r)}(0,0,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(Mo);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${J(t.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. Please define one of these.`);t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Gr))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Ro(t,e){return Array.isArray(e)?e.reduce(Ro,t):Object.assign(Object.assign({},t),e)}let Mo=(()=>{class t{constructor(t,e,n,r,s,o){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Me(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),l=new g(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{vo.assertNotInAngularZone(),go(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{vo.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=function(...t){let e=Number.POSITIVE_INFINITY,n=null,r=t[t.length-1];var s;return(s=r)&&\"function\"==typeof s.schedule?(n=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(e=t.pop())):\"number\"==typeof r&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof g?t[0]:function(t=Number.POSITIVE_INFINITY){return H(m,t)}(e)(function(t,e){return e?function(t,e){return new g(n=>{const r=new h;let s=0;return r.add(e.schedule(function(){s!==t.length?(n.next(t[s++]),n.closed||r.add(this.schedule())):n.complete()})),r})}(t,e):new g(S(t))}(t,n))}(i,l.pipe(t=>{return R()((e=Z,function(t){let n;n=\"function\"==typeof e?e:function(){return e};const r=Object.create(t,L);return r.source=t,r.subjectFactory=n,r})(t));var e}))}bootstrap(t,e){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=t instanceof ds?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(Ls),s=n.create(Gr.NULL,[],e||n.selector,r);s.onDestroy(()=>{this._unloadComponent(s)});const o=s.injector.get(So,null);return o&&s.injector.get(Io).registerApplication(s.location.nativeElement,o),this._loadComponent(s),Me()&&this._console.log(\"Angular is running in development mode. Call enableProdMode() to enable production mode.\"),s}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Fo(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(so,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),Fo(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo),Gt(oo),Gt(Gr),Gt(kn),Gt(ps),Gt(Ys))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Fo(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const Vo=Ho(null,\"core\",[{provide:ro,useValue:\"unknown\"},{provide:Po,deps:[Gr]},{provide:Io,deps:[]},{provide:oo,deps:[]}]),Lo=[{provide:Mo,useClass:Mo,deps:[vo,oo,Gr,kn,ps,Ys]},{provide:$s,deps:[vo],useFactory:function(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:Ys,useClass:Ys,deps:[[new q,Ks]]},{provide:yo,useClass:yo,deps:[]},to,{provide:Hs,useFactory:function(){return Fs},deps:[]},{provide:Ns,useFactory:function(){return Vs},deps:[]},{provide:io,useFactory:function(t){return hs(t=t||\"undefined\"!=typeof $localize&&$localize.locale||cs),t},deps:[[new W(io),new q,new G]]},{provide:lo,useValue:\"USD\"}];let Bo=(()=>{class t{constructor(t){}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(Mo))},providers:Lo}),t})(),Zo=null;function zo(){return Zo}const $o=new ut(\"DocumentToken\");var Uo=function(t){return t[t.Zero=0]=\"Zero\",t[t.One=1]=\"One\",t[t.Two=2]=\"Two\",t[t.Few=3]=\"Few\",t[t.Many=4]=\"Many\",t[t.Other=5]=\"Other\",t}({});class Wo{}let qo=(()=>{class t extends Wo{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(function(t){return function(t){const e=function(t){return t.toLowerCase().replace(/_/g,\"-\")}(t);let n=ls(e);if(n)return n;const r=e.split(\"-\")[0];if(n=ls(r),n)return n;if(\"en\"===r)return os;throw new Error(`Missing locale data for the locale \"${t}\".`)}(t)[us.PluralCase]}(e||this.locale)(t)){case Uo.Zero:return\"zero\";case Uo.One:return\"one\";case Uo.Two:return\"two\";case Uo.Few:return\"few\";case Uo.Many:return\"many\";default:return\"other\"}}}return t.\\u0275fac=function(e){return new(e||t)(Gt(io))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Qo=(()=>{class t{}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[{provide:Wo,useClass:qo}]}),t})();class Go extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var t;t=new Go,Zo||(Zo=t)}getProperty(t,e){return t[e]}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}getValue(t){return t.value}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return\"window\"===e?window:\"document\"===e?t:\"body\"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=Ko||(Ko=document.querySelector(\"base\"),Ko)?Ko.getAttribute(\"href\"):null;return null==e?null:(n=e,Jo||(Jo=document.createElement(\"a\")),Jo.setAttribute(\"href\",n),\"/\"===Jo.pathname.charAt(0)?Jo.pathname:\"/\"+Jo.pathname);var n}resetBaseElement(){Ko=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return function(t,e){e=encodeURIComponent(e);for(const n of t.split(\";\")){const t=n.indexOf(\"=\"),[r,s]=-1==t?[n,\"\"]:[n.slice(0,t),n.slice(t+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}(document.cookie,t)}}let Jo,Ko=null;const Yo=new ut(\"TRANSITION_ID\"),Xo=[{provide:Ks,useFactory:function(t,e,n){return()=>{n.get(Ys).donePromise.then(()=>{const n=zo();Array.prototype.slice.apply(e.querySelectorAll(\"style[ng-transition]\")).filter(e=>e.getAttribute(\"ng-transition\")===t).forEach(t=>n.remove(t))})}},deps:[Yo,$o,Gr],multi:!0}];class ti{static init(){var t;t=new ti,Do=t}addToWindow(t){pt.getAngularTestability=(e,n=!0)=>{const r=t.findTestabilityInTree(e,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},pt.getAllAngularTestabilities=()=>t.getAllTestabilities(),pt.getAllAngularRootElements=()=>t.getAllRootElements(),pt.frameworkStabilizers||(pt.frameworkStabilizers=[]),pt.frameworkStabilizers.push(t=>{const e=pt.getAllAngularTestabilities();let n=e.length,r=!1;const s=function(e){r=r||e,n--,0==n&&t(r)};e.forEach(function(t){t.whenStable(s)})})}findTestabilityInTree(t,e,n){if(null==e)return null;const r=t.getTestability(e);return null!=r?r:n?zo().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}const ei=new ut(\"EventManagerPlugins\");let ni=(()=>{class t{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let r=0;r<n.length;r++){const e=n[r];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(\"No event manager plugin found for event \"+t)}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ei),Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class ri{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const r=zo().getGlobalEventTarget(this._doc,t);if(!r)throw new Error(`Unsupported event target ${r} for event ${e}`);return this.addEventListener(r,e,n)}}let si=(()=>{class t{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),oi=(()=>{class t extends si{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement(\"style\");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>zo().remove(t))}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const ii={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},li=/%COMP%/g;function ui(t,e,n){for(let r=0;r<e.length;r++){let s=e[r];Array.isArray(s)?ui(t,s,n):(s=s.replace(li,t),n.push(s))}return n}function ci(t){return e=>{if(\"__ngUnwrap__\"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let ai=(()=>{class t{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new hi(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case vt.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new di(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case 1:case vt.ShadowDom:return new fi(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=ui(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ni),Gt(oi),Gt(Xs))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class hi{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(ii[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n=\"string\"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector \"${t}\" did not match any elements`);return e||(n.textContent=\"\"),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,r){if(r){e=r+\":\"+e;const s=ii[r];s?t.setAttributeNS(s,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const r=ii[n];r?t.removeAttributeNS(r,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,r){r&(An.DashCase|An.Important)?t.style.setProperty(e,n,r&An.Important?\"important\":\"\"):t.style[e]=n}removeStyle(t,e,n){n&An.DashCase?t.style.removeProperty(e):t.style[e]=\"\"}setProperty(t,e,n){t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return\"string\"==typeof t?this.eventManager.addGlobalEventListener(t,e,ci(n)):this.eventManager.addEventListener(t,e,ci(n))}}class di extends hi{constructor(t,e,n,r){super(t),this.component=n;const s=ui(r+\"-\"+n.id,n.styles,[]);e.addStyles(s),this.contentAttr=\"_ngcontent-%COMP%\".replace(li,r+\"-\"+n.id),this.hostAttr=\"_nghost-%COMP%\".replace(li,r+\"-\"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,\"\")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,\"\"),n}}class fi extends hi{constructor(t,e,n,r){super(t),this.sharedStylesHost=e,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:\"open\"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=ui(r.id,r.styles,[]);for(let o=0;o<s.length;o++){const t=document.createElement(\"style\");t.textContent=s[o],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}let pi=(()=>{class t extends ri{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,n){return t.addEventListener(e,n,!1),()=>this.removeEventListener(t,e,n)}removeEventListener(t,e,n){return t.removeEventListener(e,n)}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const _i=[\"alt\",\"control\",\"meta\",\"shift\"],yi={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},mi={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},gi={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let vi=(()=>{class t extends ri{constructor(t){super(t)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,n,r){const s=t.parseEventName(n),o=t.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>zo().onAndCancel(e,s.domEventName,o))}static parseEventName(e){const n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const s=t._normalizeKey(n.pop());let o=\"\";if(_i.forEach(t=>{const e=n.indexOf(t);e>-1&&(n.splice(e,1),o+=t+\".\")}),o+=s,0!=n.length||0===s.length)return null;const i={};return i.domEventName=r,i.fullKey=o,i}static getEventFullKey(t){let e=\"\",n=function(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return\"Unidentified\";e.startsWith(\"U+\")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&mi.hasOwnProperty(e)&&(e=mi[e]))}return yi[e]||e}(t);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),_i.forEach(r=>{r!=n&&(0,gi[r])(t)&&(e+=r+\".\")}),e+=n,e}static eventCallback(e,n,r){return s=>{t.getEventFullKey(s)===e&&r.runGuarded(()=>n(s))}}static _normalizeKey(t){switch(t){case\"esc\":return\"escape\";default:return t}}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const bi=Ho(Vo,\"browser\",[{provide:ro,useValue:\"browser\"},{provide:no,useValue:function(){Go.makeCurrent(),ti.init()},multi:!0},{provide:$o,useFactory:function(){return function(t){Kt=t}(document),document},deps:[]}]),wi=[[],{provide:Rr,useValue:\"root\"},{provide:kn,useFactory:function(){return new kn},deps:[]},{provide:ei,useClass:pi,multi:!0,deps:[$o,vo,ro]},{provide:ei,useClass:vi,multi:!0,deps:[$o]},[],{provide:ai,useClass:ai,deps:[ni,oi,Xs]},{provide:vs,useExisting:ai},{provide:si,useExisting:oi},{provide:oi,useClass:oi,deps:[$o]},{provide:So,useClass:So,deps:[vo]},{provide:ni,useClass:ni,deps:[ei,vo]},[]];let Ci=(()=>{class t{constructor(t){if(t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(e){return{ngModule:t,providers:[{provide:Xs,useValue:e.appId},{provide:Yo,useExisting:Xs},Xo]}}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(t,12))},providers:wi,imports:[Qo,Bo]}),t})();\"undefined\"!=typeof window&&window;let Ei=(()=>{class t{constructor(){this.title=\"example\"}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=(e={type:t,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(t,e){1&t&&(ns(0,\"div\",0),function(t,e=\"\"){const n=_e(),r=ye(),s=t+Yt,o=r.firstCreatePass?lr(r,s,1,e,null):r.data[s],i=n[s]=function(t,e){return re(t)?t.createText(e):t.createTextNode(e)}(n[11],e);Bn(r,n,i,o),ve(o,!1)}(1,\" Hello, World\\n\"),function(){let t=me();be()?fe.lFrame.isParent=!1:(t=t.parent,ve(t,!1));const e=t;fe.lFrame.elementDepthCount--;const n=ye();n.firstCreatePass&&(Ue(n,t),ee(t)&&n.queries.elementEnd(t)),null!=e.classesWithoutHost&&function(t){return 0!=(16&t.flags)}(e)&&es(n,e,_e(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function(t){return 0!=(32&t.flags)}(e)&&es(n,e,_e(),e.stylesWithoutHost,!1)}())},styles:[\"\"]},z(()=>{const t={},n={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===ct.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||wt,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||vt.Emulated,id:\"c\",styles:e.styles||wt,_:null,setInput:null,schemas:e.schemas||null,tView:null},r=e.directives,s=e.features,o=e.pipes;return n.id+=At++,n.inputs=Nt(e.inputs,t),n.outputs=Nt(e.outputs),s&&s.forEach(t=>t(n)),n.directiveDefs=r?()=>(\"function\"==typeof r?r():r).map(Ot):null,n.pipeDefs=o?()=>(\"function\"==typeof o?o():o).map(Dt):null,n})),t;var e})(),xi=(()=>{class t{}return t.\\u0275mod=Ht({type:t,bootstrap:[Ei]}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[],imports:[[Ci]]}),t})();(function(){if(Re)throw new Error(\"Cannot enable prod mode after platform setup.\");Pe=!1})(),bi().bootstrapModule(xi).catch(t=>console.error(t))},zn8P:function(t,e){function n(t){return Promise.resolve().then(function(){var e=new Error(\"Cannot find module '\"+t+\"'\");throw e.code=\"MODULE_NOT_FOUND\",e})}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/dist/example/polyfills.bf99d438b005d57b2b31.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{1:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const i=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(i||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class a{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==C.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=a.current;for(;e.parent;)e=e.parent;return e}static get current(){return z.zone}static get currentTask(){return j}static __load_patch(t,r){if(C.hasOwnProperty(t)){if(i)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),C[t]=r(e,a,O),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){z={parent:z,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{z=z.parent}}runGuarded(e,t=null,n,o){z={parent:z,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{z=z.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,T),e.runCount++;const r=j;j=e,z={parent:z,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(T,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),z=z.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(b,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,b,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==b&&e._transitionTo(T,b),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,T,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}a.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new a(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");k(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,i){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=i,!o)throw new Error(\"callback is not defined\");this.callback=o;const a=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,a,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,b)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],_=!1;function k(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!_){for(_=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){O.onUnhandledError(e)}}}O.microtaskDrainDone(),_=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",b=\"scheduling\",T=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",C={},O={symbol:s,currentZoneFrame:()=>z,onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:k,showUncaughtError:()=>!a[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:N,patchMethod:()=>N,bindArguments:()=>[],patchThen:()=>N,patchMacroTask:()=>N,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>N,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>N,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>N,wrapWithCurrentZone:()=>N,filterProperties:()=>[],attachOriginToPatched:()=>N,_redefineProperty:()=>N,patchCallbacks:()=>N};let z={parent:null,zone:new a(null,null)},j=null,I=0;function N(){}o(\"Zone\",\"Zone\"),e.Zone=a}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,i=[],a=!0===e[s(\"DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION\")],c=s(\"Promise\"),l=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;i.length;){const t=i.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){h(e)}}};const u=s(\"unhandledPromiseRejectionHandler\");function h(e){n.onUnhandledError(e);try{const n=t[u];\"function\"==typeof n&&n.call(this,e)}catch(o){}}function p(e){return e&&e.then}function f(e){return e}function d(e){return O.reject(e)}const g=s(\"state\"),_=s(\"value\"),k=s(\"finally\"),m=s(\"parentPromiseValue\"),y=s(\"parentPromiseState\"),v=null,b=!0,T=!1;function E(e,t){return n=>{try{Z(e,t,n)}catch(o){Z(e,!1,o)}}}const w=s(\"currentTaskTrace\");function Z(e,o,s){const c=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(e[g]===v){let h=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(h=s&&s.then)}catch(u){return c(()=>{Z(e,!1,u)})(),e}if(o!==T&&s instanceof O&&s.hasOwnProperty(g)&&s.hasOwnProperty(_)&&s[g]!==v)D(s),Z(e,s[g],s[_]);else if(o!==T&&\"function\"==typeof h)try{h.call(s,c(E(e,o)),c(E(e,!1)))}catch(u){c(()=>{Z(e,!1,u)})()}else{e[g]=o;const c=e[_];if(e[_]=s,e[k]===k&&o===b&&(e[g]=e[y],e[_]=e[m]),o===T&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,w,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<c.length;)P(e,c[t++],c[t++],c[t++],c[t++]);if(0==c.length&&o==T){e[g]=0;let o=s;if(!a)try{throw new Error(\"Uncaught (in promise): \"+((l=s)&&l.toString===Object.prototype.toString?(l.constructor&&l.constructor.name||\"\")+\": \"+JSON.stringify(l):l?l.toString():Object.prototype.toString.call(l))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(u){o=u}o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,i.push(o),n.scheduleMicroTask()}}}var l;return e}const S=s(\"rejectionHandledHandler\");function D(e){if(0===e[g]){try{const n=t[S];n&&\"function\"==typeof n&&n.call(this,{rejection:e[_],promise:e})}catch(n){}e[g]=T;for(let t=0;t<i.length;t++)e===i[t].promise&&i.splice(t,1)}}function P(e,t,n,o,r){D(e);const s=e[g],i=s?\"function\"==typeof o?o:f:\"function\"==typeof r?r:d;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[_],r=!!n&&k===n[k];r&&(n[m]=o,n[y]=s);const a=t.run(i,void 0,r&&i!==d&&i!==f?[]:[o]);Z(n,!0,a)}catch(o){Z(n,!1,o)}},n)}const C=function(){};class O{static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return Z(new this(null),b,e)}static reject(e){return Z(new this(null),T,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let i of e)p(i)||(i=this.resolve(i)),i.then(r,s);return o}static all(e){return O.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof O?this:O).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,i=0;const a=[];for(let l of e){p(l)||(l=this.resolve(l));const e=i;try{l.then(o=>{a[e]=t?t.thenCallback(o):o,s--,0===s&&n(a)},r=>{t?(a[e]=t.errorCallback(r),s--,0===s&&n(a)):o(r)})}catch(c){o(c)}s++,i++}return s-=2,0===s&&n(a),r}constructor(e){const t=this;if(!(t instanceof O))throw new Error(\"Must be an instanceof Promise.\");t[g]=v,t[_]=[];try{e&&e(E(t,b),E(t,T))}catch(n){Z(t,!1,n)}}get[Symbol.toStringTag](){return\"Promise\"}get[Symbol.species](){return O}then(e,n){let o=this.constructor[Symbol.species];o&&\"function\"==typeof o||(o=this.constructor||O);const r=new o(C),s=t.current;return this[g]==v?this[_].push(s,r,e,n):P(this,s,r,e,n),r}catch(e){return this.then(null,e)}finally(e){let n=this.constructor[Symbol.species];n&&\"function\"==typeof n||(n=O);const o=new n(C);o[k]=k;const r=t.current;return this[g]==v?this[_].push(r,o,e,e):P(this,r,o,e,e),o}}O.resolve=O.resolve,O.reject=O.reject,O.race=O.race,O.all=O.all;const z=e[c]=e.Promise,j=t.__symbol__(\"ZoneAwarePromise\");let I=o(e,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return e[j]?e[j]:e[c]},I.set=function(t){t===O?e[j]=t:(e[c]=t,t.prototype[l]||R(t),n.setNativePromise(t))},r(e,\"Promise\",I)),e.Promise=O;const N=s(\"thenPatched\");function R(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[l]=r,e.prototype.then=function(e,t){return new O((e,t)=>{r.call(this,e,t)}).then(e,t)},e[N]=!0}if(n.patchThen=R,z){R(z);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(x=t,function(){let e=x.apply(this,arguments);if(e instanceof O)return e;let t=e.constructor;return t[N]||R(t),e}))}var x;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=i,O});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=\"addEventListener\",i=\"removeEventListener\",a=Zone.__symbol__(s),c=Zone.__symbol__(i),l=\"true\",u=\"false\",h=Zone.__symbol__(\"\");function p(e,t){return Zone.current.wrap(e,t)}function f(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const d=Zone.__symbol__,g=\"undefined\"!=typeof window,_=g?window:void 0,k=g&&_||\"object\"==typeof self&&self||global,m=[null];function y(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=p(e[n],t+\"_\"+n));return e}function v(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const b=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,T=!(\"nw\"in k)&&void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process),E=!T&&!b&&!(!g||!_.HTMLElement),w=void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process)&&!b&&!(!g||!_.HTMLElement),Z={},S=function(e){if(!(e=e||k.event))return;let t=Z[e.type];t||(t=Z[e.type]=d(\"ON_PROPERTY\"+e.type));const n=this||e.target||k,o=n[t];let r;if(E&&n===_&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function D(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const i=d(\"on\"+o+\"patched\");if(n.hasOwnProperty(i)&&n[i])return;delete s.writable,delete s.value;const a=s.get,c=s.set,l=o.substr(2);let u=Z[l];u||(u=Z[l]=d(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==k||(t=k),t&&(t[u]&&t.removeEventListener(l,S),c&&c.apply(t,m),\"function\"==typeof e?(t[u]=e,t.addEventListener(l,S,!1)):t[u]=null)},s.get=function(){let e=this;if(e||n!==k||(e=k),!e)return null;const t=e[u];if(t)return t;if(a){let t=a&&a.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[i]=!0}function P(e,t,n){if(t)for(let o=0;o<t.length;o++)D(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)D(e,t[o],n)}}const C=d(\"originalInstance\");function O(e){const n=k[e];if(!n)return;k[d(e)]=n,k[e]=function(){const t=y(arguments,e);switch(t.length){case 0:this[C]=new n;break;case 1:this[C]=new n(t[0]);break;case 2:this[C]=new n(t[0],t[1]);break;case 3:this[C]=new n(t[0],t[1],t[2]);break;case 4:this[C]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},I(k[e],n);const o=new n(function(){});let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?k[e].prototype[n]=function(){return this[C][n].apply(this[C],arguments)}:t(k[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[C][n]=p(t,e+\".\"+n),I(this[C][n],t)):this[C][n]=t},get:function(){return this[C][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(k[e][r]=n[r])}function z(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const i=d(o);let a=null;if(s&&!(a=s[i])&&(a=s[i]=s[o],v(s&&e(s,o)))){const e=r(a,i,o);s[o]=function(){return e(this,arguments)},I(s[o],a)}return a}function j(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=z(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?f(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function I(e,t){e[d(\"OriginalDelegate\")]=t}let N=!1,R=!1;function x(){try{const e=_.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function M(){if(N)return R;N=!0;try{const e=_.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(R=!0)}catch(e){}return R}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=d(\"OriginalDelegate\"),o=d(\"Promise\"),r=d(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const i=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":i.call(this)}});let L=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){L=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(he){L=!1}const A={useG:!0},H={},F={},G=new RegExp(\"^\"+h+\"(\\\\w+)(true|false)$\"),B=d(\"propagationStopped\");function q(e,t){const n=(t?t(e):e)+u,o=(t?t(e):e)+l,r=h+n,s=h+o;H[e]={},H[e].false=r,H[e].true=s}function W(e,t,o){const r=o&&o.add||s,a=o&&o.rm||i,c=o&&o.listeners||\"eventListeners\",p=o&&o.rmAll||\"removeAllListeners\",f=d(r),g=\".\"+r+\":\",_=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[a].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},k=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].false];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}},m=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].true];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}};function y(t,o){if(!t)return!1;let s=!0;o&&void 0!==o.useG&&(s=o.useG);const i=o&&o.vh;let _=!0;o&&void 0!==o.chkDup&&(_=o.chkDup);let y=!1;o&&void 0!==o.rt&&(y=o.rt);let v=t;for(;v&&!v.hasOwnProperty(r);)v=n(v);if(!v&&t[r]&&(v=t),!v)return!1;if(v[f])return!1;const b=o&&o.eventNameToString,E={},w=v[f]=v[r],Z=v[d(a)]=v[a],S=v[d(c)]=v[c],D=v[d(p)]=v[p];let P;function C(e,t){return!L&&\"object\"==typeof e&&e?!!e.capture:L&&t?\"boolean\"==typeof e?{capture:e,passive:!0}:e?\"object\"==typeof e&&!1!==e.passive?Object.assign(Object.assign({},e),{passive:!0}):e:{passive:!0}:e}o&&o.prepend&&(P=v[d(o.prepend)]=v[o.prepend]);const O=s?function(e){if(!E.isExisting)return w.call(E.target,E.eventName,E.capture?m:k,E.options)}:function(e){return w.call(E.target,E.eventName,e.invoke,E.options)},z=s?function(e){if(!e.isRemoved){const t=H[e.eventName];let n;t&&(n=t[e.capture?l:u]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return Z.call(e.target,e.eventName,e.capture?m:k,e.options)}:function(e){return Z.call(e.target,e.eventName,e.invoke,e.options)},j=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},N=Zone[d(\"BLACK_LISTED_EVENTS\")],R=e[d(\"PASSIVE_EVENTS\")],x=function(t,n,r,a,c=!1,h=!1){return function(){const p=this||e;let f=arguments[0];o&&o.transferEventName&&(f=o.transferEventName(f));let d=arguments[1];if(!d)return t.apply(this,arguments);if(T&&\"uncaughtException\"===f)return t.apply(this,arguments);let g=!1;if(\"function\"!=typeof d){if(!d.handleEvent)return t.apply(this,arguments);g=!0}if(i&&!i(t,d,p,arguments))return;const k=L&&!!R&&-1!==R.indexOf(f),m=C(arguments[2],k);if(N)for(let e=0;e<N.length;e++)if(f===N[e])return k?t.call(p,f,d,m):t.apply(this,arguments);const y=!!m&&(\"boolean\"==typeof m||m.capture),v=!(!m||\"object\"!=typeof m)&&m.once,w=Zone.current;let Z=H[f];Z||(q(f,b),Z=H[f]);const S=Z[y?l:u];let D,P=p[S],O=!1;if(P){if(O=!0,_)for(let e=0;e<P.length;e++)if(j(P[e],d))return}else P=p[S]=[];const z=p.constructor.name,I=F[z];I&&(D=I[f]),D||(D=z+n+(b?b(f):f)),E.options=m,v&&(E.options.once=!1),E.target=p,E.capture=y,E.eventName=f,E.isExisting=O;const x=s?A:void 0;x&&(x.taskData=E);const M=w.scheduleEventTask(D,d,x,r,a);return E.target=null,x&&(x.taskData=null),v&&(m.once=!0),(L||\"boolean\"!=typeof M.options)&&(M.options=m),M.target=p,M.capture=y,M.eventName=f,g&&(M.originalDelegate=d),h?P.unshift(M):P.push(M),c?p:void 0}};return v[r]=x(w,g,O,z,y),P&&(v.prependListener=x(P,\".prependListener:\",function(e){return P.call(E.target,E.eventName,e.invoke,E.options)},z,y,!0)),v[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2],s=!!r&&(\"boolean\"==typeof r||r.capture),a=arguments[1];if(!a)return Z.apply(this,arguments);if(i&&!i(Z,a,t,arguments))return;const c=H[n];let p;c&&(p=c[s?l:u]);const f=p&&t[p];if(f)for(let e=0;e<f.length;e++){const o=f[e];if(j(o,a))return f.splice(e,1),o.isRemoved=!0,0===f.length&&(o.allRemoved=!0,t[p]=null,\"string\"==typeof n)&&(t[h+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),y?t:void 0}return Z.apply(this,arguments)},v[c]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=U(t,b?b(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},v[p]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=H[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=G.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[p].call(this,o)}this[p].call(this,\"removeListener\")}if(y)return this},I(v[r],w),I(v[a],Z),D&&I(v[p],D),S&&I(v[c],S),!0}let v=[];for(let n=0;n<t.length;n++)v[n]=y(t[n],o);return v}function U(e,t){if(!t){const n=[];for(let o in e){const r=G.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}let n=H[t];n||(q(t),n=H[t]);const o=e[n.false],r=e[n.true];return o?r?o.concat(r):o.slice():r?r.slice():[]}function V(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[B]=!0,e&&e.apply(t,n)})}function $(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const i=t[s]=t[o];t[o]=function(s,a,c){return a&&a.prototype&&r.forEach(function(t){const r=`${n}.${o}::`+t,s=a.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(a.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}),i.call(t,s,a,c)},e.attachOriginToPatched(t[o],i)}const X=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplayconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],J=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],Y=[\"load\"],K=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],Q=[\"bounce\",\"finish\",\"start\"],ee=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],te=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],ne=[\"close\",\"error\",\"open\",\"message\"],oe=[\"error\",\"message\"],re=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],X,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function se(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function ie(e,t,n,o){e&&P(e,se(e,t,n),o)}function ae(e,t){if(T&&!w)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(E){const e=window,t=x?[{target:e,ignoreProperties:[\"error\"]}]:[];ie(e,re.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),ie(Document.prototype,re,r),void 0!==e.SVGElement&&ie(e.SVGElement.prototype,re,r),ie(Element.prototype,re,r),ie(HTMLElement.prototype,re,r),ie(HTMLMediaElement.prototype,J,r),ie(HTMLFrameSetElement.prototype,X.concat(K),r),ie(HTMLBodyElement.prototype,X.concat(K),r),ie(HTMLFrameElement.prototype,Y,r),ie(HTMLIFrameElement.prototype,Y,r);const o=e.HTMLMarqueeElement;o&&ie(o.prototype,Q,r);const s=e.Worker;s&&ie(s.prototype,oe,r)}const s=t.XMLHttpRequest;s&&ie(s.prototype,ee,r);const i=t.XMLHttpRequestEventTarget;i&&ie(i&&i.prototype,ee,r),\"undefined\"!=typeof IDBIndex&&(ie(IDBIndex.prototype,te,r),ie(IDBRequest.prototype,te,r),ie(IDBOpenDBRequest.prototype,te,r),ie(IDBDatabase.prototype,te,r),ie(IDBTransaction.prototype,te,r),ie(IDBCursor.prototype,te,r)),o&&ie(WebSocket.prototype,ne,r)}Zone.__load_patch(\"util\",(n,a,c)=>{c.patchOnProperties=P,c.patchMethod=z,c.bindArguments=y,c.patchMacroTask=j;const f=a.__symbol__(\"BLACK_LISTED_EVENTS\"),d=a.__symbol__(\"UNPATCHED_EVENTS\");n[d]&&(n[f]=n[d]),n[f]&&(a[f]=a[d]=n[f]),c.patchEventPrototype=V,c.patchEventTarget=W,c.isIEOrEdge=M,c.ObjectDefineProperty=t,c.ObjectGetOwnPropertyDescriptor=e,c.ObjectCreate=o,c.ArraySlice=r,c.patchClass=O,c.wrapWithCurrentZone=p,c.filterProperties=se,c.attachOriginToPatched=I,c._redefineProperty=Object.defineProperty,c.patchCallbacks=$,c.getGlobalObjects=()=>({globalSources:F,zoneSymbolEventNames:H,eventNames:re,isBrowser:E,isMix:w,isNode:T,TRUE_STR:l,FALSE_STR:u,ZONE_SYMBOL_PREFIX:h,ADD_EVENT_LISTENER_STR:s,REMOVE_EVENT_LISTENER_STR:i})});const ce=d(\"zoneTask\");function le(e,t,n,o){let r=null,s=null;n+=o;const i={};function a(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete i[n.handleId]:n.handleId&&(n.handleId[ce]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=z(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=f(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},a,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?i[n]=e:n&&(n[ce]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=z(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=i[r]:(s=r&&r[ce],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete i[r]:r&&(r[ce]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function ue(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:i}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=i+(e+s),a=i+(e+r);o[e]={},o[e][s]=t,o[e][r]=a}const a=e.EventTarget;return a&&a.prototype?(t.patchEventTarget(e,[a&&a.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{const t=\"set\",n=\"clear\";le(e,t,n,\"Timeout\"),le(e,t,n,\"Interval\"),le(e,t,n,\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{le(e,\"request\",\"cancel\",\"AnimationFrame\"),le(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),le(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)z(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{(function(e,t){t.patchEventPrototype(e,t)})(e,n),ue(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),O(\"MutationObserver\"),O(\"WebKitMutationObserver\"),O(\"IntersectionObserver\"),O(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ae(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const u=e.XMLHttpRequest;if(!u)return;const h=u.prototype;let p=h[a],g=h[c];if(!p){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;p=e[a],g=e[c]}}const _=\"readystatechange\",k=\"scheduled\";function m(e){const o=e.data,i=o.target;i[s]=!1,i[l]=!1;const u=i[r];p||(p=i[a],g=i[c]),u&&g.call(i,_,u);const h=i[r]=()=>{if(i.readyState===i.DONE)if(!o.aborted&&i[s]&&e.state===k){const n=i[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=i[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||e.state!==k||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==i[s]||(i[l]=!0)};return p.call(i,_,h),i[n]||(i[n]=e),w.apply(i,o.args),i[s]=!0,e}function y(){}function v(e){const t=e.data;return t.aborted=!0,Z.apply(t.target,t.args)}const b=z(h,\"open\",()=>function(e,t){return e[o]=0==t[2],e[i]=t[1],b.apply(e,t)}),T=d(\"fetchTaskAborting\"),E=d(\"fetchTaskScheduling\"),w=z(h,\"send\",()=>function(e,n){if(!0===t.current[E])return w.apply(e,n);if(e[o])return w.apply(e,n);{const t={target:e,url:e[i],isPeriodic:!1,args:n,aborted:!1},o=f(\"XMLHttpRequest.send\",y,t,m,v);e&&!0===e[l]&&!t.aborted&&o.state===k&&o.invoke()}}),Z=z(h,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[T])return Z.apply(e,o)})}(e);const n=d(\"xhrTask\"),o=d(\"xhrSync\"),r=d(\"xhrListener\"),s=d(\"xhrScheduled\"),i=d(\"xhrURL\"),l=d(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],i=t[s];if(i){if(!v(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,y(arguments,o+\".\"+s))};return I(t,e),t})(i)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){U(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[d(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[d(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[1,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/dist/example/runtime.359d5ee4682f20e936e9.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/dist/example/styles.51422a5c94b8290ff190.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:initial}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:initial;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:initial;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:initial;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:initial}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:initial}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:initial}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:initial}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:initial}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:initial}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:initial}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:initial}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:initial;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:initial}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:initial;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:initial;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:initial;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:initial;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:initial;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:initial;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:initial;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:initial;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:initial!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:initial!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:initial;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/addTax.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\n\n@Pipe({\n    name: \"addTax\"\n})\nexport class PaAddTaxPipe {\n\n    defaultRate: number = 10;\n\n    transform(value: any, rate?: any): number {\n        let valueNumber = Number.parseFloat(value);\n        let rateNumber = rate == undefined ?\n            this.defaultRate : Number.parseInt(rate);\n        return valueNumber + (valueNumber * (rateNumber / 100));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { ProductTableComponent } from \"./productTable.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { PaToggleView } from \"./toggleView.component\";\nimport { PaAddTaxPipe } from \"./addTax.pipe\";\nimport { PaCategoryFilterPipe } from \"./categoryFilter.pipe\";\nimport { LOCALE_ID } from \"@angular/core\";\nimport localeFr from '@angular/common/locales/fr';\nimport { registerLocaleData } from '@angular/common';\nimport { PaDiscountDisplayComponent } from \"./discountDisplay.component\";\nimport { PaDiscountEditorComponent } from \"./discountEditor.component\";\nimport { DiscountService } from \"./discount.service\";\nimport { PaDiscountPipe } from \"./discount.pipe\";\nimport { PaDiscountAmountDirective } from \"./discountAmount.directive\";\nimport { SimpleDataSource } from \"./datasource.model\";\nimport { Model } from \"./repository.model\";\nimport { LogService, LOG_SERVICE, SpecialLogService,\n  LogLevel, LOG_LEVEL} from \"./log.service\";\nimport { VALUE_SERVICE, PaDisplayValueDirective} from \"./valueDisplay.directive\";\n\nlet logger = new LogService();\nlogger.minimumLevel = LogLevel.DEBUG;\n\nregisterLocaleData(localeFr);\n\n@NgModule({\n  imports: [BrowserModule, FormsModule, ReactiveFormsModule],\n  declarations: [ProductComponent, PaAttrDirective, PaModel,\n    PaStructureDirective, PaIteratorDirective,\n    PaCellColor, PaCellColorSwitcher, ProductTableComponent,\n    ProductFormComponent, PaToggleView, PaAddTaxPipe,\n    PaCategoryFilterPipe, PaDiscountDisplayComponent, PaDiscountEditorComponent,\n    PaDiscountPipe, PaDiscountAmountDirective, PaDisplayValueDirective],\n    providers: [DiscountService, SimpleDataSource, Model, LogService,\n      { provide: VALUE_SERVICE, useValue: \"Apples\" }],\n  bootstrap: [ProductComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/attr.directive.ts",
    "content": "import {\n  Directive, ElementRef, Attribute, Input,\n  SimpleChange, Output, EventEmitter, HostListener, HostBinding\n}\n  from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Directive({\n  selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n  @Input(\"pa-attr\")\n  @HostBinding(\"class\")\n  bgClass: string;\n\n  @Input(\"pa-product\")\n  product: Product;\n\n  @Output(\"pa-category\")\n  click = new EventEmitter<string>();\n\n  @HostListener(\"click\")\n  triggerCustomEvent() {\n    if (this.product != null) {\n      this.click.emit(this.product.category);\n    }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/categoryFilter.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Pipe({\n    name: \"filter\",\n    pure: false\n})\nexport class PaCategoryFilterPipe {\n\n    transform(products: Product[], category: string): Product[] {\n        return category == undefined ?\n            products : products.filter(p => p.category == category);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n    SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\nselector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n@Input(\"paCellDarkColor\")\nmodelProperty: Boolean;\n\n@ContentChildren(PaCellColor, {descendants: true})\ncontentChildren: QueryList<PaCellColor>;\n\nngOnChanges(changes: { [property: string]: SimpleChange }) {\n   this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n}\n\nngAfterContentInit() {\n   this.contentChildren.changes.subscribe(() => {\n       setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n   });\n}\n\nprivate updateContentChildren(dark: Boolean) {\n   if (this.contentChildren != null && dark != undefined) {\n       this.contentChildren.forEach((child, index) => {\n           child.setColor(index % 2 ? dark : !dark);\n       });\n   }\n}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/component.ts",
    "content": "import { Component } from \"@angular/core\";\n//import { Model } from \"./repository.model\";\n//import { Product } from \"./product.model\";\n//import { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    //model: Model = new Model();\n\n    //constructor(public model: Model) { }\n\n    //addProduct(p: Product) {\n    //    this.model.saveProduct(p);\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/datasource.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class SimpleDataSource {\n    private data:Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n        new Product(1, \"Kayak\", \"Watersports\", 275),\n        new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n        new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n        new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n        new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/discount.pipe.ts",
    "content": "import { Pipe, Injectable } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\nimport { LogService } from \"./log.service\";\n\n@Pipe({\n    name: \"discount\",\n    pure: false\n})\nexport class PaDiscountPipe {\n\n    constructor(private discount: DiscountService,\n                private logger: LogService) { }\n\n    transform(price: number): number {\n        if (price > 100) {\n            this.logger.logInfoMessage(`Large price discounted: ${price}`);\n        }\n        return this.discount.applyDiscount(price);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/discount.service.ts",
    "content": "import { Injectable, Inject } from \"@angular/core\";\nimport { LogService, LOG_SERVICE, LogLevel } from \"./log.service\";\n\n@Injectable()\nexport class DiscountService {\n    private discountValue: number = 10;\n\n    constructor(private logger: LogService) { }\n\n    public get discount(): number {\n        return this.discountValue;\n    }\n\n    public set discount(newValue: number) {\n        this.discountValue = newValue || 0;\n    }\n\n    public applyDiscount(price: number) {\n        this.logger.logInfoMessage(`Discount ${this.discount}`\n            + ` applied to price: ${price}`);\n        return Math.max(price - this.discountValue, 5);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/discountAmount.directive.ts",
    "content": "import { Directive, HostBinding, Input,\n    SimpleChange, KeyValueDiffer, KeyValueDiffers,\n    ChangeDetectorRef } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Directive({\n    selector: \"td[pa-price]\",\n    exportAs: \"discount\"\n})\nexport class PaDiscountAmountDirective {\n    private differ: KeyValueDiffer<any, any>;\n\n    constructor(private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef,\n        private discount: DiscountService) { }\n\n    @Input(\"pa-price\")\n    originalPrice: number;\n\n    discountAmount: number;\n\n    ngOnInit() {\n        this.differ =\n            this.keyValueDiffers.find(this.discount).create();\n    }\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        if (changes[\"originalPrice\"] != null) {\n            this.updateValue();\n        }\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.discount) != null) {\n            this.updateValue();\n        }\n    }\n\n    private updateValue() {\n        this.discountAmount = this.originalPrice\n            - this.discount.applyDiscount(this.originalPrice);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/discountDisplay.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n  selector: \"paDiscountDisplay\",\n  template: `<div class=\"bg-info text-white p-2\">\n                The discount is {{discounter.discount}}\n               </div>`\n})\nexport class PaDiscountDisplayComponent {\n\n  constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/discountEditor.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Component({\n    selector: \"paDiscountEditor\",\n    template: `<div class=\"form-group\">\n                   <label>Discount</label>\n                   <input [(ngModel)]=\"discounter.discount\"\n                        class=\"form-control\" type=\"number\" />\n               </div>`\n})\nexport class PaDiscountEditorComponent {\n\n    constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;\n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),\n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c =>\n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, ViewRef, IterableChangeRecord\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: IterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <IterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n\n            let arr: IterableChangeRecord<any>[] = [];\n            changes.forEachAddedItem(addition => arr.push(addition));\n            arr.forEach(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, arr.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/log.service.ts",
    "content": "import { Injectable, InjectionToken } from \"@angular/core\";\n\nexport const LOG_SERVICE = new InjectionToken(\"logger\");\nexport const LOG_LEVEL = new InjectionToken(\"log_level\");\n\nexport enum LogLevel {\n    DEBUG, INFO, ERROR\n}\n\n@Injectable()\nexport class LogService {\n    minimumLevel: LogLevel = LogLevel.INFO;\n\n    logInfoMessage(message: string) {\n        this.logMessage(LogLevel.INFO, message);\n    }\n\n    logDebugMessage(message: string) {\n        this.logMessage(LogLevel.DEBUG, message);\n    }\n\n    logErrorMessage(message: string) {\n        this.logMessage(LogLevel.ERROR, message);\n    }\n\n    logMessage(level: LogLevel, message: string) {\n        if (level >= this.minimumLevel) {\n            console.log(`Message (${LogLevel[level]}): ${message}`);\n        }\n    }\n}\n\n@Injectable()\nexport class SpecialLogService extends LogService {\n\n    constructor() {\n        super()\n        this.minimumLevel = LogLevel.DEBUG;\n    }\n\n    logMessage(level: LogLevel, message: string) {\n        if (level >= this.minimumLevel) {\n            console.log(`Special Message (${LogLevel[level]}): ${message}`);\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n      public name?: string,\n      public category?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover {\n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\"\n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\"\n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\"\n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>\n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n\n<div class=\"bg-info text-white m-2 p-2\">\n    View Child Value: <span paDisplayValue></span>\n</div>\n<div class=\"bg-info text-white m-2 p-2\">\n    Content Child Value: <ng-content></ng-content>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation,\n    Inject, SkipSelf } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Model } from \"./repository.model\";\nimport { VALUE_SERVICE } from \"./valueDisplay.directive\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\",\n    viewProviders: [{ provide: VALUE_SERVICE, useValue: \"Oranges\" }]\n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    constructor(private model: Model,\n            @Inject(VALUE_SERVICE) @SkipSelf() private serviceValue: string) {\n        console.log(\"Service Value: \" + serviceValue);\n    }\n\n    submitForm(form: any) {\n        this.model.saveProduct(this.newProduct);\n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <thead>\n        <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *paFor=\"let item of getProducts(); let i = index\">\n            <td>{{i + 1}}</td>\n            <td>{{item.name}}</td>\n            <td>{{item.category}}</td>\n            <td [pa-price]=\"item.price\" #discount=\"discount\">\n                {{ discount.discountAmount | currency:\"USD\":\"symbol\"}}\n            </td>\n            <td class=\"text-center\">\n                <button class=\"btn btn-danger btn-sm\"\n                        (click)=\"deleteProduct(item.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>\n</table>\n\n<paDiscountEditor></paDiscountEditor>\n<paDiscountDisplay></paDiscountDisplay>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { Product } from \"./product.model\";\nimport { DiscountService } from \"./discount.service\";\nimport { LogService } from \"./log.service\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\",\n    providers:[LogService]\n\n})\nexport class ProductTableComponent {\n\n    constructor(private dataModel: Model) { }\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n    dateObject: Date = new Date(2020, 1, 20);\n    dateString: string = \"2020-02-20T00:00:00.000Z\";\n    dateNumber: number = 1582156800000;\n\n    selectMap = {\n        \"Watersports\": \"stay dry\",\n        \"Soccer\": \"score goals\",\n        \"other\": \"have fun\"\n    }\n\n    numberMap = {\n        \"=1\": \"one product\",\n        \"=2\": \"two products\",\n        \"other\": \"# products\"\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\n@Injectable()\nexport class Model {\n    //private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p:Product, id:number) => p.id == id;\n\n    constructor(private dataSource: SimpleDataSource) {\n        //this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n      let p = this.products.shift();\n      this.products.push(new Product(p.id, p.name, p.category, p.price));\n  }\n\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/structure.directive.ts",
    "content": "import {\n  Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n  selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n  constructor(private container: ViewContainerRef,\n      private template: TemplateRef<Object>) { }\n\n  @Input(\"paIf\")\n  expressionResult: boolean;\n\n  ngOnChanges(changes: { [property: string]: SimpleChange }) {\n      let change = changes[\"expressionResult\"];\n      if (!change.isFirstChange() && !change.currentValue) {\n          this.container.clear();\n      } else if (change.currentValue) {\n          this.container.createEmbeddedView(this.template);\n      }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n    <div class=\"col-4 p-2\">\n      <paProductForm>\n        <span paDisplayValue></span>\n      </paProductForm>\n    </div>\n    <div class=\"col-8 p-2\">\n      <paProductTable></paProductTable>\n    </div>\n  </div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/toggleView.component.html",
    "content": "<div class=\"checkbox\">\n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\"\n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n  HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n  selector: \"input[paModel]\",\n  exportAs: \"paModel\"\n})\nexport class PaModel {\n\n  direction: string = \"None\";\n\n  @Input(\"paModel\")\n  modelProperty: string;\n\n  @HostBinding(\"value\")\n  fieldValue: string = \"\";\n\n  ngOnChanges(changes: { [property: string]: SimpleChange }) {\n      let change = changes[\"modelProperty\"];\n      if (change.currentValue != this.fieldValue) {\n          this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n          this.direction = \"Model\";\n      }\n  }\n\n  @Output(\"paModelChange\")\n  update = new EventEmitter<string>();\n\n  @HostListener(\"input\", [\"$event.target.value\"])\n  updateValue(newValue: string) {\n      this.fieldValue = newValue;\n      this.update.emit(newValue);\n      this.direction = \"Element\";\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/app/valueDisplay.directive.ts",
    "content": "import { Directive, InjectionToken, Inject,\n    HostBinding, Host, Optional} from \"@angular/core\";\n\nexport const VALUE_SERVICE = new InjectionToken(\"value_service\");\n\n@Directive({\nselector: \"[paDisplayValue]\"\n})\nexport class PaDisplayValueDirective {\n\nconstructor( @Inject(VALUE_SERVICE) @Host() @Optional() serviceValue: string) {\n   this.elementContent = serviceValue || \"No Value\";\n}\n\n@HostBinding(\"textContent\")\nelementContent: string;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body>\n  <app class=\"angularApp\"></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 20/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"example\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/example\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"example:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"example:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"example:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"example:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"example\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/dist/example/3rdpartylicenses.txt",
    "content": "@angular/common\nMIT\n\n@angular/core\nMIT\n\n@angular/platform-browser\nMIT\n\nbootstrap\nMIT\nThe MIT License (MIT)\n\nCopyright (c) 2011-2019 Twitter, Inc.\nCopyright (c) 2011-2019 The Bootstrap Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\ncss-loader\nMIT\nCopyright JS Foundation and other contributors\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nrxjs\nApache-2.0\n                               Apache License\n                         Version 2.0, January 2004\n                      http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n        Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n        stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n        that You distribute, all copyright, patent, trademark, and\n        attribution notices from the Source form of the Work,\n        excluding those notices that do not pertain to any part of\n        the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n        distribution, then any Derivative Works that You distribute must\n        include a readable copy of the attribution notices contained\n        within such NOTICE file, excluding those notices that do not\n        pertain to any part of the Derivative Works, in at least one\n        of the following places: within a NOTICE text file distributed\n        as part of the Derivative Works; within the Source form or\n        documentation, if provided along with the Derivative Works; or,\n        within a display generated by the Derivative Works, if and\n        wherever such third-party notices normally appear. The contents\n        of the NOTICE file are for informational purposes only and\n        do not modify the License. You may add Your own attribution\n        notices within Derivative Works that You distribute, alongside\n        or as an addendum to the NOTICE text from the Work, provided\n        that such additional attribution notices cannot be construed\n        as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n    To apply the Apache License to your work, attach the following\n    boilerplate notice, with the fields enclosed by brackets \"[]\"\n    replaced with your own identifying information. (Don't include\n    the brackets!)  The text should be enclosed in the appropriate\n    comment syntax for the file format. We also recommend that a\n    file or class name and description of purpose be included on the\n    same \"printed page\" as the copyright notice for easier\n    identification within third-party archives.\n\n Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n \n\n\nzone.js\nMIT\nThe MIT License\n\nCopyright (c) 2010-2020 Google LLC. http://angular.io/license\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/dist/example/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"styles.51422a5c94b8290ff190.css\"></head>\n<body>\n  <app-root></app-root>\n<script src=\"runtime.359d5ee4682f20e936e9.js\" defer></script><script src=\"polyfills.bf99d438b005d57b2b31.js\" defer></script><script src=\"main.f78bdaa2683ef468e3b3.js\" defer></script></body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/dist/example/main.f78bdaa2683ef468e3b3.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(t,e,n){t.exports=n(\"zUnb\")},zUnb:function(t,e,n){\"use strict\";function r(t){return\"function\"==typeof t}n.r(e);let s=!1;const o={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn(\"DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n\"+t.stack)}else s&&console.log(\"RxJS: Back to a better error behavior. Thank you. <3\");s=t},get useDeprecatedSynchronousErrorHandling(){return s}};function i(t){setTimeout(()=>{throw t},0)}const l={closed:!0,next(t){},error(t){if(o.useDeprecatedSynchronousErrorHandling)throw t;i(t)},complete(){}},u=(()=>Array.isArray||(t=>t&&\"number\"==typeof t.length))();function c(t){return null!==t&&\"object\"==typeof t}const a=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join(\"\\n  \")}`:\"\",this.name=\"UnsubscriptionError\",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();let h=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:s,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(r(o)){s&&(this._unsubscribe=void 0);try{o.call(this)}catch(l){e=l instanceof a?d(l.errors):[l]}}if(u(i)){let t=-1,n=i.length;for(;++t<n;){const n=i[t];if(c(n))try{n.unsubscribe()}catch(l){e=e||[],l instanceof a?e=e.concat(d(l.errors)):e.push(l)}}}if(e)throw new a(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case\"function\":n=new t(e);case\"object\":if(n===this||n.closed||\"function\"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error(\"unrecognized teardown \"+e+\" added to Subscription.\")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof t){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const s=this._subscriptions;return null===s?this._subscriptions=[n]:s.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}return t.EMPTY=function(t){return t.closed=!0,t}(new t),t})();function d(t){return t.reduce((t,e)=>t.concat(e instanceof a?e.errors:e),[])}const f=(()=>\"function\"==typeof Symbol?Symbol(\"rxSubscriber\"):\"@@rxSubscriber_\"+Math.random())();class p extends h{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l;break;case 1:if(!t){this.destination=l;break}if(\"object\"==typeof t){t instanceof p?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,t,e,n)}}[f](){return this}static create(t,e,n){const r=new p(t,e,n);return r.syncErrorThrowable=!1,r}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class _ extends p{constructor(t,e,n,s){let o;super(),this._parentSubscriber=t;let i=this;r(e)?o=e:e&&(o=e.next,n=e.error,s=e.complete,e!==l&&(i=Object.create(e),r(i.unsubscribe)&&this.add(i.unsubscribe.bind(i)),i.unsubscribe=this.unsubscribe.bind(this))),this._context=i,this._next=o,this._error=n,this._complete=s}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;o.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:n}=o;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):i(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;i(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);o.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),o.useDeprecatedSynchronousErrorHandling)throw n;i(n)}}__tryOrSetError(t,e,n){if(!o.useDeprecatedSynchronousErrorHandling)throw new Error(\"bad call\");try{e.call(this._context,n)}catch(r){return o.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=r,t.syncErrorThrown=!0,!0):(i(r),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const y=(()=>\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\")();function m(t){return t}let g=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:r}=this,s=function(t,e,n){if(t){if(t instanceof p)return t;if(t[f])return t[f]()}return t||e||n?new p(t,e,n):new p(l)}(t,e,n);if(s.add(r?r.call(s,this.source):this.source||o.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),o.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(t){try{return this._subscribe(t)}catch(e){o.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof p?n:null}return!0}(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=v(e))((e,n)=>{let r;r=this.subscribe(e=>{try{t(e)}catch(s){n(s),r&&r.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[y](){return this}pipe(...t){return 0===t.length?this:(0===(e=t).length?m:1===e.length?e[0]:function(t){return e.reduce((t,e)=>e(t),t)})(this);var e}toPromise(t){return new(t=v(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function v(t){if(t||(t=o.Promise||Promise),!t)throw new Error(\"no Promise impl found\");return t}const b=(()=>{function t(){return Error.call(this),this.message=\"object unsubscribed\",this.name=\"ObjectUnsubscribedError\",this}return t.prototype=Object.create(Error.prototype),t})();class w extends h{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}class C extends p{constructor(t){super(t),this.destination=t}}let E=(()=>{class t extends g{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[f](){return new C(this)}lift(t){const e=new x(this,this);return e.operator=t,e}next(t){if(this.closed)throw new b;if(!this.isStopped){const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].next(t)}}error(t){if(this.closed)throw new b;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,r=e.slice();for(let s=0;s<n;s++)r[s].error(t);this.observers.length=0}complete(){if(this.closed)throw new b;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let r=0;r<e;r++)n[r].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new b;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new b;return this.hasError?(t.error(this.thrownError),h.EMPTY):this.isStopped?(t.complete(),h.EMPTY):(this.observers.push(t),new w(this,t))}asObservable(){const t=new g;return t.source=this,t}}return t.create=(t,e)=>new x(t,e),t})();class x extends E{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):h.EMPTY}}class k{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new T(t,this.project,this.thisArg))}}class T extends p{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}const S=t=>e=>{for(let n=0,r=t.length;n<r&&!e.closed;n++)e.next(t[n]);e.complete()};function I(){return\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\"}const A=I();const O=t=>{if(t&&\"function\"==typeof t[y])return o=t,t=>{const e=o[y]();if(\"function\"!=typeof e.subscribe)throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");return e.subscribe(t)};if((e=t)&&\"number\"==typeof e.length&&\"function\"!=typeof e)return S(t);var e,n,r,s,o;if((n=t)&&\"function\"!=typeof n.subscribe&&\"function\"==typeof n.then)return s=t,t=>(s.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,i),t);if(t&&\"function\"==typeof t[A])return r=t,t=>{const e=r[A]();for(;;){let r;try{r=e.next()}catch(n){return t.error(n),t}if(r.done){t.complete();break}if(t.next(r.value),t.closed)break}return\"function\"==typeof e.return&&t.add(()=>{e.return&&e.return()}),t};{const e=c(t)?\"an invalid object\":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`)}};class D extends p{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class j extends p{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function H(t,e,n=Number.POSITIVE_INFINITY){return\"function\"==typeof e?r=>r.pipe(H((n,r)=>{return(s=t(n,r),s instanceof g?s:new g(O(s))).pipe(function(t,e){return function(e){return e.lift(new k(t,void 0))}}((t,s)=>e(n,t,r,s)));var s},n)):(\"number\"==typeof e&&(n=e),e=>e.lift(new N(t,n)))}class N{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new P(t,this.project,this.concurrent))}}class P extends j{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e)}_innerSub(t){const e=new D(this),n=this.destination;n.add(e);const r=function(t,e){if(!e.closed)return t instanceof g?t.subscribe(e):O(t)(e)}(t,e);r!==e&&n.add(r)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t){this.destination.next(t)}notifyComplete(){const t=this.buffer;this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function R(){return function(t){return t.lift(new M(t))}}class M{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const r=new F(t,n),s=e.subscribe(r);return r.closed||(r.connection=n.connect()),s}}class F extends p{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:n}=this,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}class V extends g{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new h,t.add(this.source.subscribe(new B(this.getSubject(),this))),t.closed&&(this._connection=null,t=h.EMPTY)),t}refCount(){return R()(this)}}const L=(()=>{const t=V.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class B extends C{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}function Z(){return new E}function z(t){return{toString:t}.toString()}const $=\"__parameters__\";function U(t,e,n){return z(()=>{const r=function(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}(e);function s(...t){if(this instanceof s)return r.apply(this,t),this;const e=new s(...t);return n.annotation=e,n;function n(t,n,r){const s=t.hasOwnProperty($)?t[$]:Object.defineProperty(t,$,{value:[]})[$];for(;s.length<=r;)s.push(null);return(s[r]=s[r]||[]).push(e),t}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s})}const W=U(\"Inject\",t=>({token:t})),q=U(\"Optional\"),Q=U(\"Self\"),G=U(\"SkipSelf\");function J(t){if(\"string\"==typeof t)return t;if(Array.isArray(t))return\"[\"+t.map(J).join(\", \")+\"]\";if(null==t)return\"\"+t;if(t.overriddenName)return\"\"+t.overriddenName;if(t.name)return\"\"+t.name;const e=t.toString();if(null==e)return\"\"+e;const n=e.indexOf(\"\\n\");return-1===n?e:e.substring(0,n)}function K(t,e){return null==t||\"\"===t?null===e?\"\":e:null==e||\"\"===e?t:t+\" \"+e}function Y(t){for(let e in t)if(t[e]===Y)return e;throw Error(\"Could not find renamed property on target object.\")}function X(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function tt(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function et(t){return nt(t,st)||nt(t,it)}function nt(t,e){return t.hasOwnProperty(e)?t[e]:null}function rt(t){return t&&(t.hasOwnProperty(ot)||t.hasOwnProperty(lt))?t[ot]:null}const st=Y({\"\\u0275prov\":Y}),ot=Y({\"\\u0275inj\":Y}),it=Y({ngInjectableDef:Y}),lt=Y({ngInjectorDef:Y});class ut{constructor(t,e){this._desc=t,this.ngMetadataName=\"InjectionToken\",this.\\u0275prov=void 0,\"number\"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\\u0275prov=X({token:this,providedIn:e.providedIn||\"root\",factory:e.factory}))}toString(){return\"InjectionToken \"+this._desc}}var ct=function(t){return t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\",t}({});const at=\"undefined\"!=typeof globalThis&&globalThis,ht=\"undefined\"!=typeof window&&window,dt=\"undefined\"!=typeof self&&\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,ft=\"undefined\"!=typeof global&&global,pt=at||ft||ht||dt,_t=Y({__forward_ref__:Y});function yt(t){return t.__forward_ref__=yt,t.toString=function(){return J(this())},t}function mt(t){return\"function\"==typeof(e=t)&&e.hasOwnProperty(_t)&&e.__forward_ref__===yt?t():t;var e}function gt(t,e){t.forEach(t=>Array.isArray(t)?gt(t,e):e(t))}var vt=function(t){return t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\",t}({});const bt={},wt=[],Ct=Y({\"\\u0275cmp\":Y}),Et=Y({\"\\u0275dir\":Y}),xt=Y({\"\\u0275pipe\":Y}),kt=Y({\"\\u0275mod\":Y}),Tt=Y({\"\\u0275loc\":Y}),St=Y({\"\\u0275fac\":Y}),It=Y({__NG_ELEMENT_ID__:Y});let At=0;function Ot(t){return Pt(t)||function(t){return t[Et]||null}(t)}function Dt(t){return function(t){return t[xt]||null}(t)}const jt={};function Ht(t){const e={type:t.type,bootstrap:t.bootstrap||wt,declarations:t.declarations||wt,imports:t.imports||wt,exports:t.exports||wt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&z(()=>{jt[t.id]=t.type}),e}function Nt(t,e){if(null==t)return bt;const n={};for(const r in t)if(t.hasOwnProperty(r)){let s=t[r],o=s;Array.isArray(s)&&(o=s[1],s=s[0]),n[s]=r,e&&(e[s]=o)}return n}function Pt(t){return t[Ct]||null}function Rt(t,e){const n=t[kt]||null;if(!n&&!0===e)throw new Error(`Type ${J(t)} does not have '\\u0275mod' property.`);return n}function Mt(t){return\"function\"==typeof t?t.name||t.toString():\"object\"==typeof t&&null!=t&&\"function\"==typeof t.type?t.type.name||t.type.toString():function(t){return\"string\"==typeof t?t:null==t?\"\":\"\"+t}(t)}var Ft=function(t){return t[t.Default=0]=\"Default\",t[t.Host=1]=\"Host\",t[t.Self=2]=\"Self\",t[t.SkipSelf=4]=\"SkipSelf\",t[t.Optional=8]=\"Optional\",t}({});let Vt;function Lt(t){const e=Vt;return Vt=t,e}function Bt(t,e,n){const r=et(t);if(r&&\"root\"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Ft.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${J(t)}]`)}const Zt={},zt=/\\n/gm,$t=\"__source\",Ut=Y({provide:String,useValue:Y});let Wt=void 0;function qt(t){const e=Wt;return Wt=t,e}function Qt(t,e=Ft.Default){if(void 0===Wt)throw new Error(\"inject() must be called from an injection context\");return null===Wt?Bt(t,void 0,e):Wt.get(t,e&Ft.Optional?null:void 0,e)}function Gt(t,e=Ft.Default){return(Vt||Qt)(mt(t),e)}function Jt(t){const e=[];for(let n=0;n<t.length;n++){const r=mt(t[n]);if(Array.isArray(r)){if(0===r.length)throw new Error(\"Arguments array must have arguments.\");let t=void 0,n=Ft.Default;for(let e=0;e<r.length;e++){const s=r[e];s instanceof q||\"Optional\"===s.ngMetadataName||s===q?n|=Ft.Optional:s instanceof G||\"SkipSelf\"===s.ngMetadataName||s===G?n|=Ft.SkipSelf:s instanceof Q||\"Self\"===s.ngMetadataName||s===Q?n|=Ft.Self:t=s instanceof W||s===W?s.token:s}e.push(Gt(t,n))}else e.push(Gt(r))}return e}let Kt=void 0;const Yt=20;function Xt(t){return Array.isArray(t)&&\"object\"==typeof t[1]}function te(t){return Array.isArray(t)&&!0===t[1]}function ee(t){return 0!=(8&t.flags)}function ne(t){return null!==t.template}function re(t){return!!t.listen}const se={createRenderer:(t,e)=>void 0!==Kt?Kt:\"undefined\"!=typeof document?document:void 0};function oe(t){for(;Array.isArray(t);)t=t[0];return t}function ie(t,e){return oe(e[t.index])}function le(t,e){const n=e[t];return Xt(n)?n:n[0]}function ue(t){const e=function(t){return t.__ngContext__||null}(t);return e?Array.isArray(e)?e:e.lView:null}function ce(t){return 128==(128&t[2])}function ae(t,e){return null==e?null:t[e]}function he(t){t[18]=0}function de(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const fe={lFrame:Oe(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function pe(){return fe.bindingsEnabled}function _e(){return fe.lFrame.lView}function ye(){return fe.lFrame.tView}function me(){let t=ge();for(;null!==t&&64===t.type;)t=t.parent;return t}function ge(){return fe.lFrame.currentTNode}function ve(t,e){const n=fe.lFrame;n.currentTNode=t,n.isParent=e}function be(){return fe.lFrame.isParent}function we(){return fe.isInCheckNoChangesMode}function Ce(t){fe.isInCheckNoChangesMode=t}function Ee(t,e){const n=fe.lFrame;n.bindingIndex=n.bindingRootIndex=t,xe(e)}function xe(t){fe.lFrame.currentDirectiveIndex=t}function ke(t){fe.lFrame.currentQueryIndex=t}function Te(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function Se(t,e,n){if(n&Ft.SkipSelf){let r=e,s=t;for(;r=r.parent,!(null!==r||n&Ft.Host||(r=Te(s),null===r)||(s=s[15],10&r.type)););if(null===r)return!1;e=r,t=s}const r=fe.lFrame=Ae();return r.currentTNode=e,r.lView=t,!0}function Ie(t){const e=Ae(),n=t[1];fe.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function Ae(){const t=fe.lFrame,e=null===t?null:t.child;return null===e?Oe(t):e}function Oe(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function De(){const t=fe.lFrame;return fe.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const je=De;function He(){const t=De();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Ne(t){fe.lFrame.selectedIndex=t}let Pe=!0,Re=!1;function Me(){return Re=!0,Pe}function Fe(t,e){return t.hasOwnProperty(St)?t[St]:null}class Ve extends Error{constructor(t,e){super(function(t,e){return`${t?`NG0${t}: `:\"\"}${e}`}(t,e)),this.code=t}}function Le(t,e){const n=e?\" in \"+e:\"\";throw new Ve(\"201\",`No provider for ${Mt(t)} found${n}`)}class Be{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function Ze(){const t=$e(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===bt)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}}function ze(t,e,n,r){const s=$e(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:bt,current:null}),o=s.current||(s.current={}),i=s.previous,l=this.declaredInputs[n],u=i[l];o[l]=new Be(u&&u.currentValue,e,i===bt),t[r]=e}function $e(t){return t.__ngSimpleChanges__||null}function Ue(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n<r;n++){const e=t.data[n].type.prototype,{ngAfterContentInit:r,ngAfterContentChecked:s,ngAfterViewInit:o,ngAfterViewChecked:i,ngOnDestroy:l}=e;r&&(t.contentHooks||(t.contentHooks=[])).push(-n,r),s&&((t.contentHooks||(t.contentHooks=[])).push(n,s),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,s)),o&&(t.viewHooks||(t.viewHooks=[])).push(-n,o),i&&((t.viewHooks||(t.viewHooks=[])).push(n,i),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,i)),null!=l&&(t.destroyHooks||(t.destroyHooks=[])).push(n,l)}}function We(t,e,n){Ge(t,e,3,n)}function qe(t,e,n,r){(3&t[2])===n&&Ge(t,e,n,r)}function Qe(t,e){let n=t[2];(3&n)===e&&(n&=2047,n+=1,t[2]=n)}function Ge(t,e,n,r){const s=null!=r?r:-1;let o=0;for(let i=void 0!==r?65535&t[18]:0;i<e.length;i++)if(\"number\"==typeof e[i+1]){if(o=e[i],null!=r&&o>=r)break}else e[i]<0&&(t[18]+=65536),(o<s||-1==s)&&(Je(t,n,e,i),t[18]=(4294901760&t[18])+i+2),i++}function Je(t,e,n,r){const s=n[r]<0,o=n[r+1],i=t[s?-n[r]:n[r]];s?t[2]>>11<t[18]>>16&&(3&t[2])===e&&(t[2]+=2048,o.call(i)):o.call(i)}const Ke=-1;class Ye{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}function Xe(t,e,n){const r=re(t);let s=0;for(;s<n.length;){const o=n[s];if(\"number\"==typeof o){if(0!==o)break;s++;const i=n[s++],l=n[s++],u=n[s++];r?t.setAttribute(e,l,u,i):e.setAttributeNS(i,l,u)}else{const i=o,l=n[++s];64===i.charCodeAt(0)?r&&t.setProperty(e,i,l):r?t.setAttribute(e,i,l):e.setAttribute(i,l),s++}}return s}function tn(t,e){if(null===e||0===e.length);else if(null===t||0===t.length)t=e.slice();else{let n=-1;for(let r=0;r<e.length;r++){const s=e[r];\"number\"==typeof s?n=s:0===n||en(t,n,s,null,-1===n||2===n?e[++r]:null)}}return t}function en(t,e,n,r,s){let o=0,i=t.length;if(-1===e)i=-1;else for(;o<t.length;){const n=t[o++];if(\"number\"==typeof n){if(n===e){i=-1;break}if(n>e){i=o-1;break}}}for(;o<t.length;){const e=t[o];if(\"number\"==typeof e)break;if(e===n){if(null===r)return void(null!==s&&(t[o+1]=s));if(r===t[o+1])return void(t[o+2]=s)}o++,null!==r&&o++,null!==s&&o++}-1!==i&&(t.splice(i,0,e),o=i+1),t.splice(o++,0,n),null!==r&&t.splice(o++,0,r),null!==s&&t.splice(o++,0,s)}function nn(t){return 32767&t}function rn(t,e){let n=t>>16,r=e;for(;n>0;)r=r[15],n--;return r}let sn=!0;function on(t){const e=sn;return sn=t,e}let ln=0;function un(t,e){const n=an(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,cn(r.data,t),cn(e,null),cn(r.blueprint,null));const s=hn(t,e),o=t.injectorIndex;if(s!==Ke){const t=nn(s),n=rn(s,e),r=n[1].data;for(let s=0;s<8;s++)e[o+s]=n[t+s]|r[t+s]}return e[o+8]=s,o}function cn(t,e){t.push(0,0,0,0,0,0,0,0,e)}function an(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function hn(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,s=e;for(;null!==s;){const t=s[1],e=t.type;if(r=2===e?t.declTNode:1===e?s[6]:null,null===r)return Ke;if(n++,s=s[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return Ke}function dn(t,e,n){!function(t,e,n){let r;\"string\"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(It)&&(r=n[It]),null==r&&(r=n[It]=ln++);const s=255&r,o=1<<s,i=64&s,l=32&s,u=e.data;128&s?i?l?u[t+7]|=o:u[t+6]|=o:l?u[t+5]|=o:u[t+4]|=o:i?l?u[t+3]|=o:u[t+2]|=o:l?u[t+1]|=o:u[t]|=o}(t,e,n)}function fn(t,e,n){if(n&Ft.Optional)return t;Le(e,\"NodeInjector\")}function pn(t,e,n,r){if(n&Ft.Optional&&void 0===r&&(r=null),0==(n&(Ft.Self|Ft.Host))){const s=t[9],o=Lt(void 0);try{return s?s.get(e,r,n&Ft.Optional):Bt(e,r,n&Ft.Optional)}finally{Lt(o)}}return fn(r,e,n)}const _n={};function yn(){return new wn(me(),_e())}function mn(t,e,n,r,s,o){const i=e[1],l=i.data[t+8],u=function(t,e,n,r,s){const o=t.providerIndexes,i=e.data,l=1048575&o,u=t.directiveStart,c=o>>20,a=s?l+c:t.directiveEnd;for(let h=r?l:l+c;h<a;h++){const t=i[h];if(h<u&&n===t||h>=u&&t.type===n)return h}if(s){const t=i[u];if(t&&ne(t)&&t.type===n)return u}return null}(l,i,n,null==r?function(t){return 2==(2&t.flags)}(l)&&sn:r!=i&&0!=(3&l.type),s&Ft.Host&&o===l);return null!==u?gn(e,i,u,l):_n}function gn(t,e,n,r){let s=t[n];const o=e.data;if(s instanceof Ye){const i=s;i.resolving&&function(t,e){throw new Ve(\"200\",\"Circular dependency in DI detected for \"+t)}(Mt(o[n]));const l=on(i.canSeeViewProviders);i.resolving=!0;const u=i.injectImpl?Lt(i.injectImpl):null;Se(t,r,Ft.Default);try{s=t[n]=i.factory(void 0,o,t,r),e.firstCreatePass&&n>=r.directiveStart&&function(t,e,n){const{ngOnChanges:r,ngOnInit:s,ngDoCheck:o}=e.type.prototype;if(r){const r=((i=e).type.prototype.ngOnChanges&&(i.setInput=ze),Ze);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,r)}var i;s&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,s),o&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,o))}(n,o[n],e)}finally{null!==u&&Lt(u),on(l),i.resolving=!1,je()}}return s}function vn(t,e,n){const r=64&t,s=32&t;let o;return o=128&t?r?s?n[e+7]:n[e+6]:s?n[e+5]:n[e+4]:r?s?n[e+3]:n[e+2]:s?n[e+1]:n[e],!!(o&1<<t)}function bn(t,e){return!(t&Ft.Self||t&Ft.Host&&e)}class wn{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return function(t,e,n,r=Ft.Default,s){if(null!==t){const o=function(t){if(\"string\"==typeof t)return t.charCodeAt(0)||0;const e=t.hasOwnProperty(It)?t[It]:void 0;return\"number\"==typeof e?e>=0?255&e:yn:e}(n);if(\"function\"==typeof o){if(!Se(e,t,r))return r&Ft.Host?fn(s,n,r):pn(e,n,r,s);try{const t=o();if(null!=t||r&Ft.Optional)return t;Le(n)}finally{je()}}else if(\"number\"==typeof o){let s=null,i=an(t,e),l=Ke,u=r&Ft.Host?e[16][6]:null;for((-1===i||r&Ft.SkipSelf)&&(l=-1===i?hn(t,e):e[i+8],l!==Ke&&bn(r,!1)?(s=e[1],i=nn(l),e=rn(l,e)):i=-1);-1!==i;){const t=e[1];if(vn(o,i,t.data)){const t=mn(i,e,n,s,r,u);if(t!==_n)return t}l=e[i+8],l!==Ke&&bn(r,e[1].data[i+8]===u)&&vn(o,i,e)?(s=t,i=nn(l),e=rn(l,e)):i=-1}}}return pn(e,n,r,s)}(this._tNode,this._lView,t,void 0,e)}}function Cn(t){return t.ngDebugContext}function En(t){return t.ngOriginalError}function xn(t,...e){t.error(...e)}class kn{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),r=function(t){return t.ngErrorLogger||xn}(t);r(this._console,\"ERROR\",t),e&&r(this._console,\"ORIGINAL ERROR\",e),n&&r(this._console,\"ERROR CONTEXT\",n)}_findContext(t){return t?Cn(t)?Cn(t):this._findContext(En(t)):null}_findOriginalError(t){let e=En(t);for(;e&&En(e);)e=En(e);return e}}function Tn(t,e){t.__ngContext__=e}const Sn=(()=>(\"undefined\"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(pt))();function In(t){return t instanceof Function?t():t}var An=function(t){return t[t.Important=1]=\"Important\",t[t.DashCase=2]=\"DashCase\",t}({});function On(t,e){return(void 0)(t,e)}function Dn(t){const e=t[3];return te(e)?e[3]:e}function jn(t){return Nn(t[13])}function Hn(t){return Nn(t[4])}function Nn(t){for(;null!==t&&!te(t);)t=t[4];return t}function Pn(t,e,n,r,s){if(null!=r){let o,i=!1;te(r)?o=r:Xt(r)&&(i=!0,r=r[0]);const l=oe(r);0===t&&null!==n?null==s?Vn(e,n,l):Fn(e,n,l,s||null,!0):1===t&&null!==n?Fn(e,n,l,s||null,!0):2===t?function(t,e,n){const r=function(t,e){return re(t)?t.parentNode(e):e.parentNode}(t,e);r&&function(t,e,n,r){re(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,l,i):3===t&&e.destroyNode(l),null!=o&&function(t,e,n,r,s){const o=n[7];o!==oe(n)&&Pn(e,t,r,o,s);for(let i=10;i<n.length;i++){const s=n[i];zn(s[1],s,t,e,r,o)}}(e,t,o,n,s)}}function Rn(t,e,n){return re(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function Mn(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r<n.length;r+=2){const t=e[n[r]];if(!(t instanceof Ye)){const e=n[r+1];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)e[n+1].call(t[e[n]]);else e.call(t)}}}(t,e),function(t,e){const n=t.cleanup;if(null!==n){const t=e[7];for(let r=0;r<n.length-1;r+=2)if(\"string\"==typeof n[r]){const s=n[r+1],o=\"function\"==typeof s?s(e):oe(e[s]),i=t[n[r+2]],l=n[r+3];\"boolean\"==typeof l?o.removeEventListener(n[r],i,l):l>=0?t[l]():t[-l].unsubscribe(),r+=2}else n[r].call(t[n[r+1]]);e[7]=null}}(t,e),1===e[1].type&&re(e[11])&&e[11].destroy();const n=e[17];if(null!==n&&te(e[3])){n!==e[3]&&function(t,e){const n=t[9],r=n.indexOf(e),s=e[3];1024&e[2]&&(e[2]&=-1025,de(s,-1)),n.splice(r,1)}(n,e);const r=e[19];null!==r&&r.detachView(t)}}}function Fn(t,e,n,r,s){re(t)?t.insertBefore(e,n,r,s):e.insertBefore(n,r,s)}function Vn(t,e,n){re(t)?t.appendChild(e,n):e.appendChild(n)}function Ln(t,e,n,r,s){null!==r?Fn(t,e,n,r,s):Vn(t,e,n)}function Bn(t,e,n,r){const s=function(t,e,n){return function(t,e,n){let r=e;for(;null!==r&&40&r.type;)r=(e=r).parent;if(null===r)return n[0];if(2&r.flags){const e=t.data[r.directiveStart].encapsulation;if(e===vt.None||e===vt.Emulated)return null}return ie(r,n)}(t,e.parent,n)}(t,r,e),o=e[11],i=function(t,e,n){return function(t,e,n){return 40&t.type?ie(t,n):null}(t,0,n)}(r.parent||e[6],0,e);if(null!=s)if(Array.isArray(n))for(let l=0;l<n.length;l++)Ln(o,s,n[l],i,!1);else Ln(o,s,n,i,!1)}function Zn(t,e,n,r,s,o,i){for(;null!=n;){const l=r[n.index],u=n.type;if(i&&0===e&&(l&&Tn(oe(l),r),n.flags|=4),64!=(64&n.flags))if(8&u)Zn(t,e,n.child,r,s,o,!1),Pn(e,t,s,l,o);else if(32&u){const i=On(n,r);let u;for(;u=i();)Pn(e,t,s,u,o);Pn(e,t,s,l,o)}else 16&u?$n(t,e,r,n,s,o):Pn(e,t,s,l,o);n=i?n.projectionNext:n.next}}function zn(t,e,n,r,s,o){Zn(n,r,t.firstChild,e,s,o,!1)}function $n(t,e,n,r,s,o){const i=n[16],l=i[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)Pn(e,t,s,l[u],o);else Zn(t,e,l,i[3],s,o,!0)}function Un(t,e,n){re(t)?t.setAttribute(e,\"style\",n):e.style.cssText=n}function Wn(t,e,n){re(t)?\"\"===n?t.removeAttribute(e,\"class\"):t.setAttribute(e,\"class\",n):e.className=n}function qn(t,e,n){let r=t.length;for(;;){const s=t.indexOf(e,n);if(-1===s)return s;if(0===s||t.charCodeAt(s-1)<=32){const n=e.length;if(s+n===r||t.charCodeAt(s+n)<=32)return s}n=s+1}}const Qn=\"ng-template\";function Gn(t,e,n){let r=0;for(;r<t.length;){let s=t[r++];if(n&&\"class\"===s){if(s=t[r],-1!==qn(s.toLowerCase(),e,0))return!0}else if(1===s){for(;r<t.length&&\"string\"==typeof(s=t[r++]);)if(s.toLowerCase()===e)return!0;return!1}}return!1}function Jn(t){return 4===t.type&&t.value!==Qn}function Kn(t,e,n){return e===(4!==t.type||n?t.value:Qn)}function Yn(t,e,n){let r=4;const s=t.attrs||[],o=function(t){for(let n=0;n<t.length;n++)if(3===(e=t[n])||4===e||6===e)return n;var e;return t.length}(s);let i=!1;for(let l=0;l<e.length;l++){const u=e[l];if(\"number\"!=typeof u){if(!i)if(4&r){if(r=2|1&r,\"\"!==u&&!Kn(t,u,n)||\"\"===u&&1===e.length){if(Xn(r))return!1;i=!0}}else{const c=8&r?u:e[++l];if(8&r&&null!==t.attrs){if(!Gn(t.attrs,c,n)){if(Xn(r))return!1;i=!0}continue}const a=tr(8&r?\"class\":u,s,Jn(t),n);if(-1===a){if(Xn(r))return!1;i=!0;continue}if(\"\"!==c){let t;t=a>o?\"\":s[a+1].toLowerCase();const e=8&r?t:null;if(e&&-1!==qn(e,c,0)||2&r&&c!==t){if(Xn(r))return!1;i=!0}}}}else{if(!i&&!Xn(r)&&!Xn(u))return!1;if(i&&Xn(u))continue;i=!1,r=u|1&r}}return Xn(r)||i}function Xn(t){return 0==(1&t)}function tr(t,e,n,r){if(null===e)return-1;let s=0;if(r||!n){let n=!1;for(;s<e.length;){const r=e[s];if(r===t)return s;if(3===r||6===r)n=!0;else{if(1===r||2===r){let t=e[++s];for(;\"string\"==typeof t;)t=e[++s];continue}if(4===r)break;if(0===r){s+=4;continue}}s+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){const r=t[n];if(\"number\"==typeof r)return-1;if(r===e)return n;n++}return-1}(e,t)}function er(t,e,n=!1){for(let r=0;r<e.length;r++)if(Yn(t,e[r],n))return!0;return!1}function nr(t,e){return t?\":not(\"+e.trim()+\")\":e}function rr(t){let e=t[0],n=1,r=2,s=\"\",o=!1;for(;n<t.length;){let i=t[n];if(\"string\"==typeof i)if(2&r){const e=t[++n];s+=\"[\"+i+(e.length>0?'=\"'+e+'\"':\"\")+\"]\"}else 8&r?s+=\".\"+i:4&r&&(s+=\" \"+i);else\"\"===s||Xn(i)||(e+=nr(o,s),s=\"\"),r=i,o=o||!Xn(r);n++}return\"\"!==s&&(e+=nr(o,s)),e}const sr={};function or(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r<n.length;r+=2){const s=n[r],o=n[r+1];if(-1!==o){const n=t.data[o];ke(s),n.contentQueries(2,e[o],o)}}}function ir(t,e,n,r,s,o,i,l,u,c){const a=e.blueprint.slice();return a[0]=s,a[2]=140|r,he(a),a[3]=a[15]=t,a[8]=n,a[10]=i||t&&t[10],a[11]=l||t&&t[11],a[12]=u||t&&t[12]||null,a[9]=c||t&&t[9]||null,a[6]=o,a[16]=2==e.type?t[16]:a,a}function lr(t,e,n,r,s){let o=t.data[e];if(null===o)o=function(t,e,n,r,s){const o=ge(),i=be(),l=t.data[e]=function(t,e,n,r,s,o){return{type:n,index:r,insertBeforeIndex:null,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:s,attrs:o,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,i?o:o&&o.parent,n,e,r,s);return null===t.firstChild&&(t.firstChild=l),null!==o&&(i?null==o.child&&null!==l.parent&&(o.child=l):null===o.next&&(o.next=l)),l}(t,e,n,r,s),fe.lFrame.inI18n&&(o.flags|=64);else if(64&o.type){o.type=n,o.value=r,o.attrs=s;const t=function(){const t=fe.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}();o.injectorIndex=null===t?-1:t.injectorIndex}return ve(o,!0),o}function ur(t,e,n,r){if(0===n)return-1;const s=e.length;for(let o=0;o<n;o++)e.push(r),t.blueprint.push(r),t.data.push(null);return s}function cr(t,e,n){Ie(e);try{const r=t.viewQuery;null!==r&&Dr(1,r,n);const s=t.template;null!==s&&dr(t,e,s,1,n),t.firstCreatePass&&(t.firstCreatePass=!1),t.staticContentQueries&&or(t,e),t.staticViewQueries&&Dr(2,t.viewQuery,n);const o=t.components;null!==o&&function(t,e){for(let n=0;n<e.length;n++)Sr(t,e[n])}(e,o)}catch(r){throw t.firstCreatePass&&(t.incompleteFirstPass=!0),r}finally{e[2]&=-5,He()}}function ar(t,e,n,r){const s=e[2];if(256==(256&s))return;Ie(e);const o=we();try{he(e),fe.lFrame.bindingIndex=t.bindingStartIndex,null!==n&&dr(t,e,n,2,r);const i=3==(3&s);if(!o)if(i){const n=t.preOrderCheckHooks;null!==n&&We(e,n,null)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,null),Qe(e,0)}if(function(t){for(let e=jn(t);null!==e;e=Hn(e)){if(!e[2])continue;const t=e[9];for(let e=0;e<t.length;e++){const n=t[e],r=n[3];0==(1024&n[2])&&de(r,1),n[2]|=1024}}}(e),function(t){for(let e=jn(t);null!==e;e=Hn(e))for(let t=10;t<e.length;t++){const n=e[t],r=n[1];ce(n)&&ar(r,n,r.template,n[8])}}(e),null!==t.contentQueries&&or(t,e),!o)if(i){const n=t.contentCheckHooks;null!==n&&We(e,n)}else{const n=t.contentHooks;null!==n&&qe(e,n,1),Qe(e,1)}!function(t,e){const n=t.hostBindingOpCodes;if(null!==n)try{for(let t=0;t<n.length;t++){const r=n[t];if(r<0)Ne(~r);else{const s=r,o=n[++t],i=n[++t];Ee(o,s),i(2,e[s])}}}finally{Ne(-1)}}(t,e);const l=t.components;null!==l&&function(t,e){for(let n=0;n<e.length;n++)kr(t,e[n])}(e,l);const u=t.viewQuery;if(null!==u&&Dr(2,u,r),!o)if(i){const n=t.viewCheckHooks;null!==n&&We(e,n)}else{const n=t.viewHooks;null!==n&&qe(e,n,2),Qe(e,2)}!0===t.firstUpdatePass&&(t.firstUpdatePass=!1),o||(e[2]&=-73),1024&e[2]&&(e[2]&=-1025,de(e[3],-1))}finally{He()}}function hr(t,e,n,r){const s=e[10],o=!we(),i=4==(4&e[2]);try{o&&!i&&s.begin&&s.begin(),i&&cr(t,e,r),ar(t,e,n,r)}finally{o&&!i&&s.end&&s.end()}}function dr(t,e,n,r,s){const o=fe.lFrame.selectedIndex;try{Ne(-1),2&r&&e.length>Yt&&function(t,e,n,r){if(!r)if(3==(3&e[2])){const n=t.preOrderCheckHooks;null!==n&&We(e,n,20)}else{const n=t.preOrderHooks;null!==n&&qe(e,n,0,20)}Ne(20)}(t,e,0,we()),n(r,s)}finally{Ne(o)}}function fr(t){const e=t.tView;return null===e||e.incompleteFirstPass?t.tView=pr(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts):e}function pr(t,e,n,r,s,o,i,l,u,c){const a=Yt+r,h=a+s,d=function(t,e){const n=[];for(let r=0;r<e;r++)n.push(r<t?null:sr);return n}(a,h),f=\"function\"==typeof c?c():c;return d[1]={type:t,blueprint:d,template:n,queries:null,viewQuery:l,declTNode:e,data:d.slice().fill(null,a),bindingStartIndex:a,expandoStartIndex:h,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:\"function\"==typeof o?o():o,pipeRegistry:\"function\"==typeof i?i():i,firstChild:null,schemas:u,consts:f,incompleteFirstPass:!1}}function _r(t,e,n){for(let r in t)if(t.hasOwnProperty(r)){const s=t[r];(n=null===n?{}:n).hasOwnProperty(r)?n[r].push(e,s):n[r]=[e,s]}return n}function yr(t,e,n,r,s,o){const i=o.hostBindings;if(i){let n=t.hostBindingOpCodes;null===n&&(n=t.hostBindingOpCodes=[]);const o=~e.index;(function(t){let e=t.length;for(;e>0;){const n=t[--e];if(\"number\"==typeof n&&n<0)return n}return 0})(n)!=o&&n.push(o),n.push(r,s,i)}}function mr(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function gr(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function vr(t,e,n){if(n){if(e.exportAs)for(let r=0;r<e.exportAs.length;r++)n[e.exportAs[r]]=t;ne(e)&&(n[\"\"]=t)}}function br(t,e,n){t.flags|=1,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function wr(t,e,n,r,s){t.data[r]=s;const o=s.factory||(s.factory=Fe(s.type)),i=new Ye(o,ne(s),null);t.blueprint[r]=i,n[r]=i,yr(t,e,0,r,ur(t,n,s.hostVars,sr),s)}function Cr(t,e,n){const r=ie(e,t),s=fr(n),o=t[10],i=Ir(t,ir(t,s,null,n.onPush?64:16,r,e,o,o.createRenderer(r,n),null,null));t[e.index]=i}function Er(t,e,n,r,s,o){const i=o[e];if(null!==i){const t=r.setInput;for(let e=0;e<i.length;){const s=i[e++],o=i[e++],l=i[e++];null!==t?r.setInput(n,l,s,o):n[o]=l}}}function xr(t,e){let n=null,r=0;for(;r<e.length;){const s=e[r];if(0!==s)if(5!==s){if(\"number\"==typeof s)break;t.hasOwnProperty(s)&&(null===n&&(n=[]),n.push(s,t[s],e[r+1])),r+=2}else r+=2;else r+=4}return n}function kr(t,e){const n=le(e,t);if(ce(n)){const t=n[1];80&n[2]?ar(t,n,t.template,n[8]):n[5]>0&&Tr(n)}}function Tr(t){for(let n=jn(t);null!==n;n=Hn(n))for(let t=10;t<n.length;t++){const e=n[t];if(1024&e[2]){const t=e[1];ar(t,e,t.template,e[8])}else e[5]>0&&Tr(e)}const e=t[1].components;if(null!==e)for(let n=0;n<e.length;n++){const r=le(e[n],t);ce(r)&&r[5]>0&&Tr(r)}}function Sr(t,e){const n=le(e,t),r=n[1];!function(t,e){for(let n=e.length;n<t.blueprint.length;n++)e.push(t.blueprint[n])}(r,n),cr(r,n,n[8])}function Ir(t,e){return t[13]?t[14][4]=e:t[13]=e,t[14]=e,e}function Ar(t,e,n){const r=e[10];r.begin&&r.begin();try{ar(t,e,t.template,n)}catch(s){throw function(t,e){const n=t[9],r=n?n.get(kn,null):null;r&&r.handleError(e)}(e,s),s}finally{r.end&&r.end()}}function Or(t){!function(t){for(let e=0;e<t.components.length;e++){const n=t.components[e],r=ue(n),s=r[1];hr(s,r,s.template,n)}}(t[8])}function Dr(t,e,n){ke(0),e(t,n)}const jr=(()=>Promise.resolve(null))();function Hr(t,e,n){let r=n?t.styles:null,s=n?t.classes:null,o=0;if(null!==e)for(let i=0;i<e.length;i++){const t=e[i];\"number\"==typeof t?o=t:1==o?s=K(s,t):2==o&&(r=K(r,t+\": \"+e[++i]+\";\"))}n?t.styles=r:t.stylesWithoutHost=r,n?t.classes=s:t.classesWithoutHost=s}const Nr=new ut(\"INJECTOR\",-1);class Pr{get(t,e=Zt){if(e===Zt){const e=new Error(`NullInjectorError: No provider for ${J(t)}!`);throw e.name=\"NullInjectorError\",e}return e}}const Rr=new ut(\"Set Injector scope.\"),Mr={},Fr={},Vr=[];let Lr=void 0;function Br(){return void 0===Lr&&(Lr=new Pr),Lr}function Zr(t,e=null,n=null,r){return new zr(t,n,e||Br(),r)}class zr{constructor(t,e,n,r=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];e&&gt(e,n=>this.processProvider(n,t,e)),gt([t],t=>this.processInjectorType(t,[],s)),this.records.set(Nr,Ur(void 0,this));const o=this.records.get(Rr);this.scope=null!=o?o.value:null,this.source=r||(\"object\"==typeof t?null:J(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Zt,n=Ft.Default){this.assertNotDestroyed();const r=qt(this);try{if(!(n&Ft.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=(\"function\"==typeof(s=t)||\"object\"==typeof s&&s instanceof ut)&&et(t);e=n&&this.injectableDefInScope(n)?Ur($r(t),Mr):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(n&Ft.Self?Br():this.parent).get(t,e=n&Ft.Optional&&e===Zt?null:e)}catch(o){if(\"NullInjectorError\"===o.name){if((o.ngTempTokenPath=o.ngTempTokenPath||[]).unshift(J(t)),r)throw o;return function(t,e,n,r){const s=t.ngTempTokenPath;throw e[$t]&&s.unshift(e[$t]),t.message=function(t,e,n,r=null){t=t&&\"\\n\"===t.charAt(0)&&\"\\u0275\"==t.charAt(1)?t.substr(2):t;let s=J(e);if(Array.isArray(e))s=e.map(J).join(\" -> \");else if(\"object\"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];t.push(n+\":\"+(\"string\"==typeof r?JSON.stringify(r):J(r)))}s=`{${t.join(\", \")}}`}return`${n}${r?\"(\"+r+\")\":\"\"}[${s}]: ${t.replace(zt,\"\\n  \")}`}(\"\\n\"+t.message,s,n,r),t.ngTokenPath=s,t.ngTempTokenPath=null,t}(o,t,\"R3InjectorError\",this.source)}throw o}finally{qt(r)}var s}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((e,n)=>t.push(J(n))),`R3Injector[${t.join(\", \")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error(\"Injector has already been destroyed.\")}processInjectorType(t,e,n){if(!(t=mt(t)))return!1;let r=rt(t);const s=null==r&&t.ngModule||void 0,o=void 0===s?t:s,i=-1!==n.indexOf(o);if(void 0!==s&&(r=rt(s)),null==r)return!1;if(null!=r.imports&&!i){let t;n.push(o);try{gt(r.imports,r=>{this.processInjectorType(r,e,n)&&(void 0===t&&(t=[]),t.push(r))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:r}=t[e];gt(r,t=>this.processProvider(t,n,r||Vr))}}this.injectorDefTypes.add(o),this.records.set(o,Ur(r.factory,Mr));const l=r.providers;if(null!=l&&!i){const e=t;gt(l,t=>this.processProvider(t,e,l))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,n){let r=qr(t=mt(t))?t:mt(t&&t.provide);const s=function(t,e,n){return Wr(t)?Ur(void 0,t.useValue):Ur(function(t,e,n){let r=void 0;if(qr(t)){const e=mt(t);return Fe(e)||$r(e)}if(Wr(t))r=()=>mt(t.useValue);else if((s=t)&&s.useFactory)r=()=>t.useFactory(...Jt(t.deps||[]));else if(function(t){return!(!t||!t.useExisting)}(t))r=()=>Gt(mt(t.useExisting));else{const e=mt(t&&(t.useClass||t.provide));if(!function(t){return!!t.deps}(t))return Fe(e)||$r(e);r=()=>new e(...Jt(t.deps))}var s;return r}(t),Mr)}(t);if(qr(t)||!0!==t.multi)this.records.get(r);else{let e=this.records.get(r);e||(e=Ur(void 0,Mr,!0),e.factory=()=>Jt(e.multi),this.records.set(r,e)),r=t,e.multi.push(t)}this.records.set(r,s)}hydrate(t,e){var n;return e.value===Mr&&(e.value=Fr,e.value=e.factory()),\"object\"==typeof e.value&&e.value&&null!==(n=e.value)&&\"object\"==typeof n&&\"function\"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&(\"string\"==typeof t.providedIn?\"any\"===t.providedIn||t.providedIn===this.scope:this.injectorDefTypes.has(t.providedIn))}}function $r(t){const e=et(t),n=null!==e?e.factory:Fe(t);if(null!==n)return n;const r=rt(t);if(null!==r)return r.factory;if(t instanceof ut)throw new Error(`Token ${J(t)} is missing a \\u0275prov definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=function(t,e){const n=[];for(let r=0;r<t;r++)n.push(\"?\");return n}(e);throw new Error(`Can't resolve all parameters for ${J(t)}: (${n.join(\", \")}).`)}const n=function(t){const e=t&&(t[st]||t[it]);if(e){const n=function(t){if(t.hasOwnProperty(\"name\"))return t.name;const e=(\"\"+t).match(/^function\\s*([^\\s(]+)/);return null===e?\"\":e[1]}(t);return console.warn(`DEPRECATED: DI is instantiating a token \"${n}\" that inherits its @Injectable decorator but does not provide one itself.\\nThis will become an error in a future version of Angular. Please add @Injectable() to the \"${n}\" class.`),e}return null}(t);return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error(\"unreachable\")}function Ur(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Wr(t){return null!==t&&\"object\"==typeof t&&Ut in t}function qr(t){return\"function\"==typeof t}const Qr=function(t,e,n){return function(t,e=null,n=null,r){const s=Zr(t,e,n,r);return s._resolveInjectorDefTypes(),s}({name:n},e,t,n)};let Gr=(()=>{class t{static create(t,e){return Array.isArray(t)?Qr(t,e,\"\"):Qr(t.providers,t.parent,t.name||\"\")}}return t.THROW_IF_NOT_FOUND=Zt,t.NULL=new Pr,t.\\u0275prov=X({token:t,providedIn:\"any\",factory:()=>Gt(Nr)}),t.__NG_ELEMENT_ID__=-1,t})();function Jr(t,e){Ue(ue(t)[1],me())}let Kr=null;function Yr(){if(!Kr){const t=pt.Symbol;if(t&&t.iterator)Kr=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];\"entries\"!==n&&\"size\"!==n&&Map.prototype[n]===Map.prototype.entries&&(Kr=n)}}}return Kr}function Xr(t){return!!ts(t)&&(Array.isArray(t)||!(t instanceof Map)&&Yr()in t)}function ts(t){return null!==t&&(\"function\"==typeof t||\"object\"==typeof t)}function es(t,e,n,r,s){const o=s?\"class\":\"style\";!function(t,e,n,r,s){for(let o=0;o<n.length;){const i=n[o++],l=n[o++],u=e[i],c=t.data[i];null!==c.setInput?c.setInput(u,s,r,l):u[l]=s}}(t,n,e.inputs[o],o,r)}function ns(t,e,n,r){const s=_e(),o=ye(),i=Yt+t,l=s[11],u=s[i]=Rn(l,e,fe.lFrame.currentNamespace),c=o.firstCreatePass?function(t,e,n,r,s,o,i){const l=e.consts,u=lr(e,t,2,s,ae(l,o));return function(t,e,n,r){let s=!1;if(pe()){const o=function(t,e,n){const r=t.directiveRegistry;let s=null;if(r)for(let o=0;o<r.length;o++){const i=r[o];er(n,i.selectors,!1)&&(s||(s=[]),dn(un(n,e),t,i.type),ne(i)?(gr(t,n),s.unshift(i)):s.push(i))}return s}(t,e,n),i=null===r?null:{\"\":-1};if(null!==o){s=!0,br(n,t.data.length,o.length);for(let t=0;t<o.length;t++){const e=o[t];e.providersResolver&&e.providersResolver(e)}let r=!1,l=!1,u=ur(t,e,o.length,null);for(let s=0;s<o.length;s++){const c=o[s];n.mergedAttrs=tn(n.mergedAttrs,c.hostAttrs),wr(t,n,e,u,c),vr(u,c,i),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128);const a=c.type.prototype;!r&&(a.ngOnChanges||a.ngOnInit||a.ngDoCheck)&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n.index),r=!0),l||!a.ngOnChanges&&!a.ngDoCheck||((t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n.index),l=!0),u++}!function(t,e){const n=e.directiveEnd,r=t.data,s=e.attrs,o=[];let i=null,l=null;for(let u=e.directiveStart;u<n;u++){const t=r[u],n=t.inputs,c=null===s||Jn(e)?null:xr(n,s);o.push(c),i=_r(n,u,i),l=_r(t.outputs,u,l)}null!==i&&(i.hasOwnProperty(\"class\")&&(e.flags|=16),i.hasOwnProperty(\"style\")&&(e.flags|=32)),e.initialInputs=o,e.inputs=i,e.outputs=l}(t,n)}i&&function(t,e,n){if(e){const r=t.localNames=[];for(let t=0;t<e.length;t+=2){const s=n[e[t+1]];if(null==s)throw new Ve(\"301\",`Export of name '${e[t+1]}' not found!`);r.push(e[t],s)}}}(n,r,i)}n.mergedAttrs=tn(n.mergedAttrs,n.attrs)}(e,n,u,ae(l,i)),null!==u.attrs&&Hr(u,u.attrs,!1),null!==u.mergedAttrs&&Hr(u,u.mergedAttrs,!0),null!==e.queries&&e.queries.elementStart(e,u),u}(i,o,s,0,e,n,r):o.data[i];ve(c,!0);const a=c.mergedAttrs;null!==a&&Xe(l,u,a);const h=c.classes;null!==h&&Wn(l,u,h);const d=c.styles;null!==d&&Un(l,u,d),64!=(64&c.flags)&&Bn(o,s,u,c),0===fe.lFrame.elementDepthCount&&Tn(u,s),fe.lFrame.elementDepthCount++,function(t){return 1==(1&t.flags)}(c)&&(function(t,e,n){pe()&&(function(t,e,n,r){const s=n.directiveStart,o=n.directiveEnd;t.firstCreatePass||un(n,e),Tn(r,e);const i=n.initialInputs;for(let l=s;l<o;l++){const r=t.data[l],o=ne(r);o&&Cr(e,n,r);const u=gn(e,t,l,n);Tn(u,e),null!==i&&Er(0,l-s,u,r,0,i),o&&(le(n.index,e)[8]=u)}}(t,e,n,ie(n,e)),128==(128&n.flags)&&function(t,e,n){const r=n.directiveStart,s=n.directiveEnd,o=n.index,i=fe.lFrame.currentDirectiveIndex;try{Ne(o);for(let n=r;n<s;n++){const r=t.data[n],s=e[n];xe(n),null===r.hostBindings&&0===r.hostVars&&null===r.hostAttrs||mr(r,s)}}finally{Ne(-1),xe(i)}}(t,e,n))}(o,s,c),function(t,e,n){if(ee(e)){const r=e.directiveEnd;for(let s=e.directiveStart;s<r;s++){const e=t.data[s];e.contentQueries&&e.contentQueries(1,n[s],s)}}}(o,c,s)),null!==r&&function(t,e,n=ie){const r=e.localNames;if(null!==r){let s=e.index+1;for(let o=0;o<r.length;o+=2){const i=r[o+1],l=-1===i?n(e,t):t[i];t[s++]=l}}}(s,c)}function rs(t){return!!t&&\"function\"==typeof t.then}const ss=void 0;var os=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],ss],[[\"AM\",\"PM\"],ss,ss],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],ss,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],ss,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",ss,\"{1} 'at' {0}\",ss],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xd7\",\"\\u2030\",\"\\u221e\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xa4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},\"ltr\",function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\\.?/,\"\").length;return 1===e&&0===n?1:5}];let is={};function ls(t){return t in is||(is[t]=pt.ng&&pt.ng.common&&pt.ng.common.locales&&pt.ng.common.locales[t]),is[t]}var us=function(t){return t[t.LocaleId=0]=\"LocaleId\",t[t.DayPeriodsFormat=1]=\"DayPeriodsFormat\",t[t.DayPeriodsStandalone=2]=\"DayPeriodsStandalone\",t[t.DaysFormat=3]=\"DaysFormat\",t[t.DaysStandalone=4]=\"DaysStandalone\",t[t.MonthsFormat=5]=\"MonthsFormat\",t[t.MonthsStandalone=6]=\"MonthsStandalone\",t[t.Eras=7]=\"Eras\",t[t.FirstDayOfWeek=8]=\"FirstDayOfWeek\",t[t.WeekendRange=9]=\"WeekendRange\",t[t.DateFormat=10]=\"DateFormat\",t[t.TimeFormat=11]=\"TimeFormat\",t[t.DateTimeFormat=12]=\"DateTimeFormat\",t[t.NumberSymbols=13]=\"NumberSymbols\",t[t.NumberFormats=14]=\"NumberFormats\",t[t.CurrencyCode=15]=\"CurrencyCode\",t[t.CurrencySymbol=16]=\"CurrencySymbol\",t[t.CurrencyName=17]=\"CurrencyName\",t[t.Currencies=18]=\"Currencies\",t[t.Directionality=19]=\"Directionality\",t[t.PluralCase=20]=\"PluralCase\",t[t.ExtraData=21]=\"ExtraData\",t}({});const cs=\"en-US\";let as=cs;function hs(t){var e,n;n=\"Expected localeId to be defined\",null==(e=t)&&function(t,e,n,r){throw new Error(\"ASSERTION ERROR: \"+t+` [Expected=> null != ${e} <=Actual]`)}(n,e),\"string\"==typeof t&&(as=t.toLowerCase().replace(/_/g,\"-\"))}class ds{}class fs{resolveComponentFactory(t){throw function(t){const e=Error(`No component factory found for ${J(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(t)}}let ps=(()=>{class t{}return t.NULL=new fs,t})();function _s(...t){}function ys(t,e){return new gs(ie(t,e))}const ms=function(){return ys(me(),_e())};let gs=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=ms,t})();class vs{}let bs=(()=>{class t{}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>null}),t})();class ws{constructor(t){this.full=t,this.major=t.split(\".\")[0],this.minor=t.split(\".\")[1],this.patch=t.split(\".\").slice(2).join(\".\")}}const Cs=new ws(\"11.0.2\");class Es{constructor(){}supports(t){return Xr(t)}create(t){return new ks(t)}}const xs=(t,e)=>e;class ks{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||xs}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,r=0,s=null;for(;e||n;){const o=!n||e&&e.currentIndex<As(n,r,s)?e:n,i=As(o,r,s),l=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(e=e._next,null==o.previousIndex)r++;else{s||(s=[]);const t=i-r,e=l-r;if(t!=e){for(let n=0;n<t;n++){const r=n<s.length?s[n]:s[n]=0,o=r+n;e<=o&&o<t&&(s[n]=r+1)}s[o.previousIndex]=e-t}}i!==l&&t(o,i,l)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!Xr(t))throw new Error(`Error trying to diff '${J(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,r,s=this._itHead,o=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],r=this._trackByFn(e,n),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,n,r,e)),Object.is(s.item,n)||this._addIdentityChange(s,n)):(s=this._mismatch(s,n,r,e),o=!0),s=s._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[Yr()]();let r;for(;!(r=n.next()).done;)e(r.value)}}(t,t=>{r=this._trackByFn(e,t),null!==s&&Object.is(s.trackById,r)?(o&&(s=this._verifyReinsertion(s,t,r,e)),Object.is(s.item,t)||this._addIdentityChange(s,t)):(s=this._mismatch(s,t,r,e),o=!0),s=s._next,e++}),this.length=e;return this._truncate(s),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):t=this._addAfter(new Ts(e,n),s,r),t}_verifyReinsertion(t,e,n,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Is),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Is),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class Ts{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Ss{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class Is{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new Ss,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function As(t,e,n){const r=t.previousIndex;if(null===r)return r;let s=0;return n&&r<n.length&&(s=n[r]),r+e+s}class Os{constructor(){}supports(t){return t instanceof Map||ts(t)}create(){return new Ds}}class Ds{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||ts(t)))throw new Error(`Error trying to diff '${J(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const n=this._records.get(t);this._maybeAddToChanges(n,e);const r=n._prev,s=n._next;return r&&(r._next=s),s&&(s._prev=r),n._next=null,n._prev=null,n}const n=new js(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(n=>e(t[n],n))}}class js{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}let Hs=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend IterableDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Es])}),t})(),Ns=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error(\"Cannot extend KeyValueDiffers without a parent injector\");return t.create(e,n)},deps:[[t,new G,new q]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.\\u0275prov=X({token:t,providedIn:\"root\",factory:()=>new t([new Os])}),t})();function Ps(t,e,n,r,s=!1){for(;null!==n;){const o=e[n.index];if(null!==o&&r.push(oe(o)),te(o))for(let t=10;t<o.length;t++){const e=o[t],n=e[1].firstChild;null!==n&&Ps(e[1],e,n,r)}const i=n.type;if(8&i)Ps(t,e,n.child,r);else if(32&i){const t=On(n,e);let s;for(;s=t();)r.push(s)}else if(16&i){const t=e[16],s=t[6].projection[n.projection];if(Array.isArray(s))r.push(...s);else{const e=Dn(t);Ps(e[1],e,s,r,!0)}}n=s?n.projectionNext:n.next}return r}class Rs extends class{constructor(t,e){this._lView=t,this._cdRefInjectingView=e,this._appRef=null,this._viewContainerRef=null}get rootNodes(){const t=this._lView,e=t[1];return Ps(e,t,e.firstChild,[])}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}!function(t,e){if(!(256&e[2])){const n=e[11];re(n)&&n.destroyNode&&zn(t,e,n,3,null,null),function(t){let e=t[13];if(!e)return Mn(t[1],t);for(;e;){let n=null;if(Xt(e))n=e[13];else{const t=e[10];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)Xt(e)&&Mn(e[1],e),e=e[3];null===e&&(e=t),Xt(e)&&Mn(e[1],e),n=e&&e[4]}e=n}}(e)}}(this._lView[1],this._lView)}onDestroy(t){!function(t,e,n,r){const s=(o=e)[7]||(o[7]=[]);var o;s.push(null),t.firstCreatePass&&function(t){return t.cleanup||(t.cleanup=[])}(t).push(r,s.length-1)}(this._lView[1],this._lView,0,t)}markForCheck(){!function(t){for(;t;){t[2]|=64;const e=Dn(t);if(0!=(512&t[2])&&!e)return t;t=e}}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){Ar(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(t,e,n){Ce(!0);try{Ar(t,e,n)}finally{Ce(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error(\"This view is already attached directly to the ApplicationRef!\");this._viewContainerRef=t}detachFromAppRef(){var t;this._appRef=null,zn(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._viewContainerRef)throw new Error(\"This view is already attached to a ViewContainer!\");this._appRef=t}}{constructor(t){super(t),this._view=t}detectChanges(){Or(this._view)}checkNoChanges(){!function(t){Ce(!0);try{Or(t)}finally{Ce(!1)}}(this._view)}get context(){return null}}const Ms=[new Os],Fs=new Hs([new Es]),Vs=new Ns(Ms);class Ls{}const Bs={};class Zs extends ps{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=Pt(t);return new Us(e,this.ngModule)}}function zs(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const $s=new ut(\"SCHEDULER_TOKEN\",{providedIn:\"root\",factory:()=>Sn});class Us extends ds{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors.map(rr).join(\",\"),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return zs(this.componentDef.inputs)}get outputs(){return zs(this.componentDef.outputs)}create(t,e,n,r){const s=(r=r||this.ngModule)?function(t,e){return{get:(n,r,s)=>{const o=t.get(n,Bs,s);return o!==Bs||r===Bs?o:e.get(n,r,s)}}}(t,r.injector):t,o=s.get(vs,se),i=s.get(bs,null),l=o.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||\"div\",c=n?function(t,e,n){if(re(t))return t.selectRootElement(e,n===vt.ShadowDom);let r=\"string\"==typeof e?t.querySelector(e):e;return r.textContent=\"\",r}(l,n,this.componentDef.encapsulation):Rn(o.createRenderer(null,this.componentDef),u,function(t){const e=t.toLowerCase();return\"svg\"===e?\"http://www.w3.org/2000/svg\":\"math\"===e?\"http://www.w3.org/1998/MathML/\":null}(u)),a=this.componentDef.onPush?576:528,h={components:[],scheduler:Sn,clean:jr,playerHandler:null,flags:0},d=pr(0,null,null,1,0,null,null,null,null,null),f=ir(null,d,h,a,null,null,o,l,i,s);let p,_;Ie(f);try{const t=function(t,e,n,r,s,o){const i=n[1];n[20]=t;const l=lr(i,20,2,\"#host\",null),u=l.mergedAttrs=e.hostAttrs;null!==u&&(Hr(l,u,!0),null!==t&&(Xe(s,t,u),null!==l.classes&&Wn(s,t,l.classes),null!==l.styles&&Un(s,t,l.styles)));const c=r.createRenderer(t,e),a=ir(n,fr(e),null,e.onPush?64:16,n[20],l,r,c,null,null);return i.firstCreatePass&&(dn(un(l,n),i,e.type),gr(i,l),br(l,n.length,1)),Ir(n,a),n[20]=a}(c,this.componentDef,f,o,l);if(c)if(n)Xe(l,c,[\"ng-version\",Cs.full]);else{const{attrs:t,classes:e}=function(t){const e=[],n=[];let r=1,s=2;for(;r<t.length;){let o=t[r];if(\"string\"==typeof o)2===s?\"\"!==o&&e.push(o,t[++r]):8===s&&n.push(o);else{if(!Xn(s))break;s=o}r++}return{attrs:e,classes:n}}(this.componentDef.selectors[0]);t&&Xe(l,c,t),e&&e.length>0&&Wn(l,c,e.join(\" \"))}if(_=d.data[20],void 0!==e){const t=_.projection=[];for(let n=0;n<this.ngContentSelectors.length;n++){const r=e[n];t.push(null!=r?Array.from(r):null)}}p=function(t,e,n,r,s){const o=n[1],i=function(t,e,n){const r=me();t.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),wr(t,r,e,ur(t,e,1,null),n));const s=gn(e,t,r.directiveStart,r);Tn(s,e);const o=ie(r,e);return o&&Tn(o,e),s}(o,n,e);if(r.components.push(i),t[8]=i,s&&s.forEach(t=>t(i,e)),e.contentQueries){const t=me();e.contentQueries(1,i,t.directiveStart)}const l=me();return!o.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(Ne(l.index),yr(n[1],l,0,l.directiveStart,l.directiveEnd,e),mr(e,i)),i}(t,this.componentDef,f,h,[Jr]),cr(d,f,null)}finally{He()}return new Ws(this.componentType,p,ys(_,f),f,_)}}class Ws extends class{}{constructor(t,e,n,r,s){super(),this.location=n,this._rootLView=r,this._tNode=s,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new Rs(r),this.componentType=t}get injector(){return new wn(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const qs=new Map;class Qs extends Ls{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Zs(this);const n=Rt(t),r=t[Tt]||null;r&&hs(r),this._bootstrapComponents=In(n.bootstrap),this._r3Injector=Zr(t,e,[{provide:Ls,useValue:this},{provide:ps,useValue:this.componentFactoryResolver}],J(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=Gr.THROW_IF_NOT_FOUND,n=Ft.Default){return t===Gr||t===Ls||t===Nr?this:this._r3Injector.get(t,e,n)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Gs extends class{}{constructor(t){super(),this.moduleType=t,null!==Rt(t)&&function(t){const e=new Set;!function t(n){const r=Rt(n,!0),s=r.id;null!==s&&(function(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${J(e)} vs ${J(e.name)}`)}(s,qs.get(s),n),qs.set(s,n));const o=In(r.imports);for(const i of o)e.has(i)||(e.add(i),t(i))}(t)}(t)}create(t){return new Qs(this.moduleType,t)}}const Js=class extends E{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let r,s=t=>null,o=()=>null;t&&\"object\"==typeof t?(r=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(s=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(o=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(r=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(s=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(o=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const i=super.subscribe(r,s,o);return t instanceof h&&t.add(i),i}},Ks=new ut(\"Application Initializer\");let Ys=(()=>{class t{constructor(t){this.appInits=t,this.resolve=_s,this.reject=_s,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();rs(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Ks,8))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const Xs=new ut(\"AppId\"),to={provide:Xs,useFactory:function(){return`${eo()}${eo()}${eo()}`},deps:[]};function eo(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const no=new ut(\"Platform Initializer\"),ro=new ut(\"Platform ID\"),so=new ut(\"appBootstrapListener\");let oo=(()=>{class t{log(t){console.log(t)}warn(t){console.warn(t)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const io=new ut(\"LocaleId\"),lo=new ut(\"DefaultCurrencyCode\");class uo{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const co=function(t){return new Gs(t)},ao=co,ho=function(t){return Promise.resolve(co(t))},fo=function(t){const e=co(t),n=In(Rt(t).declarations).reduce((t,e)=>{const n=Pt(e);return n&&t.push(new Us(n)),t},[]);return new uo(e,n)},po=fo,_o=function(t){return Promise.resolve(fo(t))};let yo=(()=>{class t{constructor(){this.compileModuleSync=ao,this.compileModuleAsync=ho,this.compileModuleAndAllComponentsSync=po,this.compileModuleAndAllComponentsAsync=_o}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const mo=(()=>Promise.resolve(0))();function go(t){\"undefined\"==typeof Zone?mo.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask(\"scheduleMicrotask\",t)}class vo{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Js(!1),this.onMicrotaskEmpty=new Js(!1),this.onStable=new Js(!1),this.onError=new Js(!1),\"undefined\"==typeof Zone)throw new Error(\"In this configuration Angular requires Zone.js\");Zone.assertZonePatched();const n=this;n._nesting=0,n._outer=n._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(n._inner=n._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(n._inner=n._inner.fork(Zone.longStackTraceZoneSpec)),n.shouldCoalesceEventChangeDetection=e,n.lastRequestAnimationFrameId=-1,n.nativeRequestAnimationFrame=function(){let t=pt.requestAnimationFrame,e=pt.cancelAnimationFrame;if(\"undefined\"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__(\"OriginalDelegate\")];n&&(t=n);const r=e[Zone.__symbol__(\"OriginalDelegate\")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function(t){const e=!!t.shouldCoalesceEventChangeDetection&&t.nativeRequestAnimationFrame&&(()=>{!function(t){-1===t.lastRequestAnimationFrameId&&(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(pt,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask(\"fakeTopEventTask\",()=>{t.lastRequestAnimationFrameId=-1,Eo(t),Co(t)},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Eo(t))}(t)});t._inner=t._inner.fork({name:\"angular\",properties:{isAngularZone:!0,maybeDelayChangeDetection:e},onInvokeTask:(n,r,s,o,i,l)=>{try{return xo(t),n.invokeTask(s,o,i,l)}finally{e&&\"eventTask\"===o.type&&e(),ko(t)}},onInvoke:(e,n,r,s,o,i,l)=>{try{return xo(t),e.invoke(r,s,o,i,l)}finally{ko(t)}},onHasTask:(e,n,r,s)=>{e.hasTask(r,s),n===r&&(\"microTask\"==s.change?(t._hasPendingMicrotasks=s.microTask,Eo(t),Co(t)):\"macroTask\"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,n,r,s)=>(e.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(n)}static isInAngularZone(){return!0===Zone.current.get(\"isAngularZone\")}static assertInAngularZone(){if(!vo.isInAngularZone())throw new Error(\"Expected to be in Angular Zone, but it is not!\")}static assertNotInAngularZone(){if(vo.isInAngularZone())throw new Error(\"Expected to not be in Angular Zone, but it is!\")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,r){const s=this._inner,o=s.scheduleEventTask(\"NgZoneEvent: \"+r,t,wo,bo,bo);try{return s.runTask(o,e,n)}finally{s.cancelTask(o)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function bo(){}const wo={};function Co(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Eo(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||t.shouldCoalesceEventChangeDetection&&-1!==t.lastRequestAnimationFrameId)}function xo(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ko(t){t._nesting--,Co(t)}class To{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Js,this.onMicrotaskEmpty=new Js,this.onStable=new Js,this.onError=new Js}run(t,e,n){return t.apply(e,n)}runGuarded(t,e,n){return t.apply(e,n)}runOutsideAngular(t){return t()}runTask(t,e,n,r){return t.apply(e,n)}}let So=(()=>{class t{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=\"undefined\"==typeof Zone?null:Zone.current.get(\"TaskTrackingZone\")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{vo.assertNotInAngularZone(),go(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error(\"pending async requests below zero\");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())go(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let r=-1;e&&e>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==r),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is \"zone.js/dist/task-tracking.js\" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Io=(()=>{class t{constructor(){this._applications=new Map,Do.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return Do.findTestabilityInTree(this,t,e)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class Ao{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}let Oo,Do=new Ao;const jo=new ut(\"AllowMultipleToken\");function Ho(t,e,n=[]){const r=\"Platform: \"+e,s=new ut(r);return(e=[])=>{let o=No();if(!o||o.injector.get(jo,!1))if(t)t(n.concat(e).concat({provide:s,useValue:!0}));else{const t=n.concat(e).concat({provide:s,useValue:!0},{provide:Rr,useValue:\"platform\"});!function(t){if(Oo&&!Oo.destroyed&&!Oo.injector.get(jo,!1))throw new Error(\"There can be only one platform. Destroy the previous one to create a new one.\");Oo=t.get(Po);const e=t.get(no,null);e&&e.forEach(t=>t())}(Gr.create({providers:t,name:r}))}return function(t){const e=No();if(!e)throw new Error(\"No platform exists!\");if(!e.injector.get(t,null))throw new Error(\"A platform with a different configuration has been created. Please destroy it first.\");return e}(s)}}function No(){return Oo&&!Oo.destroyed?Oo:null}let Po=(()=>{class t{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t,e){let n;return n=\"noop\"===t?new To:(\"zone.js\"===t?void 0:t)||new vo({enableLongStackTrace:Me(),shouldCoalesceEventChangeDetection:e}),n}(e?e.ngZone:void 0,e&&e.ngZoneEventCoalescing||!1),r=[{provide:vo,useValue:n}];return n.run(()=>{const e=Gr.create({providers:r,parent:this.injector,name:t.moduleType.name}),s=t.create(e),o=s.injector.get(kn,null);if(!o)throw new Error(\"No ErrorHandler. Is platform module (BrowserModule) included?\");return s.onDestroy(()=>Fo(this._modules,s)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{o.handleError(t)}})),function(t,e,n){try{const r=n();return rs(r)?r.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(o,n,()=>{const t=s.injector.get(Ys);return t.runInitializers(),t.donePromise.then(()=>(hs(s.injector.get(io,cs)||cs),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,e=[]){const n=Ro({},e);return function(t,e,n){const r=new Gs(n);return Promise.resolve(r)}(0,0,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(Mo);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${J(t.instance.constructor)} was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. Please define one of these.`);t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error(\"The platform has already been destroyed!\");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\\u0275fac=function(e){return new(e||t)(Gt(Gr))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Ro(t,e){return Array.isArray(e)?e.reduce(Ro,t):Object.assign(Object.assign({},t),e)}let Mo=(()=>{class t{constructor(t,e,n,r,s,o){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Me(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new g(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),l=new g(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{vo.assertNotInAngularZone(),go(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{vo.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=function(...t){let e=Number.POSITIVE_INFINITY,n=null,r=t[t.length-1];var s;return(s=r)&&\"function\"==typeof s.schedule?(n=t.pop(),t.length>1&&\"number\"==typeof t[t.length-1]&&(e=t.pop())):\"number\"==typeof r&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof g?t[0]:function(t=Number.POSITIVE_INFINITY){return H(m,t)}(e)(function(t,e){return e?function(t,e){return new g(n=>{const r=new h;let s=0;return r.add(e.schedule(function(){s!==t.length?(n.next(t[s++]),n.closed||r.add(this.schedule())):n.complete()})),r})}(t,e):new g(S(t))}(t,n))}(i,l.pipe(t=>{return R()((e=Z,function(t){let n;n=\"function\"==typeof e?e:function(){return e};const r=Object.create(t,L);return r.source=t,r.subjectFactory=n,r})(t));var e}))}bootstrap(t,e){if(!this._initStatus.done)throw new Error(\"Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.\");let n;n=t instanceof ds?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const r=n.isBoundToModule?void 0:this._injector.get(Ls),s=n.create(Gr.NULL,[],e||n.selector,r);s.onDestroy(()=>{this._unloadComponent(s)});const o=s.injector.get(So,null);return o&&s.injector.get(Io).registerApplication(s.location.nativeElement,o),this._loadComponent(s),Me()&&this._console.log(\"Angular is running in development mode. Call enableProdMode() to enable production mode.\"),s}tick(){if(this._runningTick)throw new Error(\"ApplicationRef.tick is called recursively\");try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Fo(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(so,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),Fo(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t.\\u0275fac=function(e){return new(e||t)(Gt(vo),Gt(oo),Gt(Gr),Gt(kn),Gt(ps),Gt(Ys))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();function Fo(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const Vo=Ho(null,\"core\",[{provide:ro,useValue:\"unknown\"},{provide:Po,deps:[Gr]},{provide:Io,deps:[]},{provide:oo,deps:[]}]),Lo=[{provide:Mo,useClass:Mo,deps:[vo,oo,Gr,kn,ps,Ys]},{provide:$s,deps:[vo],useFactory:function(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:Ys,useClass:Ys,deps:[[new q,Ks]]},{provide:yo,useClass:yo,deps:[]},to,{provide:Hs,useFactory:function(){return Fs},deps:[]},{provide:Ns,useFactory:function(){return Vs},deps:[]},{provide:io,useFactory:function(t){return hs(t=t||\"undefined\"!=typeof $localize&&$localize.locale||cs),t},deps:[[new W(io),new q,new G]]},{provide:lo,useValue:\"USD\"}];let Bo=(()=>{class t{constructor(t){}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(Mo))},providers:Lo}),t})(),Zo=null;function zo(){return Zo}const $o=new ut(\"DocumentToken\");var Uo=function(t){return t[t.Zero=0]=\"Zero\",t[t.One=1]=\"One\",t[t.Two=2]=\"Two\",t[t.Few=3]=\"Few\",t[t.Many=4]=\"Many\",t[t.Other=5]=\"Other\",t}({});class Wo{}let qo=(()=>{class t extends Wo{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(function(t){return function(t){const e=function(t){return t.toLowerCase().replace(/_/g,\"-\")}(t);let n=ls(e);if(n)return n;const r=e.split(\"-\")[0];if(n=ls(r),n)return n;if(\"en\"===r)return os;throw new Error(`Missing locale data for the locale \"${t}\".`)}(t)[us.PluralCase]}(e||this.locale)(t)){case Uo.Zero:return\"zero\";case Uo.One:return\"one\";case Uo.Two:return\"two\";case Uo.Few:return\"few\";case Uo.Many:return\"many\";default:return\"other\"}}}return t.\\u0275fac=function(e){return new(e||t)(Gt(io))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),Qo=(()=>{class t{}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[{provide:Wo,useClass:qo}]}),t})();class Go extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var t;t=new Go,Zo||(Zo=t)}getProperty(t,e){return t[e]}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}getValue(t){return t.value}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument(\"fakeTitle\")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return\"window\"===e?window:\"document\"===e?t:\"body\"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=Ko||(Ko=document.querySelector(\"base\"),Ko)?Ko.getAttribute(\"href\"):null;return null==e?null:(n=e,Jo||(Jo=document.createElement(\"a\")),Jo.setAttribute(\"href\",n),\"/\"===Jo.pathname.charAt(0)?Jo.pathname:\"/\"+Jo.pathname);var n}resetBaseElement(){Ko=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return function(t,e){e=encodeURIComponent(e);for(const n of t.split(\";\")){const t=n.indexOf(\"=\"),[r,s]=-1==t?[n,\"\"]:[n.slice(0,t),n.slice(t+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}(document.cookie,t)}}let Jo,Ko=null;const Yo=new ut(\"TRANSITION_ID\"),Xo=[{provide:Ks,useFactory:function(t,e,n){return()=>{n.get(Ys).donePromise.then(()=>{const n=zo();Array.prototype.slice.apply(e.querySelectorAll(\"style[ng-transition]\")).filter(e=>e.getAttribute(\"ng-transition\")===t).forEach(t=>n.remove(t))})}},deps:[Yo,$o,Gr],multi:!0}];class ti{static init(){var t;t=new ti,Do=t}addToWindow(t){pt.getAngularTestability=(e,n=!0)=>{const r=t.findTestabilityInTree(e,n);if(null==r)throw new Error(\"Could not find testability for element.\");return r},pt.getAllAngularTestabilities=()=>t.getAllTestabilities(),pt.getAllAngularRootElements=()=>t.getAllRootElements(),pt.frameworkStabilizers||(pt.frameworkStabilizers=[]),pt.frameworkStabilizers.push(t=>{const e=pt.getAllAngularTestabilities();let n=e.length,r=!1;const s=function(e){r=r||e,n--,0==n&&t(r)};e.forEach(function(t){t.whenStable(s)})})}findTestabilityInTree(t,e,n){if(null==e)return null;const r=t.getTestability(e);return null!=r?r:n?zo().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}const ei=new ut(\"EventManagerPlugins\");let ni=(()=>{class t{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let r=0;r<n.length;r++){const e=n[r];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(\"No event manager plugin found for event \"+t)}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ei),Gt(vo))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class ri{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const r=zo().getGlobalEventTarget(this._doc,t);if(!r)throw new Error(`Unsupported event target ${r} for event ${e}`);return this.addEventListener(r,e,n)}}let si=(()=>{class t{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})(),oi=(()=>{class t extends si{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement(\"style\");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>zo().remove(t))}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const ii={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},li=/%COMP%/g;function ui(t,e,n){for(let r=0;r<e.length;r++){let s=e[r];Array.isArray(s)?ui(t,s,n):(s=s.replace(li,t),n.push(s))}return n}function ci(t){return e=>{if(\"__ngUnwrap__\"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let ai=(()=>{class t{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new hi(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case vt.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new di(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case 1:case vt.ShadowDom:return new fi(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=ui(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\\u0275fac=function(e){return new(e||t)(Gt(ni),Gt(oi),Gt(Xs))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();class hi{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(ii[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n=\"string\"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector \"${t}\" did not match any elements`);return e||(n.textContent=\"\"),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,r){if(r){e=r+\":\"+e;const s=ii[r];s?t.setAttributeNS(s,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const r=ii[n];r?t.removeAttributeNS(r,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,r){r&(An.DashCase|An.Important)?t.style.setProperty(e,n,r&An.Important?\"important\":\"\"):t.style[e]=n}removeStyle(t,e,n){n&An.DashCase?t.style.removeProperty(e):t.style[e]=\"\"}setProperty(t,e,n){t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return\"string\"==typeof t?this.eventManager.addGlobalEventListener(t,e,ci(n)):this.eventManager.addEventListener(t,e,ci(n))}}class di extends hi{constructor(t,e,n,r){super(t),this.component=n;const s=ui(r+\"-\"+n.id,n.styles,[]);e.addStyles(s),this.contentAttr=\"_ngcontent-%COMP%\".replace(li,r+\"-\"+n.id),this.hostAttr=\"_nghost-%COMP%\".replace(li,r+\"-\"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,\"\")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,\"\"),n}}class fi extends hi{constructor(t,e,n,r){super(t),this.sharedStylesHost=e,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:\"open\"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=ui(r.id,r.styles,[]);for(let o=0;o<s.length;o++){const t=document.createElement(\"style\");t.textContent=s[o],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}let pi=(()=>{class t extends ri{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,n){return t.addEventListener(e,n,!1),()=>this.removeEventListener(t,e,n)}removeEventListener(t,e,n){return t.removeEventListener(e,n)}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const _i=[\"alt\",\"control\",\"meta\",\"shift\"],yi={\"\\b\":\"Backspace\",\"\\t\":\"Tab\",\"\\x7f\":\"Delete\",\"\\x1b\":\"Escape\",Del:\"Delete\",Esc:\"Escape\",Left:\"ArrowLeft\",Right:\"ArrowRight\",Up:\"ArrowUp\",Down:\"ArrowDown\",Menu:\"ContextMenu\",Scroll:\"ScrollLock\",Win:\"OS\"},mi={A:\"1\",B:\"2\",C:\"3\",D:\"4\",E:\"5\",F:\"6\",G:\"7\",H:\"8\",I:\"9\",J:\"*\",K:\"+\",M:\"-\",N:\".\",O:\"/\",\"`\":\"0\",\"\\x90\":\"NumLock\"},gi={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let vi=(()=>{class t extends ri{constructor(t){super(t)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,n,r){const s=t.parseEventName(n),o=t.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>zo().onAndCancel(e,s.domEventName,o))}static parseEventName(e){const n=e.toLowerCase().split(\".\"),r=n.shift();if(0===n.length||\"keydown\"!==r&&\"keyup\"!==r)return null;const s=t._normalizeKey(n.pop());let o=\"\";if(_i.forEach(t=>{const e=n.indexOf(t);e>-1&&(n.splice(e,1),o+=t+\".\")}),o+=s,0!=n.length||0===s.length)return null;const i={};return i.domEventName=r,i.fullKey=o,i}static getEventFullKey(t){let e=\"\",n=function(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return\"Unidentified\";e.startsWith(\"U+\")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&mi.hasOwnProperty(e)&&(e=mi[e]))}return yi[e]||e}(t);return n=n.toLowerCase(),\" \"===n?n=\"space\":\".\"===n&&(n=\"dot\"),_i.forEach(r=>{r!=n&&(0,gi[r])(t)&&(e+=r+\".\")}),e+=n,e}static eventCallback(e,n,r){return s=>{t.getEventFullKey(s)===e&&r.runGuarded(()=>n(s))}}static _normalizeKey(t){switch(t){case\"esc\":return\"escape\";default:return t}}}return t.\\u0275fac=function(e){return new(e||t)(Gt($o))},t.\\u0275prov=X({token:t,factory:t.\\u0275fac}),t})();const bi=Ho(Vo,\"browser\",[{provide:ro,useValue:\"browser\"},{provide:no,useValue:function(){Go.makeCurrent(),ti.init()},multi:!0},{provide:$o,useFactory:function(){return function(t){Kt=t}(document),document},deps:[]}]),wi=[[],{provide:Rr,useValue:\"root\"},{provide:kn,useFactory:function(){return new kn},deps:[]},{provide:ei,useClass:pi,multi:!0,deps:[$o,vo,ro]},{provide:ei,useClass:vi,multi:!0,deps:[$o]},[],{provide:ai,useClass:ai,deps:[ni,oi,Xs]},{provide:vs,useExisting:ai},{provide:si,useExisting:oi},{provide:oi,useClass:oi,deps:[$o]},{provide:So,useClass:So,deps:[vo]},{provide:ni,useClass:ni,deps:[ei,vo]},[]];let Ci=(()=>{class t{constructor(t){if(t)throw new Error(\"BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.\")}static withServerTransition(e){return{ngModule:t,providers:[{provide:Xs,useValue:e.appId},{provide:Yo,useExisting:Xs},Xo]}}}return t.\\u0275mod=Ht({type:t}),t.\\u0275inj=tt({factory:function(e){return new(e||t)(Gt(t,12))},providers:wi,imports:[Qo,Bo]}),t})();\"undefined\"!=typeof window&&window;let Ei=(()=>{class t{constructor(){this.title=\"example\"}}return t.\\u0275fac=function(e){return new(e||t)},t.\\u0275cmp=(e={type:t,selectors:[[\"app-root\"]],decls:2,vars:0,consts:[[1,\"bg-primary\",\"text-center\",\"text-white\",\"p-2\"]],template:function(t,e){1&t&&(ns(0,\"div\",0),function(t,e=\"\"){const n=_e(),r=ye(),s=t+Yt,o=r.firstCreatePass?lr(r,s,1,e,null):r.data[s],i=n[s]=function(t,e){return re(t)?t.createText(e):t.createTextNode(e)}(n[11],e);Bn(r,n,i,o),ve(o,!1)}(1,\" Hello, World\\n\"),function(){let t=me();be()?fe.lFrame.isParent=!1:(t=t.parent,ve(t,!1));const e=t;fe.lFrame.elementDepthCount--;const n=ye();n.firstCreatePass&&(Ue(n,t),ee(t)&&n.queries.elementEnd(t)),null!=e.classesWithoutHost&&function(t){return 0!=(16&t.flags)}(e)&&es(n,e,_e(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function(t){return 0!=(32&t.flags)}(e)&&es(n,e,_e(),e.stylesWithoutHost,!1)}())},styles:[\"\"]},z(()=>{const t={},n={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===ct.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||wt,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||vt.Emulated,id:\"c\",styles:e.styles||wt,_:null,setInput:null,schemas:e.schemas||null,tView:null},r=e.directives,s=e.features,o=e.pipes;return n.id+=At++,n.inputs=Nt(e.inputs,t),n.outputs=Nt(e.outputs),s&&s.forEach(t=>t(n)),n.directiveDefs=r?()=>(\"function\"==typeof r?r():r).map(Ot):null,n.pipeDefs=o?()=>(\"function\"==typeof o?o():o).map(Dt):null,n})),t;var e})(),xi=(()=>{class t{}return t.\\u0275mod=Ht({type:t,bootstrap:[Ei]}),t.\\u0275inj=tt({factory:function(e){return new(e||t)},providers:[],imports:[[Ci]]}),t})();(function(){if(Re)throw new Error(\"Cannot enable prod mode after platform setup.\");Pe=!1})(),bi().bootstrapModule(xi).catch(t=>console.error(t))},zn8P:function(t,e){function n(t){return Promise.resolve().then(function(){var e=new Error(\"Cannot find module '\"+t+\"'\");throw e.code=\"MODULE_NOT_FOUND\",e})}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=\"zn8P\"}},[[0,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/dist/example/polyfills.bf99d438b005d57b2b31.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{1:function(e,t,n){e.exports=n(\"hN/g\")},\"hN/g\":function(e,t,n){\"use strict\";n.r(t),n(\"pDpN\")},pDpN:function(e,t,n){var o,r;void 0===(r=\"function\"==typeof(o=function(){\"use strict\";!function(e){const t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function o(e,n){t&&t.measure&&t.measure(e,n)}n(\"Zone\");const r=e.__Zone_symbol_prefix||\"__zone_symbol__\";function s(e){return r+e}const i=!0===e[s(\"forceDuplicateZoneCheck\")];if(e.Zone){if(i||\"function\"!=typeof e.Zone.__symbol__)throw new Error(\"Zone already loaded.\");return e.Zone}class a{constructor(e,t){this._parent=e,this._name=t?t.name||\"unnamed\":\"<root>\",this._properties=t&&t.properties||{},this._zoneDelegate=new l(this,this._parent&&this._parent._zoneDelegate,t)}static assertZonePatched(){if(e.Promise!==C.ZoneAwarePromise)throw new Error(\"Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)\")}static get root(){let e=a.current;for(;e.parent;)e=e.parent;return e}static get current(){return z.zone}static get currentTask(){return j}static __load_patch(t,r){if(C.hasOwnProperty(t)){if(i)throw Error(\"Already loaded patch: \"+t)}else if(!e[\"__Zone_disable_\"+t]){const s=\"Zone:\"+t;n(s),C[t]=r(e,a,O),o(s,s)}}get parent(){return this._parent}get name(){return this._name}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error(\"ZoneSpec required!\");return this._zoneDelegate.fork(this,e)}wrap(e,t){if(\"function\"!=typeof e)throw new Error(\"Expecting function got: \"+e);const n=this._zoneDelegate.intercept(this,e,t),o=this;return function(){return o.runGuarded(n,this,arguments,t)}}run(e,t,n,o){z={parent:z,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,o)}finally{z=z.parent}}runGuarded(e,t=null,n,o){z={parent:z,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,o)}catch(r){if(this._zoneDelegate.handleError(this,r))throw r}}finally{z=z.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error(\"A task can only be run in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");if(e.state===v&&(e.type===P||e.type===D))return;const o=e.state!=E;o&&e._transitionTo(E,T),e.runCount++;const r=j;j=e,z={parent:z,zone:this};try{e.type==D&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(s){if(this._zoneDelegate.handleError(this,s))throw s}}finally{e.state!==v&&e.state!==Z&&(e.type==P||e.data&&e.data.isPeriodic?o&&e._transitionTo(T,E):(e.runCount=0,this._updateTaskCount(e,-1),o&&e._transitionTo(v,E,v))),z=z.parent,j=r}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(b,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(n){throw e._transitionTo(Z,b,v),this._zoneDelegate.handleError(this,n),n}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==b&&e._transitionTo(T,b),e}scheduleMicroTask(e,t,n,o){return this.scheduleTask(new u(S,e,t,n,o,void 0))}scheduleMacroTask(e,t,n,o,r){return this.scheduleTask(new u(D,e,t,n,o,r))}scheduleEventTask(e,t,n,o,r){return this.scheduleTask(new u(P,e,t,n,o,r))}cancelTask(e){if(e.zone!=this)throw new Error(\"A task can only be cancelled in the zone of creation! (Creation: \"+(e.zone||y).name+\"; Execution: \"+this.name+\")\");e._transitionTo(w,T,E);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(Z,w),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,w),e.runCount=0,e}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let o=0;o<n.length;o++)n[o]._updateTaskCount(e.type,t)}}a.__symbol__=s;const c={name:\"\",onHasTask:(e,t,n,o)=>e.hasTask(n,o),onScheduleTask:(e,t,n,o)=>e.scheduleTask(n,o),onInvokeTask:(e,t,n,o,r,s)=>e.invokeTask(n,o,r,s),onCancelTask:(e,t,n,o)=>e.cancelTask(n,o)};class l{constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const o=n&&n.onHasTask;(o||t&&t._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new a(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,o,r){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,o,r):t.apply(n,o)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error(\"Task is missing scheduleFn.\");k(t)}return n}invokeTask(e,t,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,o):t.callback.apply(n,o)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error(\"Task is not cancelable\");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}}_updateTaskCount(e,t){const n=this._taskCounts,o=n[e],r=n[e]=o+t;if(r<0)throw new Error(\"More tasks executed then were scheduled.\");0!=o&&0!=r||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})}}class u{constructor(t,n,o,r,s,i){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state=\"notScheduled\",this.type=t,this.source=n,this.data=r,this.scheduleFn=s,this.cancelFn=i,!o)throw new Error(\"callback is not defined\");this.callback=o;const a=this;this.invoke=t===P&&r&&r.useG?u.invokeTask:function(){return u.invokeTask.call(e,a,this,arguments)}}static invokeTask(e,t,n){e||(e=this),I++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==I&&m(),I--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,b)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?\" or '\"+n+\"'\":\"\"}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=s(\"setTimeout\"),p=s(\"Promise\"),f=s(\"then\");let d,g=[],_=!1;function k(t){if(0===I&&0===g.length)if(d||e[p]&&(d=e[p].resolve(0)),d){let e=d[f];e||(e=d.then),e.call(d,m)}else e[h](m,0);t&&g.push(t)}function m(){if(!_){for(_=!0;g.length;){const t=g;g=[];for(let n=0;n<t.length;n++){const o=t[n];try{o.zone.runTask(o,null,null)}catch(e){O.onUnhandledError(e)}}}O.microtaskDrainDone(),_=!1}}const y={name:\"NO ZONE\"},v=\"notScheduled\",b=\"scheduling\",T=\"scheduled\",E=\"running\",w=\"canceling\",Z=\"unknown\",S=\"microTask\",D=\"macroTask\",P=\"eventTask\",C={},O={symbol:s,currentZoneFrame:()=>z,onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:k,showUncaughtError:()=>!a[s(\"ignoreConsoleErrorUncaughtError\")],patchEventTarget:()=>[],patchOnProperties:N,patchMethod:()=>N,bindArguments:()=>[],patchThen:()=>N,patchMacroTask:()=>N,setNativePromise:e=>{e&&\"function\"==typeof e.resolve&&(d=e.resolve(0))},patchEventPrototype:()=>N,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>N,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>N,wrapWithCurrentZone:()=>N,filterProperties:()=>[],attachOriginToPatched:()=>N,_redefineProperty:()=>N,patchCallbacks:()=>N};let z={parent:null,zone:new a(null,null)},j=null,I=0;function N(){}o(\"Zone\",\"Zone\"),e.Zone=a}(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof self&&self||global),Zone.__load_patch(\"ZoneAwarePromise\",(e,t,n)=>{const o=Object.getOwnPropertyDescriptor,r=Object.defineProperty,s=n.symbol,i=[],a=!0===e[s(\"DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION\")],c=s(\"Promise\"),l=s(\"then\");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error(\"Unhandled Promise rejection:\",t instanceof Error?t.message:t,\"; Zone:\",e.zone.name,\"; Task:\",e.task&&e.task.source,\"; Value:\",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;i.length;){const t=i.shift();try{t.zone.runGuarded(()=>{throw t})}catch(e){h(e)}}};const u=s(\"unhandledPromiseRejectionHandler\");function h(e){n.onUnhandledError(e);try{const n=t[u];\"function\"==typeof n&&n.call(this,e)}catch(o){}}function p(e){return e&&e.then}function f(e){return e}function d(e){return O.reject(e)}const g=s(\"state\"),_=s(\"value\"),k=s(\"finally\"),m=s(\"parentPromiseValue\"),y=s(\"parentPromiseState\"),v=null,b=!0,T=!1;function E(e,t){return n=>{try{Z(e,t,n)}catch(o){Z(e,!1,o)}}}const w=s(\"currentTaskTrace\");function Z(e,o,s){const c=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}}();if(e===s)throw new TypeError(\"Promise resolved with itself\");if(e[g]===v){let h=null;try{\"object\"!=typeof s&&\"function\"!=typeof s||(h=s&&s.then)}catch(u){return c(()=>{Z(e,!1,u)})(),e}if(o!==T&&s instanceof O&&s.hasOwnProperty(g)&&s.hasOwnProperty(_)&&s[g]!==v)D(s),Z(e,s[g],s[_]);else if(o!==T&&\"function\"==typeof h)try{h.call(s,c(E(e,o)),c(E(e,!1)))}catch(u){c(()=>{Z(e,!1,u)})()}else{e[g]=o;const c=e[_];if(e[_]=s,e[k]===k&&o===b&&(e[g]=e[y],e[_]=e[m]),o===T&&s instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&r(s,w,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t<c.length;)P(e,c[t++],c[t++],c[t++],c[t++]);if(0==c.length&&o==T){e[g]=0;let o=s;if(!a)try{throw new Error(\"Uncaught (in promise): \"+((l=s)&&l.toString===Object.prototype.toString?(l.constructor&&l.constructor.name||\"\")+\": \"+JSON.stringify(l):l?l.toString():Object.prototype.toString.call(l))+(s&&s.stack?\"\\n\"+s.stack:\"\"))}catch(u){o=u}o.rejection=s,o.promise=e,o.zone=t.current,o.task=t.currentTask,i.push(o),n.scheduleMicroTask()}}}var l;return e}const S=s(\"rejectionHandledHandler\");function D(e){if(0===e[g]){try{const n=t[S];n&&\"function\"==typeof n&&n.call(this,{rejection:e[_],promise:e})}catch(n){}e[g]=T;for(let t=0;t<i.length;t++)e===i[t].promise&&i.splice(t,1)}}function P(e,t,n,o,r){D(e);const s=e[g],i=s?\"function\"==typeof o?o:f:\"function\"==typeof r?r:d;t.scheduleMicroTask(\"Promise.then\",()=>{try{const o=e[_],r=!!n&&k===n[k];r&&(n[m]=o,n[y]=s);const a=t.run(i,void 0,r&&i!==d&&i!==f?[]:[o]);Z(n,!0,a)}catch(o){Z(n,!1,o)}},n)}const C=function(){};class O{static toString(){return\"function ZoneAwarePromise() { [native code] }\"}static resolve(e){return Z(new this(null),b,e)}static reject(e){return Z(new this(null),T,e)}static race(e){let t,n,o=new this((e,o)=>{t=e,n=o});function r(e){t(e)}function s(e){n(e)}for(let i of e)p(i)||(i=this.resolve(i)),i.then(r,s);return o}static all(e){return O.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof O?this:O).allWithCallback(e,{thenCallback:e=>({status:\"fulfilled\",value:e}),errorCallback:e=>({status:\"rejected\",reason:e})})}static allWithCallback(e,t){let n,o,r=new this((e,t)=>{n=e,o=t}),s=2,i=0;const a=[];for(let l of e){p(l)||(l=this.resolve(l));const e=i;try{l.then(o=>{a[e]=t?t.thenCallback(o):o,s--,0===s&&n(a)},r=>{t?(a[e]=t.errorCallback(r),s--,0===s&&n(a)):o(r)})}catch(c){o(c)}s++,i++}return s-=2,0===s&&n(a),r}constructor(e){const t=this;if(!(t instanceof O))throw new Error(\"Must be an instanceof Promise.\");t[g]=v,t[_]=[];try{e&&e(E(t,b),E(t,T))}catch(n){Z(t,!1,n)}}get[Symbol.toStringTag](){return\"Promise\"}get[Symbol.species](){return O}then(e,n){let o=this.constructor[Symbol.species];o&&\"function\"==typeof o||(o=this.constructor||O);const r=new o(C),s=t.current;return this[g]==v?this[_].push(s,r,e,n):P(this,s,r,e,n),r}catch(e){return this.then(null,e)}finally(e){let n=this.constructor[Symbol.species];n&&\"function\"==typeof n||(n=O);const o=new n(C);o[k]=k;const r=t.current;return this[g]==v?this[_].push(r,o,e,e):P(this,r,o,e,e),o}}O.resolve=O.resolve,O.reject=O.reject,O.race=O.race,O.all=O.all;const z=e[c]=e.Promise,j=t.__symbol__(\"ZoneAwarePromise\");let I=o(e,\"Promise\");I&&!I.configurable||(I&&delete I.writable,I&&delete I.value,I||(I={configurable:!0,enumerable:!0}),I.get=function(){return e[j]?e[j]:e[c]},I.set=function(t){t===O?e[j]=t:(e[c]=t,t.prototype[l]||R(t),n.setNativePromise(t))},r(e,\"Promise\",I)),e.Promise=O;const N=s(\"thenPatched\");function R(e){const t=e.prototype,n=o(t,\"then\");if(n&&(!1===n.writable||!n.configurable))return;const r=t.then;t[l]=r,e.prototype.then=function(e,t){return new O((e,t)=>{r.call(this,e,t)}).then(e,t)},e[N]=!0}if(n.patchThen=R,z){R(z);const t=e.fetch;\"function\"==typeof t&&(e[n.symbol(\"fetch\")]=t,e.fetch=(x=t,function(){let e=x.apply(this,arguments);if(e instanceof O)return e;let t=e.constructor;return t[N]||R(t),e}))}var x;return Promise[t.__symbol__(\"uncaughtPromiseErrors\")]=i,O});const e=Object.getOwnPropertyDescriptor,t=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,r=Array.prototype.slice,s=\"addEventListener\",i=\"removeEventListener\",a=Zone.__symbol__(s),c=Zone.__symbol__(i),l=\"true\",u=\"false\",h=Zone.__symbol__(\"\");function p(e,t){return Zone.current.wrap(e,t)}function f(e,t,n,o,r){return Zone.current.scheduleMacroTask(e,t,n,o,r)}const d=Zone.__symbol__,g=\"undefined\"!=typeof window,_=g?window:void 0,k=g&&_||\"object\"==typeof self&&self||global,m=[null];function y(e,t){for(let n=e.length-1;n>=0;n--)\"function\"==typeof e[n]&&(e[n]=p(e[n],t+\"_\"+n));return e}function v(e){return!e||!1!==e.writable&&!(\"function\"==typeof e.get&&void 0===e.set)}const b=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,T=!(\"nw\"in k)&&void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process),E=!T&&!b&&!(!g||!_.HTMLElement),w=void 0!==k.process&&\"[object process]\"==={}.toString.call(k.process)&&!b&&!(!g||!_.HTMLElement),Z={},S=function(e){if(!(e=e||k.event))return;let t=Z[e.type];t||(t=Z[e.type]=d(\"ON_PROPERTY\"+e.type));const n=this||e.target||k,o=n[t];let r;if(E&&n===_&&\"error\"===e.type){const t=e;r=o&&o.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===r&&e.preventDefault()}else r=o&&o.apply(this,arguments),null==r||r||e.preventDefault();return r};function D(n,o,r){let s=e(n,o);if(!s&&r&&e(r,o)&&(s={enumerable:!0,configurable:!0}),!s||!s.configurable)return;const i=d(\"on\"+o+\"patched\");if(n.hasOwnProperty(i)&&n[i])return;delete s.writable,delete s.value;const a=s.get,c=s.set,l=o.substr(2);let u=Z[l];u||(u=Z[l]=d(\"ON_PROPERTY\"+l)),s.set=function(e){let t=this;t||n!==k||(t=k),t&&(t[u]&&t.removeEventListener(l,S),c&&c.apply(t,m),\"function\"==typeof e?(t[u]=e,t.addEventListener(l,S,!1)):t[u]=null)},s.get=function(){let e=this;if(e||n!==k||(e=k),!e)return null;const t=e[u];if(t)return t;if(a){let t=a&&a.call(this);if(t)return s.set.call(this,t),\"function\"==typeof e.removeAttribute&&e.removeAttribute(o),t}return null},t(n,o,s),n[i]=!0}function P(e,t,n){if(t)for(let o=0;o<t.length;o++)D(e,\"on\"+t[o],n);else{const t=[];for(const n in e)\"on\"==n.substr(0,2)&&t.push(n);for(let o=0;o<t.length;o++)D(e,t[o],n)}}const C=d(\"originalInstance\");function O(e){const n=k[e];if(!n)return;k[d(e)]=n,k[e]=function(){const t=y(arguments,e);switch(t.length){case 0:this[C]=new n;break;case 1:this[C]=new n(t[0]);break;case 2:this[C]=new n(t[0],t[1]);break;case 3:this[C]=new n(t[0],t[1],t[2]);break;case 4:this[C]=new n(t[0],t[1],t[2],t[3]);break;default:throw new Error(\"Arg list too long.\")}},I(k[e],n);const o=new n(function(){});let r;for(r in o)\"XMLHttpRequest\"===e&&\"responseBlob\"===r||function(n){\"function\"==typeof o[n]?k[e].prototype[n]=function(){return this[C][n].apply(this[C],arguments)}:t(k[e].prototype,n,{set:function(t){\"function\"==typeof t?(this[C][n]=p(t,e+\".\"+n),I(this[C][n],t)):this[C][n]=t},get:function(){return this[C][n]}})}(r);for(r in n)\"prototype\"!==r&&n.hasOwnProperty(r)&&(k[e][r]=n[r])}function z(t,o,r){let s=t;for(;s&&!s.hasOwnProperty(o);)s=n(s);!s&&t[o]&&(s=t);const i=d(o);let a=null;if(s&&!(a=s[i])&&(a=s[i]=s[o],v(s&&e(s,o)))){const e=r(a,i,o);s[o]=function(){return e(this,arguments)},I(s[o],a)}return a}function j(e,t,n){let o=null;function r(e){const t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=z(e,t,e=>function(t,o){const s=n(t,o);return s.cbIdx>=0&&\"function\"==typeof o[s.cbIdx]?f(s.name,o[s.cbIdx],s,r):e.apply(t,o)})}function I(e,t){e[d(\"OriginalDelegate\")]=t}let N=!1,R=!1;function x(){try{const e=_.navigator.userAgent;if(-1!==e.indexOf(\"MSIE \")||-1!==e.indexOf(\"Trident/\"))return!0}catch(e){}return!1}function M(){if(N)return R;N=!0;try{const e=_.navigator.userAgent;-1===e.indexOf(\"MSIE \")&&-1===e.indexOf(\"Trident/\")&&-1===e.indexOf(\"Edge/\")||(R=!0)}catch(e){}return R}Zone.__load_patch(\"toString\",e=>{const t=Function.prototype.toString,n=d(\"OriginalDelegate\"),o=d(\"Promise\"),r=d(\"Error\"),s=function(){if(\"function\"==typeof this){const s=this[n];if(s)return\"function\"==typeof s?t.call(s):Object.prototype.toString.call(s);if(this===Promise){const n=e[o];if(n)return t.call(n)}if(this===Error){const n=e[r];if(n)return t.call(n)}}return t.call(this)};s[n]=t,Function.prototype.toString=s;const i=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?\"[object Promise]\":i.call(this)}});let L=!1;if(\"undefined\"!=typeof window)try{const e=Object.defineProperty({},\"passive\",{get:function(){L=!0}});window.addEventListener(\"test\",e,e),window.removeEventListener(\"test\",e,e)}catch(he){L=!1}const A={useG:!0},H={},F={},G=new RegExp(\"^\"+h+\"(\\\\w+)(true|false)$\"),B=d(\"propagationStopped\");function q(e,t){const n=(t?t(e):e)+u,o=(t?t(e):e)+l,r=h+n,s=h+o;H[e]={},H[e].false=r,H[e].true=s}function W(e,t,o){const r=o&&o.add||s,a=o&&o.rm||i,c=o&&o.listeners||\"eventListeners\",p=o&&o.rmAll||\"removeAllListeners\",f=d(r),g=\".\"+r+\":\",_=function(e,t,n){if(e.isRemoved)return;const o=e.callback;\"object\"==typeof o&&o.handleEvent&&(e.callback=e=>o.handleEvent(e),e.originalDelegate=o),e.invoke(e,t,[n]);const r=e.options;r&&\"object\"==typeof r&&r.once&&t[a].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,r)},k=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].false];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}},m=function(t){if(!(t=t||e.event))return;const n=this||t.target||e,o=n[H[t.type].true];if(o)if(1===o.length)_(o[0],n,t);else{const e=o.slice();for(let o=0;o<e.length&&(!t||!0!==t[B]);o++)_(e[o],n,t)}};function y(t,o){if(!t)return!1;let s=!0;o&&void 0!==o.useG&&(s=o.useG);const i=o&&o.vh;let _=!0;o&&void 0!==o.chkDup&&(_=o.chkDup);let y=!1;o&&void 0!==o.rt&&(y=o.rt);let v=t;for(;v&&!v.hasOwnProperty(r);)v=n(v);if(!v&&t[r]&&(v=t),!v)return!1;if(v[f])return!1;const b=o&&o.eventNameToString,E={},w=v[f]=v[r],Z=v[d(a)]=v[a],S=v[d(c)]=v[c],D=v[d(p)]=v[p];let P;function C(e,t){return!L&&\"object\"==typeof e&&e?!!e.capture:L&&t?\"boolean\"==typeof e?{capture:e,passive:!0}:e?\"object\"==typeof e&&!1!==e.passive?Object.assign(Object.assign({},e),{passive:!0}):e:{passive:!0}:e}o&&o.prepend&&(P=v[d(o.prepend)]=v[o.prepend]);const O=s?function(e){if(!E.isExisting)return w.call(E.target,E.eventName,E.capture?m:k,E.options)}:function(e){return w.call(E.target,E.eventName,e.invoke,E.options)},z=s?function(e){if(!e.isRemoved){const t=H[e.eventName];let n;t&&(n=t[e.capture?l:u]);const o=n&&e.target[n];if(o)for(let r=0;r<o.length;r++)if(o[r]===e){o.splice(r,1),e.isRemoved=!0,0===o.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return Z.call(e.target,e.eventName,e.capture?m:k,e.options)}:function(e){return Z.call(e.target,e.eventName,e.invoke,e.options)},j=o&&o.diff?o.diff:function(e,t){const n=typeof t;return\"function\"===n&&e.callback===t||\"object\"===n&&e.originalDelegate===t},N=Zone[d(\"BLACK_LISTED_EVENTS\")],R=e[d(\"PASSIVE_EVENTS\")],x=function(t,n,r,a,c=!1,h=!1){return function(){const p=this||e;let f=arguments[0];o&&o.transferEventName&&(f=o.transferEventName(f));let d=arguments[1];if(!d)return t.apply(this,arguments);if(T&&\"uncaughtException\"===f)return t.apply(this,arguments);let g=!1;if(\"function\"!=typeof d){if(!d.handleEvent)return t.apply(this,arguments);g=!0}if(i&&!i(t,d,p,arguments))return;const k=L&&!!R&&-1!==R.indexOf(f),m=C(arguments[2],k);if(N)for(let e=0;e<N.length;e++)if(f===N[e])return k?t.call(p,f,d,m):t.apply(this,arguments);const y=!!m&&(\"boolean\"==typeof m||m.capture),v=!(!m||\"object\"!=typeof m)&&m.once,w=Zone.current;let Z=H[f];Z||(q(f,b),Z=H[f]);const S=Z[y?l:u];let D,P=p[S],O=!1;if(P){if(O=!0,_)for(let e=0;e<P.length;e++)if(j(P[e],d))return}else P=p[S]=[];const z=p.constructor.name,I=F[z];I&&(D=I[f]),D||(D=z+n+(b?b(f):f)),E.options=m,v&&(E.options.once=!1),E.target=p,E.capture=y,E.eventName=f,E.isExisting=O;const x=s?A:void 0;x&&(x.taskData=E);const M=w.scheduleEventTask(D,d,x,r,a);return E.target=null,x&&(x.taskData=null),v&&(m.once=!0),(L||\"boolean\"!=typeof M.options)&&(M.options=m),M.target=p,M.capture=y,M.eventName=f,g&&(M.originalDelegate=d),h?P.unshift(M):P.push(M),c?p:void 0}};return v[r]=x(w,g,O,z,y),P&&(v.prependListener=x(P,\".prependListener:\",function(e){return P.call(E.target,E.eventName,e.invoke,E.options)},z,y,!0)),v[a]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=arguments[2],s=!!r&&(\"boolean\"==typeof r||r.capture),a=arguments[1];if(!a)return Z.apply(this,arguments);if(i&&!i(Z,a,t,arguments))return;const c=H[n];let p;c&&(p=c[s?l:u]);const f=p&&t[p];if(f)for(let e=0;e<f.length;e++){const o=f[e];if(j(o,a))return f.splice(e,1),o.isRemoved=!0,0===f.length&&(o.allRemoved=!0,t[p]=null,\"string\"==typeof n)&&(t[h+\"ON_PROPERTY\"+n]=null),o.zone.cancelTask(o),y?t:void 0}return Z.apply(this,arguments)},v[c]=function(){const t=this||e;let n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));const r=[],s=U(t,b?b(n):n);for(let e=0;e<s.length;e++){const t=s[e];r.push(t.originalDelegate?t.originalDelegate:t.callback)}return r},v[p]=function(){const t=this||e;let n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));const e=H[n];if(e){const o=t[e.false],r=t[e.true];if(o){const e=o.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}if(r){const e=r.slice();for(let t=0;t<e.length;t++){const o=e[t];this[a].call(this,n,o.originalDelegate?o.originalDelegate:o.callback,o.options)}}}}else{const e=Object.keys(t);for(let t=0;t<e.length;t++){const n=G.exec(e[t]);let o=n&&n[1];o&&\"removeListener\"!==o&&this[p].call(this,o)}this[p].call(this,\"removeListener\")}if(y)return this},I(v[r],w),I(v[a],Z),D&&I(v[p],D),S&&I(v[c],S),!0}let v=[];for(let n=0;n<t.length;n++)v[n]=y(t[n],o);return v}function U(e,t){if(!t){const n=[];for(let o in e){const r=G.exec(o);let s=r&&r[1];if(s&&(!t||s===t)){const t=e[o];if(t)for(let e=0;e<t.length;e++)n.push(t[e])}}return n}let n=H[t];n||(q(t),n=H[t]);const o=e[n.false],r=e[n.true];return o?r?o.concat(r):o.slice():r?r.slice():[]}function V(e,t){const n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,\"stopImmediatePropagation\",e=>function(t,n){t[B]=!0,e&&e.apply(t,n)})}function $(e,t,n,o,r){const s=Zone.__symbol__(o);if(t[s])return;const i=t[s]=t[o];t[o]=function(s,a,c){return a&&a.prototype&&r.forEach(function(t){const r=`${n}.${o}::`+t,s=a.prototype;if(s.hasOwnProperty(t)){const n=e.ObjectGetOwnPropertyDescriptor(s,t);n&&n.value?(n.value=e.wrapWithCurrentZone(n.value,r),e._redefineProperty(a.prototype,t,n)):s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}else s[t]&&(s[t]=e.wrapWithCurrentZone(s[t],r))}),i.call(t,s,a,c)},e.attachOriginToPatched(t[o],i)}const X=[\"absolutedeviceorientation\",\"afterinput\",\"afterprint\",\"appinstalled\",\"beforeinstallprompt\",\"beforeprint\",\"beforeunload\",\"devicelight\",\"devicemotion\",\"deviceorientation\",\"deviceorientationabsolute\",\"deviceproximity\",\"hashchange\",\"languagechange\",\"message\",\"mozbeforepaint\",\"offline\",\"online\",\"paint\",\"pageshow\",\"pagehide\",\"popstate\",\"rejectionhandled\",\"storage\",\"unhandledrejection\",\"unload\",\"userproximity\",\"vrdisplayconnected\",\"vrdisplaydisconnected\",\"vrdisplaypresentchange\"],J=[\"encrypted\",\"waitingforkey\",\"msneedkey\",\"mozinterruptbegin\",\"mozinterruptend\"],Y=[\"load\"],K=[\"blur\",\"error\",\"focus\",\"load\",\"resize\",\"scroll\",\"messageerror\"],Q=[\"bounce\",\"finish\",\"start\"],ee=[\"loadstart\",\"progress\",\"abort\",\"error\",\"load\",\"progress\",\"timeout\",\"loadend\",\"readystatechange\"],te=[\"upgradeneeded\",\"complete\",\"abort\",\"success\",\"error\",\"blocked\",\"versionchange\",\"close\"],ne=[\"close\",\"error\",\"open\",\"message\"],oe=[\"error\",\"message\"],re=[\"abort\",\"animationcancel\",\"animationend\",\"animationiteration\",\"auxclick\",\"beforeinput\",\"blur\",\"cancel\",\"canplay\",\"canplaythrough\",\"change\",\"compositionstart\",\"compositionupdate\",\"compositionend\",\"cuechange\",\"click\",\"close\",\"contextmenu\",\"curechange\",\"dblclick\",\"drag\",\"dragend\",\"dragenter\",\"dragexit\",\"dragleave\",\"dragover\",\"drop\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"focus\",\"focusin\",\"focusout\",\"gotpointercapture\",\"input\",\"invalid\",\"keydown\",\"keypress\",\"keyup\",\"load\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"lostpointercapture\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"mousewheel\",\"orientationchange\",\"pause\",\"play\",\"playing\",\"pointercancel\",\"pointerdown\",\"pointerenter\",\"pointerleave\",\"pointerlockchange\",\"mozpointerlockchange\",\"webkitpointerlockerchange\",\"pointerlockerror\",\"mozpointerlockerror\",\"webkitpointerlockerror\",\"pointermove\",\"pointout\",\"pointerover\",\"pointerup\",\"progress\",\"ratechange\",\"reset\",\"resize\",\"scroll\",\"seeked\",\"seeking\",\"select\",\"selectionchange\",\"selectstart\",\"show\",\"sort\",\"stalled\",\"submit\",\"suspend\",\"timeupdate\",\"volumechange\",\"touchcancel\",\"touchmove\",\"touchstart\",\"touchend\",\"transitioncancel\",\"transitionend\",\"waiting\",\"wheel\"].concat([\"webglcontextrestored\",\"webglcontextlost\",\"webglcontextcreationerror\"],[\"autocomplete\",\"autocompleteerror\"],[\"toggle\"],[\"afterscriptexecute\",\"beforescriptexecute\",\"DOMContentLoaded\",\"freeze\",\"fullscreenchange\",\"mozfullscreenchange\",\"webkitfullscreenchange\",\"msfullscreenchange\",\"fullscreenerror\",\"mozfullscreenerror\",\"webkitfullscreenerror\",\"msfullscreenerror\",\"readystatechange\",\"visibilitychange\",\"resume\"],X,[\"beforecopy\",\"beforecut\",\"beforepaste\",\"copy\",\"cut\",\"paste\",\"dragstart\",\"loadend\",\"animationstart\",\"search\",\"transitionrun\",\"transitionstart\",\"webkitanimationend\",\"webkitanimationiteration\",\"webkitanimationstart\",\"webkittransitionend\"],[\"activate\",\"afterupdate\",\"ariarequest\",\"beforeactivate\",\"beforedeactivate\",\"beforeeditfocus\",\"beforeupdate\",\"cellchange\",\"controlselect\",\"dataavailable\",\"datasetchanged\",\"datasetcomplete\",\"errorupdate\",\"filterchange\",\"layoutcomplete\",\"losecapture\",\"move\",\"moveend\",\"movestart\",\"propertychange\",\"resizeend\",\"resizestart\",\"rowenter\",\"rowexit\",\"rowsdelete\",\"rowsinserted\",\"command\",\"compassneedscalibration\",\"deactivate\",\"help\",\"mscontentzoom\",\"msmanipulationstatechanged\",\"msgesturechange\",\"msgesturedoubletap\",\"msgestureend\",\"msgesturehold\",\"msgesturestart\",\"msgesturetap\",\"msgotpointercapture\",\"msinertiastart\",\"mslostpointercapture\",\"mspointercancel\",\"mspointerdown\",\"mspointerenter\",\"mspointerhover\",\"mspointerleave\",\"mspointermove\",\"mspointerout\",\"mspointerover\",\"mspointerup\",\"pointerout\",\"mssitemodejumplistitemremoved\",\"msthumbnailclick\",\"stop\",\"storagecommit\"]);function se(e,t,n){if(!n||0===n.length)return t;const o=n.filter(t=>t.target===e);if(!o||0===o.length)return t;const r=o[0].ignoreProperties;return t.filter(e=>-1===r.indexOf(e))}function ie(e,t,n,o){e&&P(e,se(e,t,n),o)}function ae(e,t){if(T&&!w)return;if(Zone[e.symbol(\"patchEvents\")])return;const o=\"undefined\"!=typeof WebSocket,r=t.__Zone_ignore_on_properties;if(E){const e=window,t=x?[{target:e,ignoreProperties:[\"error\"]}]:[];ie(e,re.concat([\"messageerror\"]),r?r.concat(t):r,n(e)),ie(Document.prototype,re,r),void 0!==e.SVGElement&&ie(e.SVGElement.prototype,re,r),ie(Element.prototype,re,r),ie(HTMLElement.prototype,re,r),ie(HTMLMediaElement.prototype,J,r),ie(HTMLFrameSetElement.prototype,X.concat(K),r),ie(HTMLBodyElement.prototype,X.concat(K),r),ie(HTMLFrameElement.prototype,Y,r),ie(HTMLIFrameElement.prototype,Y,r);const o=e.HTMLMarqueeElement;o&&ie(o.prototype,Q,r);const s=e.Worker;s&&ie(s.prototype,oe,r)}const s=t.XMLHttpRequest;s&&ie(s.prototype,ee,r);const i=t.XMLHttpRequestEventTarget;i&&ie(i&&i.prototype,ee,r),\"undefined\"!=typeof IDBIndex&&(ie(IDBIndex.prototype,te,r),ie(IDBRequest.prototype,te,r),ie(IDBOpenDBRequest.prototype,te,r),ie(IDBDatabase.prototype,te,r),ie(IDBTransaction.prototype,te,r),ie(IDBCursor.prototype,te,r)),o&&ie(WebSocket.prototype,ne,r)}Zone.__load_patch(\"util\",(n,a,c)=>{c.patchOnProperties=P,c.patchMethod=z,c.bindArguments=y,c.patchMacroTask=j;const f=a.__symbol__(\"BLACK_LISTED_EVENTS\"),d=a.__symbol__(\"UNPATCHED_EVENTS\");n[d]&&(n[f]=n[d]),n[f]&&(a[f]=a[d]=n[f]),c.patchEventPrototype=V,c.patchEventTarget=W,c.isIEOrEdge=M,c.ObjectDefineProperty=t,c.ObjectGetOwnPropertyDescriptor=e,c.ObjectCreate=o,c.ArraySlice=r,c.patchClass=O,c.wrapWithCurrentZone=p,c.filterProperties=se,c.attachOriginToPatched=I,c._redefineProperty=Object.defineProperty,c.patchCallbacks=$,c.getGlobalObjects=()=>({globalSources:F,zoneSymbolEventNames:H,eventNames:re,isBrowser:E,isMix:w,isNode:T,TRUE_STR:l,FALSE_STR:u,ZONE_SYMBOL_PREFIX:h,ADD_EVENT_LISTENER_STR:s,REMOVE_EVENT_LISTENER_STR:i})});const ce=d(\"zoneTask\");function le(e,t,n,o){let r=null,s=null;n+=o;const i={};function a(t){const n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||(\"number\"==typeof n.handleId?delete i[n.handleId]:n.handleId&&(n.handleId[ce]=null))}},n.handleId=r.apply(e,n.args),t}function c(e){return s(e.data.handleId)}r=z(e,t+=o,n=>function(r,s){if(\"function\"==typeof s[0]){const e=f(t,s[0],{isPeriodic:\"Interval\"===o,delay:\"Timeout\"===o||\"Interval\"===o?s[1]||0:void 0,args:s},a,c);if(!e)return e;const n=e.data.handleId;return\"number\"==typeof n?i[n]=e:n&&(n[ce]=e),n&&n.ref&&n.unref&&\"function\"==typeof n.ref&&\"function\"==typeof n.unref&&(e.ref=n.ref.bind(n),e.unref=n.unref.bind(n)),\"number\"==typeof n||n?n:e}return n.apply(e,s)}),s=z(e,n,t=>function(n,o){const r=o[0];let s;\"number\"==typeof r?s=i[r]:(s=r&&r[ce],s||(s=r)),s&&\"string\"==typeof s.type?\"notScheduled\"!==s.state&&(s.cancelFn&&s.data.isPeriodic||0===s.runCount)&&(\"number\"==typeof r?delete i[r]:r&&(r[ce]=null),s.zone.cancelTask(s)):t.apply(e,o)})}function ue(e,t){if(Zone[t.symbol(\"patchEventTarget\")])return;const{eventNames:n,zoneSymbolEventNames:o,TRUE_STR:r,FALSE_STR:s,ZONE_SYMBOL_PREFIX:i}=t.getGlobalObjects();for(let c=0;c<n.length;c++){const e=n[c],t=i+(e+s),a=i+(e+r);o[e]={},o[e][s]=t,o[e][r]=a}const a=e.EventTarget;return a&&a.prototype?(t.patchEventTarget(e,[a&&a.prototype]),!0):void 0}Zone.__load_patch(\"legacy\",e=>{const t=e[Zone.__symbol__(\"legacyPatch\")];t&&t()}),Zone.__load_patch(\"timers\",e=>{const t=\"set\",n=\"clear\";le(e,t,n,\"Timeout\"),le(e,t,n,\"Interval\"),le(e,t,n,\"Immediate\")}),Zone.__load_patch(\"requestAnimationFrame\",e=>{le(e,\"request\",\"cancel\",\"AnimationFrame\"),le(e,\"mozRequest\",\"mozCancel\",\"AnimationFrame\"),le(e,\"webkitRequest\",\"webkitCancel\",\"AnimationFrame\")}),Zone.__load_patch(\"blocking\",(e,t)=>{const n=[\"alert\",\"prompt\",\"confirm\"];for(let o=0;o<n.length;o++)z(e,n[o],(n,o,r)=>function(o,s){return t.current.run(n,e,s,r)})}),Zone.__load_patch(\"EventTarget\",(e,t,n)=>{(function(e,t){t.patchEventPrototype(e,t)})(e,n),ue(e,n);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),O(\"MutationObserver\"),O(\"WebKitMutationObserver\"),O(\"IntersectionObserver\"),O(\"FileReader\")}),Zone.__load_patch(\"on_property\",(e,t,n)=>{ae(n,e)}),Zone.__load_patch(\"customElements\",(e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:o}=t.getGlobalObjects();(n||o)&&e.customElements&&\"customElements\"in e&&t.patchCallbacks(t,e.customElements,\"customElements\",\"define\",[\"connectedCallback\",\"disconnectedCallback\",\"adoptedCallback\",\"attributeChangedCallback\"])}(e,n)}),Zone.__load_patch(\"XHR\",(e,t)=>{!function(e){const u=e.XMLHttpRequest;if(!u)return;const h=u.prototype;let p=h[a],g=h[c];if(!p){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;p=e[a],g=e[c]}}const _=\"readystatechange\",k=\"scheduled\";function m(e){const o=e.data,i=o.target;i[s]=!1,i[l]=!1;const u=i[r];p||(p=i[a],g=i[c]),u&&g.call(i,_,u);const h=i[r]=()=>{if(i.readyState===i.DONE)if(!o.aborted&&i[s]&&e.state===k){const n=i[t.__symbol__(\"loadfalse\")];if(n&&n.length>0){const r=e.invoke;e.invoke=function(){const n=i[t.__symbol__(\"loadfalse\")];for(let t=0;t<n.length;t++)n[t]===e&&n.splice(t,1);o.aborted||e.state!==k||r.call(e)},n.push(e)}else e.invoke()}else o.aborted||!1!==i[s]||(i[l]=!0)};return p.call(i,_,h),i[n]||(i[n]=e),w.apply(i,o.args),i[s]=!0,e}function y(){}function v(e){const t=e.data;return t.aborted=!0,Z.apply(t.target,t.args)}const b=z(h,\"open\",()=>function(e,t){return e[o]=0==t[2],e[i]=t[1],b.apply(e,t)}),T=d(\"fetchTaskAborting\"),E=d(\"fetchTaskScheduling\"),w=z(h,\"send\",()=>function(e,n){if(!0===t.current[E])return w.apply(e,n);if(e[o])return w.apply(e,n);{const t={target:e,url:e[i],isPeriodic:!1,args:n,aborted:!1},o=f(\"XMLHttpRequest.send\",y,t,m,v);e&&!0===e[l]&&!t.aborted&&o.state===k&&o.invoke()}}),Z=z(h,\"abort\",()=>function(e,o){const r=e[n];if(r&&\"string\"==typeof r.type){if(null==r.cancelFn||r.data&&r.data.aborted)return;r.zone.cancelTask(r)}else if(!0===t.current[T])return Z.apply(e,o)})}(e);const n=d(\"xhrTask\"),o=d(\"xhrSync\"),r=d(\"xhrListener\"),s=d(\"xhrScheduled\"),i=d(\"xhrURL\"),l=d(\"xhrErrorBeforeScheduled\")}),Zone.__load_patch(\"geolocation\",t=>{t.navigator&&t.navigator.geolocation&&function(t,n){const o=t.constructor.name;for(let r=0;r<n.length;r++){const s=n[r],i=t[s];if(i){if(!v(e(t,s)))continue;t[s]=(e=>{const t=function(){return e.apply(this,y(arguments,o+\".\"+s))};return I(t,e),t})(i)}}}(t.navigator.geolocation,[\"getCurrentPosition\",\"watchPosition\"])}),Zone.__load_patch(\"PromiseRejectionEvent\",(e,t)=>{function n(t){return function(n){U(e,t).forEach(o=>{const r=e.PromiseRejectionEvent;if(r){const e=new r(t,{promise:n.promise,reason:n.rejection});o.invoke(e)}})}}e.PromiseRejectionEvent&&(t[d(\"unhandledPromiseRejectionHandler\")]=n(\"unhandledrejection\"),t[d(\"rejectionHandledHandler\")]=n(\"rejectionhandled\"))})})?o.call(t,n,t,e):o)||(e.exports=r)}},[[1,0]]]);"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/dist/example/runtime.359d5ee4682f20e936e9.js",
    "content": "!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,\"a\",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p=\"\";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/dist/example/styles.51422a5c94b8290ff190.css",
    "content": "/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:initial}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\00A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:initial;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:initial;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:initial;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:initial}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:initial}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:initial}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:initial}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:initial}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:initial}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:initial}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:initial}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:initial;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:initial}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:initial;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:initial;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:initial;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:initial;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:initial;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:initial;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:initial;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:initial;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:initial!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:initial!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:initial;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('example app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/example'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/package.json",
    "content": "{\n  \"name\": \"example\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ProductComponent } from \"./component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { ProductTableComponent } from \"./components/productTable.component\";\nimport { ProductFormComponent } from \"./components/productForm.component\";\n// import { PaDiscountDisplayComponent } from \"./discountDisplay.component\";\n// import { PaDiscountEditorComponent } from \"./discountEditor.component\";\nimport { ModelModule } from \"./model/model.module\";\nimport { CommonModule } from \"./common/common.module\";\nimport { ComponentsModule } from \"./components/components.module\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule,\n        ModelModule, CommonModule, ComponentsModule],\n    declarations: [ProductComponent],\n    bootstrap: [ProductFormComponent, ProductTableComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/common/addTax.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\n\n@Pipe({\n    name: \"addTax\"\n})\nexport class PaAddTaxPipe {\n\n    defaultRate: number = 10;\n\n    transform(value: any, rate?: any): number {\n        let valueNumber = Number.parseFloat(value);\n        let rateNumber = rate == undefined ?\n            this.defaultRate : Number.parseInt(rate);\n        return valueNumber + (valueNumber * (rateNumber / 100));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/common/attr.directive.ts",
    "content": "import {\n  Directive, ElementRef, Attribute, Input,\n  SimpleChange, Output, EventEmitter, HostListener, HostBinding\n}\n  from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\n\n@Directive({\n  selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n  @Input(\"pa-attr\")\n  @HostBinding(\"class\")\n  bgClass: string;\n\n  @Input(\"pa-product\")\n  product: Product;\n\n  @Output(\"pa-category\")\n  click = new EventEmitter<string>();\n\n  @HostListener(\"click\")\n  triggerCustomEvent() {\n    if (this.product != null) {\n      this.click.emit(this.product.category);\n    }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/common/categoryFilter.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\n\n@Pipe({\n    name: \"filter\",\n    pure: false\n})\nexport class PaCategoryFilterPipe {\n\n    transform(products: Product[], category: string): Product[] {\n        return category == undefined ?\n            products : products.filter(p => p.category == category);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/common/cellColor.directive.ts",
    "content": "import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n    selector: \"td[paApplyColor]\"\n})\nexport class PaCellColor {\n\n    @HostBinding(\"class\")\n    bgClass: string = \"\";\n\n    setColor(dark: Boolean) {\n        this.bgClass = dark ? \"bg-dark\" : \"\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/common/cellColorSwitcher.directive.ts",
    "content": "import { Directive, Input, Output, EventEmitter,\n    SimpleChange, ContentChildren, QueryList } from \"@angular/core\";\nimport { PaCellColor } from \"./cellColor.directive\";\n\n@Directive({\nselector: \"table\"\n})\nexport class PaCellColorSwitcher {\n\n@Input(\"paCellDarkColor\")\nmodelProperty: Boolean;\n\n@ContentChildren(PaCellColor, {descendants: true})\ncontentChildren: QueryList<PaCellColor>;\n\nngOnChanges(changes: { [property: string]: SimpleChange }) {\n   this.updateContentChildren(changes[\"modelProperty\"].currentValue);\n}\n\nngAfterContentInit() {\n   this.contentChildren.changes.subscribe(() => {\n       setTimeout(() => this.updateContentChildren(this.modelProperty), 0);\n   });\n}\n\nprivate updateContentChildren(dark: Boolean) {\n   if (this.contentChildren != null && dark != undefined) {\n       this.contentChildren.forEach((child, index) => {\n           child.setColor(index % 2 ? dark : !dark);\n       });\n   }\n}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/common/common.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { PaAddTaxPipe } from \"./addTax.pipe\";\nimport { PaAttrDirective } from \"./attr.directive\";\nimport { PaCategoryFilterPipe } from \"./categoryFilter.pipe\";\nimport { PaCellColor } from \"./cellColor.directive\";\nimport { PaCellColorSwitcher } from \"./cellColorSwitcher.directive\";\nimport { PaDiscountPipe } from \"./discount.pipe\";\nimport { PaDiscountAmountDirective } from \"./discountAmount.directive\";\nimport { PaIteratorDirective } from \"./iterator.directive\";\nimport { PaStructureDirective } from \"./structure.directive\";\nimport { PaModel } from \"./twoway.directive\";\nimport { VALUE_SERVICE, PaDisplayValueDirective} from \"./valueDisplay.directive\";\nimport { DiscountService } from \"./discount.service\";\nimport { LogService } from \"./log.service\";\nimport { ModelModule } from \"../model/model.module\";\n\n@NgModule({\n    imports: [ModelModule],\n    providers: [LogService, DiscountService,\n        { provide: VALUE_SERVICE, useValue: \"Apples\" }],\n    declarations: [PaAddTaxPipe, PaAttrDirective, PaCategoryFilterPipe,\n        PaCellColor, PaCellColorSwitcher, PaDiscountPipe,\n        PaDiscountAmountDirective, PaIteratorDirective, PaStructureDirective,\n        PaModel, PaDisplayValueDirective],\n    exports: [PaAddTaxPipe, PaAttrDirective, PaCategoryFilterPipe,\n        PaCellColor, PaCellColorSwitcher, PaDiscountPipe,\n        PaDiscountAmountDirective, PaIteratorDirective, PaStructureDirective,\n        PaModel, PaDisplayValueDirective]\n})\nexport class CommonModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/common/discount.pipe.ts",
    "content": "import { Pipe, Injectable } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\nimport { LogService } from \"./log.service\";\n\n@Pipe({\n    name: \"discount\",\n    pure: false\n})\nexport class PaDiscountPipe {\n\n    constructor(private discount: DiscountService,\n                private logger: LogService) { }\n\n    transform(price: number): number {\n        if (price > 100) {\n            this.logger.logInfoMessage(`Large price discounted: ${price}`);\n        }\n        return this.discount.applyDiscount(price);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/common/discount.service.ts",
    "content": "import { Injectable, Inject } from \"@angular/core\";\nimport { LogService, LOG_SERVICE, LogLevel } from \"./log.service\";\n\n@Injectable()\nexport class DiscountService {\n    private discountValue: number = 10;\n\n    constructor(private logger: LogService) { }\n\n    public get discount(): number {\n        return this.discountValue;\n    }\n\n    public set discount(newValue: number) {\n        this.discountValue = newValue || 0;\n    }\n\n    public applyDiscount(price: number) {\n        this.logger.logInfoMessage(`Discount ${this.discount}`\n            + ` applied to price: ${price}`);\n        return Math.max(price - this.discountValue, 5);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/common/discountAmount.directive.ts",
    "content": "import { Directive, HostBinding, Input,\n    SimpleChange, KeyValueDiffer, KeyValueDiffers,\n    ChangeDetectorRef } from \"@angular/core\";\nimport { DiscountService } from \"./discount.service\";\n\n@Directive({\n    selector: \"td[pa-price]\",\n    exportAs: \"discount\"\n})\nexport class PaDiscountAmountDirective {\n    private differ: KeyValueDiffer<any, any>;\n\n    constructor(private keyValueDiffers: KeyValueDiffers,\n        private changeDetector: ChangeDetectorRef,\n        private discount: DiscountService) { }\n\n    @Input(\"pa-price\")\n    originalPrice: number;\n\n    discountAmount: number;\n\n    ngOnInit() {\n        this.differ =\n            this.keyValueDiffers.find(this.discount).create();\n    }\n\n    ngOnChanges(changes: { [property: string]: SimpleChange }) {\n        if (changes[\"originalPrice\"] != null) {\n            this.updateValue();\n        }\n    }\n\n    ngDoCheck() {\n        if (this.differ.diff(this.discount) != null) {\n            this.updateValue();\n        }\n    }\n\n    private updateValue() {\n        this.discountAmount = this.originalPrice\n            - this.discount.applyDiscount(this.originalPrice);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/common/iterator.directive.ts",
    "content": "import {\n    Directive, ViewContainerRef, TemplateRef,\n    Input, SimpleChange, IterableDiffer, IterableDiffers,\n    ChangeDetectorRef, ViewRef, IterableChangeRecord\n} from \"@angular/core\";\n\n@Directive({\n    selector: \"[paForOf]\"\n})\nexport class PaIteratorDirective {\n    private differ: IterableDiffer<any>;\n    private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n    constructor(private container: ViewContainerRef,\n        private template: TemplateRef<Object>,\n        private differs: IterableDiffers,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    @Input(\"paForOf\")\n    dataSource: any;\n\n    ngOnInit() {\n        this.differ =\n            <IterableDiffer<any>>this.differs.find(this.dataSource).create();\n    }\n\n    ngDoCheck() {\n        let changes = this.differ.diff(this.dataSource);\n        if (changes != null) {\n\n            let arr: IterableChangeRecord<any>[] = [];\n            changes.forEachAddedItem(addition => arr.push(addition));\n            arr.forEach(addition => {\n                let context = new PaIteratorContext(addition.item,\n                    addition.currentIndex, arr.length);\n                context.view = this.container.createEmbeddedView(this.template,\n                    context);\n                this.views.set(addition.trackById, context);\n            });\n            let removals = false;\n            changes.forEachRemovedItem(removal => {\n                removals = true;\n                let context = this.views.get(removal.trackById);\n                if (context != null) {\n                    this.container.remove(this.container.indexOf(context.view));\n                    this.views.delete(removal.trackById);\n                }\n            });\n            if (removals) {\n                let index = 0;\n                this.views.forEach(context =>\n                    context.setData(index++, this.views.size));\n            }\n        }\n    }\n}\n\nclass PaIteratorContext {\n    index: number;\n    odd: boolean; even: boolean;\n    first: boolean; last: boolean;\n    view: ViewRef;\n\n    constructor(public $implicit: any,\n            public position: number, total: number ) {\n        this.setData(position, total);\n    }\n\n    setData(index: number, total: number) {\n        this.index = index;\n        this.odd = index % 2 == 1;\n        this.even = !this.odd;\n        this.first = index == 0;\n        this.last = index == total - 1;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/common/log.service.ts",
    "content": "import { Injectable, InjectionToken } from \"@angular/core\";\n\nexport const LOG_SERVICE = new InjectionToken(\"logger\");\nexport const LOG_LEVEL = new InjectionToken(\"log_level\");\n\nexport enum LogLevel {\n    DEBUG, INFO, ERROR\n}\n\n@Injectable()\nexport class LogService {\n    minimumLevel: LogLevel = LogLevel.INFO;\n\n    logInfoMessage(message: string) {\n        this.logMessage(LogLevel.INFO, message);\n    }\n\n    logDebugMessage(message: string) {\n        this.logMessage(LogLevel.DEBUG, message);\n    }\n\n    logErrorMessage(message: string) {\n        this.logMessage(LogLevel.ERROR, message);\n    }\n\n    logMessage(level: LogLevel, message: string) {\n        if (level >= this.minimumLevel) {\n            console.log(`Message (${LogLevel[level]}): ${message}`);\n        }\n    }\n}\n\n@Injectable()\nexport class SpecialLogService extends LogService {\n\n    constructor() {\n        super()\n        this.minimumLevel = LogLevel.DEBUG;\n    }\n\n    logMessage(level: LogLevel, message: string) {\n        if (level >= this.minimumLevel) {\n            console.log(`Special Message (${LogLevel[level]}): ${message}`);\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/common/structure.directive.ts",
    "content": "import {\n  Directive, SimpleChange, ViewContainerRef, TemplateRef, Input\n} from \"@angular/core\";\n\n@Directive({\n  selector: \"[paIf]\"\n})\nexport class PaStructureDirective {\n\n  constructor(private container: ViewContainerRef,\n      private template: TemplateRef<Object>) { }\n\n  @Input(\"paIf\")\n  expressionResult: boolean;\n\n  ngOnChanges(changes: { [property: string]: SimpleChange }) {\n      let change = changes[\"expressionResult\"];\n      if (!change.isFirstChange() && !change.currentValue) {\n          this.container.clear();\n      } else if (change.currentValue) {\n          this.container.createEmbeddedView(this.template);\n      }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/common/twoway.directive.ts",
    "content": "import { Input, Output, EventEmitter, Directive,\n  HostBinding, HostListener, SimpleChange } from \"@angular/core\";\n\n@Directive({\n  selector: \"input[paModel]\",\n  exportAs: \"paModel\"\n})\nexport class PaModel {\n\n  direction: string = \"None\";\n\n  @Input(\"paModel\")\n  modelProperty: string;\n\n  @HostBinding(\"value\")\n  fieldValue: string = \"\";\n\n  ngOnChanges(changes: { [property: string]: SimpleChange }) {\n      let change = changes[\"modelProperty\"];\n      if (change.currentValue != this.fieldValue) {\n          this.fieldValue = changes[\"modelProperty\"].currentValue || \"\";\n          this.direction = \"Model\";\n      }\n  }\n\n  @Output(\"paModelChange\")\n  update = new EventEmitter<string>();\n\n  @HostListener(\"input\", [\"$event.target.value\"])\n  updateValue(newValue: string) {\n      this.fieldValue = newValue;\n      this.update.emit(newValue);\n      this.direction = \"Element\";\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/common/valueDisplay.directive.ts",
    "content": "import { Directive, InjectionToken, Inject,\n    HostBinding, Host, Optional} from \"@angular/core\";\n\nexport const VALUE_SERVICE = new InjectionToken(\"value_service\");\n\n@Directive({\nselector: \"[paDisplayValue]\"\n})\nexport class PaDisplayValueDirective {\n\nconstructor( @Inject(VALUE_SERVICE) @Host() @Optional() serviceValue: string) {\n   this.elementContent = serviceValue || \"No Value\";\n}\n\n@HostBinding(\"textContent\")\nelementContent: string;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/component.ts",
    "content": "import { Component } from \"@angular/core\";\n//import { Model } from \"./repository.model\";\n//import { Product } from \"./product.model\";\n//import { ProductFormGroup } from \"./form.model\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"template.html\"\n})\nexport class ProductComponent {\n    //model: Model = new Model();\n\n    //constructor(public model: Model) { }\n\n    //addProduct(p: Product) {\n    //    this.model.saveProduct(p);\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/components/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/components/app.component.html",
    "content": "<div class=\"bg-primary text-center text-white p-2\">\n  Hello, World\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/components/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n//debugger;\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'example';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/components/components.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { CommonModule } from \"../common/common.module\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\"\nimport { PaDiscountDisplayComponent } from \"./discountDisplay.component\";\nimport { PaDiscountEditorComponent } from \"./discountEditor.component\";\nimport { ProductFormComponent } from \"./productForm.component\";\nimport { ProductTableComponent } from \"./productTable.component\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ReactiveFormsModule, CommonModule],\n    declarations: [PaDiscountDisplayComponent, PaDiscountEditorComponent,\n        ProductFormComponent, ProductTableComponent],\n    exports: [ProductFormComponent, ProductTableComponent]\n})\nexport class ComponentsModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/components/discountDisplay.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"../common/discount.service\";\n\n@Component({\n  selector: \"paDiscountDisplay\",\n  template: `<div class=\"bg-info text-white p-2\">\n                The discount is {{discounter.discount}}\n               </div>`\n})\nexport class PaDiscountDisplayComponent {\n\n  constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/components/discountEditor.component.ts",
    "content": "import { Component, Input } from \"@angular/core\";\nimport { DiscountService } from \"../common/discount.service\";\n\n@Component({\n    selector: \"paDiscountEditor\",\n    template: `<div class=\"form-group\">\n                   <label>Discount</label>\n                   <input [(ngModel)]=\"discounter.discount\"\n                        class=\"form-control\" type=\"number\" />\n               </div>`\n})\nexport class PaDiscountEditorComponent {\n\n    constructor(public discounter: DiscountService) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/components/productForm.component.css",
    "content": "div {\n    background-color: lightcoral;\n}\n:host:hover {\n    font-size: 25px;\n}\n:host-context(.angularApp) input {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/components/productForm.component.html",
    "content": "<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n    <div class=\"form-group\">\n        <label>Name</label>\n        <input class=\"form-control\"\n            name=\"name\" [(ngModel)]=\"newProduct.name\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Category</label>\n        <input class=\"form-control\"\n            name=\"category\" [(ngModel)]=\"newProduct.category\" />\n    </div>\n    <div class=\"form-group\">\n        <label>Price</label>\n        <input class=\"form-control\"\n            name=\"name\" [(ngModel)]=\"newProduct.price\" />\n    </div>\n    <button class=\"btn btn-primary\" type=\"submit\">\n            Create\n    </button>\n</form>\n\n<!-- <div class=\"bg-info text-white m-2 p-2\">\n    View Child Value: <span paDisplayValue></span>\n</div>\n<div class=\"bg-info text-white m-2 p-2\">\n    Content Child Value: <ng-content></ng-content>\n</div> -->\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/components/productForm.component.ts",
    "content": "import { Component, Output, EventEmitter, ViewEncapsulation,\n    Inject, SkipSelf } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { VALUE_SERVICE } from \"../common/valueDisplay.directive\";\n\n@Component({\n    selector: \"paProductForm\",\n    templateUrl: \"productForm.component.html\",\n    viewProviders: [{ provide: VALUE_SERVICE, useValue: \"Oranges\" }]\n})\nexport class ProductFormComponent {\n    newProduct: Product = new Product();\n\n    constructor(private model: Model,\n            @Inject(VALUE_SERVICE) @SkipSelf() private serviceValue: string) {\n        console.log(\"Service Value: \" + serviceValue);\n    }\n\n    submitForm(form: any) {\n        this.model.saveProduct(this.newProduct);\n        this.newProduct = new Product();\n        form.reset();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/components/productTable.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n    <thead>\n        <tr><th></th><th>Name</th><th>Category</th><th>Price</th><th></th></tr>\n    </thead>\n    <tbody>\n        <tr *paFor=\"let item of getProducts(); let i = index\">\n            <td>{{i + 1}}</td>\n            <td>{{item.name}}</td>\n            <td>{{item.category}}</td>\n            <td [pa-price]=\"item.price\" #discount=\"discount\">\n                {{ discount.discountAmount | currency:\"USD\":\"symbol\"}}\n            </td>\n            <td class=\"text-center\">\n                <button class=\"btn btn-danger btn-sm\"\n                        (click)=\"deleteProduct(item.id)\">\n                    Delete\n                </button>\n            </td>\n        </tr>\n    </tbody>\n</table>\n\n<!-- <paDiscountEditor></paDiscountEditor> -->\n<!-- <paDiscountDisplay></paDiscountDisplay> -->\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/components/productTable.component.ts",
    "content": "import { Component, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { Product } from \"../model/product.model\";\nimport { DiscountService } from \"../common/discount.service\";\nimport { LogService } from \"../common/log.service\";\n\n@Component({\n    selector: \"paProductTable\",\n    templateUrl: \"productTable.component.html\",\n    providers:[LogService]\n\n})\nexport class ProductTableComponent {\n\n    constructor(private dataModel: Model) { }\n\n    getProduct(key: number): Product {\n        return this.dataModel.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.dataModel.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.dataModel.deleteProduct(key);\n    }\n\n    taxRate: number = 0;\n    dateObject: Date = new Date(2020, 1, 20);\n    dateString: string = \"2020-02-20T00:00:00.000Z\";\n    dateNumber: number = 1582156800000;\n\n    selectMap = {\n        \"Watersports\": \"stay dry\",\n        \"Soccer\": \"score goals\",\n        \"other\": \"have fun\"\n    }\n\n    numberMap = {\n        \"=1\": \"one product\",\n        \"=2\": \"two products\",\n        \"other\": \"# products\"\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/components/toggleView.component.html",
    "content": "<div class=\"checkbox\">\n    <label>\n        <input type=\"checkbox\" [(ngModel)]=\"showContent\" />\n        Show Content\n    </label>\n</div>\n<ng-content *ngIf=\"showContent\"></ng-content>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/components/toggleView.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paToggleView\",\n    templateUrl: \"toggleView.component.html\"\n})\nexport class PaToggleView {\n\n    showContent: boolean = true;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/model/datasource.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class SimpleDataSource {\n    private data:Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n        new Product(1, \"Kayak\", \"Watersports\", 275),\n        new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n        new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n        new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n        new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/model/form.model.ts",
    "content": "import { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { LimitValidator } from \"./limit.formvalidator\";\n\nexport class ProductFormControl extends FormControl {\n    label: string;\n    modelProperty: string;\n\n    constructor(label:string, property:string, value: any, validator: any) {\n        super(value, validator);\n        this.label = label;\n        this.modelProperty = property;\n    }\n\n    getValidationMessages() {\n        let messages: string[] = [];\n        if (this.errors) {\n            for (let errorName in this.errors) {\n                switch (errorName) {\n                    case \"required\":\n                        messages.push(`You must enter a ${this.label}`);\n                        break;\n                    case \"minlength\":\n                        messages.push(`A ${this.label} must be at least\n                            ${this.errors['minlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"maxlength\":\n                        messages.push(`A ${this.label} must be no more than\n                            ${this.errors['maxlength'].requiredLength}\n                            characters`);\n                        break;\n                    case \"pattern\":\n                        messages.push(`The ${this.label} contains\n                             illegal characters`);\n                        break;\n                    case \"limit\":\n                        messages.push(`A ${this.label} cannot be more\n                            than ${this.errors['limit'].limit}`);\n                        break;\n                }\n            }\n        }\n        return messages;\n    }\n}\n\nexport class ProductFormGroup extends FormGroup {\n\n    constructor() {\n        super({\n            name: new ProductFormControl(\"Name\", \"name\", \"\", Validators.required),\n\n            category: new ProductFormControl(\"Category\", \"category\", \"\",\n                Validators.compose([Validators.required,\n                    Validators.pattern(\"^[A-Za-z ]+$\"),\n                    Validators.minLength(3),\n                    Validators.maxLength(10)])),\n\n            price: new ProductFormControl(\"Price\", \"price\", \"\",\n                Validators.compose([Validators.required,\n                    LimitValidator.Limit(100),\n                    Validators.pattern(\"^[0-9\\.]+$\")]))\n        });\n    }\n\n    get productControls(): ProductFormControl[] {\n        return Object.keys(this.controls)\n            .map(k => this.controls[k] as ProductFormControl);\n    }\n\n    getValidationMessages(name: string): string[] {\n        return (this.controls['name'] as ProductFormControl).getValidationMessages();\n    }\n\n    getFormValidationMessages() : string[] {\n        let messages: string[] = [];\n        Object.values(this.controls).forEach(c =>\n            messages.push(...(c as ProductFormControl).getValidationMessages()));\n        return messages;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/model/limit.formvalidator.ts",
    "content": "import { FormControl } from \"@angular/forms\";\n\nexport class LimitValidator {\n\n    static Limit(limit:number) {\n        return (control:FormControl) : {[key: string]: any} => {\n            let val = Number(control.value);\n            if (val != NaN && val > limit) {\n                return {\"limit\": {\"limit\": limit, \"actualValue\": val}};\n            } else {\n                return null;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { SimpleDataSource } from \"./datasource.model\";\nimport { Model } from \"./repository.model\";\n\n@NgModule({\n    providers: [Model, SimpleDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/model/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n      public name?: string,\n      public category?: string,\n      public price?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { SimpleDataSource } from \"./datasource.model\";\n\n@Injectable()\nexport class Model {\n    //private dataSource: SimpleDataSource;\n    private products: Product[];\n    private locator = (p:Product, id:number) => p.id == id;\n\n    constructor(private dataSource: SimpleDataSource) {\n        //this.dataSource = new SimpleDataSource();\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n\n    swapProduct() {\n      let p = this.products.shift();\n      this.products.push(new Product(p.id, p.name, p.category, p.price));\n  }\n\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/app/template.html",
    "content": "<div class=\"row m-2\">\n    <div class=\"col-4 p-2\">\n      <paProductForm>\n        <span paDisplayValue></span>\n      </paProductForm>\n    </div>\n    <div class=\"col-8 p-2\">\n      <paProductTable></paProductTable>\n    </div>\n  </div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Example</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2 row\">\n    <div class=\"col-8 p-2\">\n        <paProductTable></paProductTable>\n    </div>\n    <div class=\"col-4 p-2\">\n        <paProductForm></paProductForm>\n    </div>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 21/example/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'exampleApp';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n//import { AppComponent } from './app.component';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\n\n@NgModule({\n  imports: [BrowserModule, ModelModule, CoreModule, MessageModule],\n  bootstrap: [TableComponent, FormComponent, MessageComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { SharedState } from \"./sharedState.model\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule],\n    declarations: [TableComponent, FormComponent],\n    exports: [ModelModule, TableComponent, FormComponent],\n    providers: [SharedState]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n  <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n  <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" name=\"name\"\n             [(ngModel)]=\"product.name\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Category</label>\n      <input class=\"form-control\" name=\"category\"\n             [(ngModel)]=\"product.category\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Price</label>\n      <input class=\"form-control\" name=\"price\"\n             [(ngModel)]=\"product.price\"\n             required pattern=\"^[0-9\\.]+$\" />\n  </div>\n\n  <button type=\"submit\" class=\"btn btn-primary m-1\"\n          [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n      {{editing ? \"Save\" : \"Create\"}}\n  </button>\n  <button type=\"reset\" class=\"btn btn-secondary m-1\">Cancel</button>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\"\nimport { MODES, SharedState } from \"./sharedState.model\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model,\n            private state: SharedState) { }\n\n    get editing(): boolean {\n        return this.state.mode == MODES.EDIT;\n    }\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.product = new Product();\n            form.reset();\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/core/sharedState.model.ts",
    "content": "export enum MODES {\n  CREATE, EDIT\n}\n\nexport class SharedState {\n  mode: MODES = MODES.EDIT;\n  id: number;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n  <tr>\n      <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n  </tr>\n  <tr *ngFor=\"let item of getProducts()\">\n      <td>{{item.id}}</td>\n      <td>{{item.name}}</td>\n      <td>{{item.category}}</td>\n      <td>{{item.price | currency:\"USD\" }}</td>\n      <td class=\"text-center\">\n          <button class=\"btn btn-danger btn-sm mr-1\"\n                  (click)=\"deleteProduct(item.id)\">\n              Delete\n          </button>\n          <button class=\"btn btn-warning btn-sm\" (click)=\"editProduct(item.id)\">\n              Edit\n          </button>\n      </td>\n  </tr>\n</table>\n<button class=\"btn btn-primary m-1\" (click)=\"createProduct()\">\n  Create New Product\n</button>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState } from \"./sharedState.model\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model, private state: SharedState) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    editProduct(key: number) {\n        this.state.id = key;\n        this.state.mode = MODES.EDIT;\n    }\n\n    createProduct() {\n        this.state.id = undefined;\n        this.state.mode = MODES.CREATE;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService) {\n        messageService.registerMessageHandler(m => this.lastMessage = m);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n  constructor(public text: string,\n      public error: boolean = false) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\n\n@NgModule({\n    imports: [BrowserModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageService {\n    private handler: (m: Message) => void;\n\n    reportMessage(msg: Message) {\n        if (this.handler != null) {\n            this.handler(msg);\n        }\n    }\n\n    registerMessageHandler(handler: (m: Message) => void) {\n        this.handler = handler;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\n\n@NgModule({\n    providers: [Model, StaticDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n              public name?: string,\n              public category?: string,\n              public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: StaticDataSource) {\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <paMessages></paMessages>\n  <div class=\"row m-2\">\n    <div class=\"col-8 p-2\">\n      <paTable></paTable>\n    </div>\n    <div class=\"col-4 p-2\">\n      <paForm></paForm>\n    </div>\n  </div>\n</body>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 22/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'exampleApp';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n//import { AppComponent } from './app.component';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\n\n@NgModule({\n  imports: [BrowserModule, ModelModule, CoreModule, MessageModule],\n  bootstrap: [TableComponent, FormComponent, MessageComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES } from \"./sharedState.model\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule],\n    declarations: [TableComponent, FormComponent, StatePipe],\n    exports: [ModelModule, TableComponent, FormComponent],\n    providers: [{\n        provide: SHARED_STATE,\n        deps: [MessageService, Model],\n        useFactory: (messageService, model) => {\n            let subject = new Subject<SharedState>();\n            subject.subscribe(m => messageService.reportMessage(\n                    new Message(MODES[m.mode] + (m.id != undefined\n                        ? ` ${model.getProduct(m.id).name}` : \"\")))\n                );\n            return subject;\n        }\n    }]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n  <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n  Last Event: {{ stateEvents | async | formatState }}\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n  <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" name=\"name\"\n             [(ngModel)]=\"product.name\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Category</label>\n      <input class=\"form-control\" name=\"category\"\n             [(ngModel)]=\"product.category\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Price</label>\n      <input class=\"form-control\" name=\"price\"\n             [(ngModel)]=\"product.price\"\n             required pattern=\"^[0-9\\.]+$\" />\n  </div>\n\n  <button type=\"submit\" class=\"btn btn-primary m-1\"\n          [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n      {{editing ? \"Save\" : \"Create\"}}\n  </button>\n  <button type=\"reset\" class=\"btn btn-secondary m-1\">Cancel</button>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observable } from \"rxjs\";\nimport { filter, map, distinctUntilChanged, skipWhile } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public stateEvents: Observable<SharedState>) {\n            stateEvents\n            .pipe(skipWhile(state => state.mode == MODES.EDIT))\n            .pipe(distinctUntilChanged((firstState, secondState) =>\n                firstState.mode == secondState.mode\n                    && firstState.id == secondState.id))\n            .subscribe(update => {\n                this.product = new Product();\n                if (update.id != undefined) {\n                    Object.assign(this.product, this.model.getProduct(update.id));\n                }\n                this.editing = update.mode == MODES.EDIT;\n            });\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.product = new Product();\n            form.reset();\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n  <tr>\n      <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n  </tr>\n  <tr *ngFor=\"let item of getProducts()\">\n      <td>{{item.id}}</td>\n      <td>{{item.name}}</td>\n      <td>{{item.category}}</td>\n      <td>{{item.price | currency:\"USD\" }}</td>\n      <td class=\"text-center\">\n          <button class=\"btn btn-danger btn-sm mr-1\"\n                  (click)=\"deleteProduct(item.id)\">\n              Delete\n          </button>\n          <button class=\"btn btn-warning btn-sm\" (click)=\"editProduct(item.id)\">\n              Edit\n          </button>\n      </td>\n  </tr>\n</table>\n<button class=\"btn btn-primary m-1\" (click)=\"createProduct()\">\n  Create New Product\n</button>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observer } from \"rxjs\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public observer: Observer<SharedState>) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    editProduct(key: number) {\n        this.observer.next(new SharedState(MODES.EDIT, key));\n    }\n\n    createProduct() {\n        this.observer.next(new SharedState(MODES.CREATE));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n  constructor(public text: string,\n      public error: boolean = false) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\n\n@NgModule({\n    imports: [BrowserModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\n\n@NgModule({\n    providers: [Model, StaticDataSource]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n              public name?: string,\n              public category?: string,\n              public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { StaticDataSource } from \"./static.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[];\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: StaticDataSource) {\n        this.products = new Array<Product>();\n        this.dataSource.getData().forEach(p => this.products.push(p));\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            product.id = this.generateID();\n            this.products.push(product);\n        } else {\n            let index = this.products\n                .findIndex(p => this.locator(p, product.id));\n            this.products.splice(index, 1, product);\n        }\n    }\n\n    deleteProduct(id: number) {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            this.products.splice(index, 1);\n        }\n    }\n\n    private generateID(): number {\n        let candidate = 100;\n        while (this.getProduct(candidate) != null) {\n            candidate++;\n        }\n        return candidate;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <paMessages></paMessages>\n  <div class=\"row m-2\">\n    <div class=\"col-8 p-2\">\n      <paTable></paTable>\n    </div>\n    <div class=\"col-4 p-2\">\n      <paForm></paForm>\n    </div>\n  </div>\n</body>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 23/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/restData.js",
    "content": "module.exports = function () {\n  var data = {\n      products: [\n          { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n          { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n          { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n          { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n          { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n          { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n          { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n          { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n          { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n      ]\n  }\n  return data\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/app.component.html",
    "content": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<style>\n  :host {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 14px;\n    color: #333;\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 8px 0;\n  }\n\n  p {\n    margin: 0;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  .toolbar {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 60px;\n    display: flex;\n    align-items: center;\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n  }\n\n  .toolbar img {\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo {\n    height: 40px;\n    margin: 0 16px;\n  }\n\n  .toolbar #twitter-logo:hover {\n    opacity: 0.8;\n  }\n\n  .content {\n    display: flex;\n    margin: 82px auto 32px;\n    padding: 0 16px;\n    max-width: 960px;\n    flex-direction: column;\n    align-items: center;\n  }\n\n  svg.material-icons {\n    height: 24px;\n    width: auto;\n  }\n\n  svg.material-icons:not(:last-child) {\n    margin-right: 8px;\n  }\n\n  .card svg.material-icons path {\n    fill: #888;\n  }\n\n  .card-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    margin-top: 16px;\n  }\n\n  .card {\n    border-radius: 4px;\n    border: 1px solid #eee;\n    background-color: #fafafa;\n    height: 40px;\n    width: 200px;\n    margin: 0 8px 16px;\n    padding: 16px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    transition: all 0.2s ease-in-out;\n    line-height: 24px;\n  }\n\n  .card-container .card:not(:last-child) {\n    margin-right: 0;\n  }\n\n  .card.card-small {\n    height: 16px;\n    width: 168px;\n  }\n\n  .card-container .card:not(.highlight-card) {\n    cursor: pointer;\n  }\n\n  .card-container .card:not(.highlight-card):hover {\n    transform: translateY(-3px);\n    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n  }\n\n  .card-container .card:not(.highlight-card):hover .material-icons path {\n    fill: rgb(105, 103, 103);\n  }\n\n  .card.highlight-card {\n    background-color: #1976d2;\n    color: white;\n    font-weight: 600;\n    border: none;\n    width: auto;\n    min-width: 30%;\n    position: relative;\n  }\n\n  .card.card.highlight-card span {\n    margin-left: 60px;\n  }\n\n  svg#rocket {\n    width: 80px;\n    position: absolute;\n    left: -10px;\n    top: -24px;\n  }\n\n  svg#rocket-smoke {\n    height: calc(100vh - 95px);\n    position: absolute;\n    top: 10px;\n    right: 180px;\n    z-index: -10;\n  }\n\n  a,\n  a:visited,\n  a:hover {\n    color: #1976d2;\n    text-decoration: none;\n  }\n\n  a:hover {\n    color: #125699;\n  }\n\n  .terminal {\n    position: relative;\n    width: 80%;\n    max-width: 600px;\n    border-radius: 6px;\n    padding-top: 45px;\n    margin-top: 8px;\n    overflow: hidden;\n    background-color: rgb(15, 15, 16);\n  }\n\n  .terminal::before {\n    content: \"\\2022 \\2022 \\2022\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 4px;\n    background: rgb(58, 58, 58);\n    color: #c2c3c4;\n    width: 100%;\n    font-size: 2rem;\n    line-height: 0;\n    padding: 14px 0;\n    text-indent: 4px;\n  }\n\n  .terminal pre {\n    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n    color: white;\n    padding: 0 1rem 1rem;\n    margin: 0;\n  }\n\n  .circle-link {\n    height: 40px;\n    width: 40px;\n    border-radius: 40px;\n    margin: 8px;\n    background-color: white;\n    border: 1px solid #eeeeee;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n    transition: 1s ease-out;\n  }\n\n  .circle-link:hover {\n    transform: translateY(-0.25rem);\n    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n  }\n\n  footer {\n    margin-top: 8px;\n    display: flex;\n    align-items: center;\n    line-height: 20px;\n  }\n\n  footer a {\n    display: flex;\n    align-items: center;\n  }\n\n  .github-star-badge {\n    color: #24292e;\n    display: flex;\n    align-items: center;\n    font-size: 12px;\n    padding: 3px 10px;\n    border: 1px solid rgba(27,31,35,.2);\n    border-radius: 3px;\n    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n    margin-left: 4px;\n    font-weight: 600;\n    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n  }\n\n  .github-star-badge:hover {\n    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n    border-color: rgba(27,31,35,.35);\n    background-position: -.5em;\n  }\n\n  .github-star-badge .material-icons {\n    height: 16px;\n    width: 16px;\n    margin-right: 4px;\n  }\n\n  svg#clouds {\n    position: fixed;\n    bottom: -160px;\n    left: -230px;\n    z-index: -10;\n    width: 1920px;\n  }\n\n\n  /* Responsive Styles */\n  @media screen and (max-width: 767px) {\n\n    .card-container > *:not(.circle-link) ,\n    .terminal {\n      width: 100%;\n    }\n\n    .card:not(.highlight-card) {\n      height: 16px;\n      margin: 8px 0;\n    }\n\n    .card.highlight-card span {\n      margin-left: 72px;\n    }\n\n    svg#rocket-smoke {\n      right: 120px;\n      transform: rotate(-5deg);\n    }\n  }\n\n  @media screen and (max-width: 575px) {\n    svg#rocket-smoke {\n      display: none;\n      visibility: hidden;\n    }\n  }\n</style>\n\n<!-- Toolbar -->\n<div class=\"toolbar\" role=\"banner\">\n  <img\n    width=\"40\"\n    alt=\"Angular Logo\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n  />\n  <span>Welcome</span>\n    <div class=\"spacer\"></div>\n    <a aria-label=\"Angular on twitter\" target=\"_blank\" rel=\"noopener\" href=\"https://twitter.com/angular\" title=\"Twitter\">\n      <svg id=\"twitter-logo\" height=\"24\" data-name=\"Logo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\">\n        <rect width=\"400\" height=\"400\" fill=\"none\"/>\n        <path d=\"M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23\" fill=\"#fff\"/>\n      </svg>\n    </a>\n</div>\n\n<div class=\"content\" role=\"main\">\n\n  <!-- Highlight Card -->\n  <div class=\"card highlight-card card-small\">\n\n    <svg id=\"rocket\" alt=\"Rocket Ship\" xmlns=\"http://www.w3.org/2000/svg\" width=\"101.678\" height=\"101.678\" viewBox=\"0 0 101.678 101.678\">\n      <g id=\"Group_83\" data-name=\"Group 83\" transform=\"translate(-141 -696)\">\n        <circle id=\"Ellipse_8\" data-name=\"Ellipse 8\" cx=\"50.839\" cy=\"50.839\" r=\"50.839\" transform=\"translate(141 696)\" fill=\"#dd0031\"/>\n        <g id=\"Group_47\" data-name=\"Group 47\" transform=\"translate(165.185 720.185)\">\n          <path id=\"Path_33\" data-name=\"Path 33\" d=\"M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z\" transform=\"translate(0.371 3.363)\" fill=\"#fff\"/>\n          <path id=\"Path_34\" data-name=\"Path 34\" d=\"M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z\" transform=\"translate(0 0.005)\" fill=\"#fff\"/>\n        </g>\n      </g>\n    </svg>\n\n    <span>{{ title }} app is running!</span>\n\n    <svg id=\"rocket-smoke\" alt=\"Rocket Ship Smoke\" xmlns=\"http://www.w3.org/2000/svg\" width=\"516.119\" height=\"1083.632\" viewBox=\"0 0 516.119 1083.632\">\n      <path id=\"Path_40\" data-name=\"Path 40\" d=\"M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z\" transform=\"translate(-147.025 -140.939)\" fill=\"#f5f5f5\"/>\n    </svg>\n\n  </div>\n\n  <!-- Resources -->\n  <h2>Resources</h2>\n  <p>Here are some links to help you get started:</p>\n\n  <div class=\"card-container\">\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"/></svg>\n\n      <span>Learn Angular</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/cli\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"/></svg>\n\n      <span>CLI Documentation</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n    <a class=\"card\" target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"/></svg>\n\n      <span>Angular Blog</span>\n\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n    </a>\n\n  </div>\n\n  <!-- Next Steps -->\n  <h2>Next Steps</h2>\n  <p>What do you want to do next with your app?</p>\n\n  <input type=\"hidden\" #selection>\n\n  <div class=\"card-container\">\n    <div class=\"card card-small\" (click)=\"selection.value = 'component'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>New Component</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'material'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Angular Material</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'pwa'\" tabindex=\"0\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add PWA Support</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'dependency'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Add Dependency</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'test'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Run and Watch Tests</span>\n    </div>\n\n    <div class=\"card card-small\" (click)=\"selection.value = 'build'\" tabindex=\"0\">\n      <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>\n\n      <span>Build for Production</span>\n    </div>\n  </div>\n\n  <!-- Terminal -->\n  <div class=\"terminal\" [ngSwitch]=\"selection.value\">\n      <pre *ngSwitchDefault>ng generate component xyz</pre>\n      <pre *ngSwitchCase=\"'material'\">ng add @angular/material</pre>\n      <pre *ngSwitchCase=\"'pwa'\">ng add @angular/pwa</pre>\n      <pre *ngSwitchCase=\"'dependency'\">ng add _____</pre>\n      <pre *ngSwitchCase=\"'test'\">ng test</pre>\n      <pre *ngSwitchCase=\"'build'\">ng build --prod</pre>\n  </div>\n\n  <!-- Links -->\n  <div class=\"card-container\">\n    <a class=\"circle-link\" title=\"Animations\" href=\"https://angular.io/guide/animations\" target=\"_blank\" rel=\"noopener\">\n      <svg id=\"Group_20\" data-name=\"Group 20\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.813\" height=\"23.453\" viewBox=\"0 0 21.813 23.453\">\n        <path id=\"Path_15\" data-name=\"Path 15\" d=\"M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z\" transform=\"translate(-4088.702 -972.736)\" fill=\"#ffa726\"/>\n        <path id=\"Path_16\" data-name=\"Path 16\" d=\"M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z\" transform=\"translate(-4170.633 -972.736)\" fill=\"#fb8c00\"/>\n        <path id=\"Path_17\" data-name=\"Path 17\" d=\"M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1058.315)\" fill=\"#ffe0b2\"/>\n        <path id=\"Path_18\" data-name=\"Path 18\" d=\"M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1036.757)\" fill=\"#fff3e0\"/>\n        <path id=\"Path_19\" data-name=\"Path 19\" d=\"M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z\" transform=\"translate(-4125.003 -1015.199)\" fill=\"#fff\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"CLI\" href=\"https://cli.angular.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular CLI Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.762\" height=\"23.447\" viewBox=\"0 0 21.762 23.447\">\n        <g id=\"Group_21\" data-name=\"Group 21\" transform=\"translate(0)\">\n          <path id=\"Path_20\" data-name=\"Path 20\" d=\"M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-2649.48 -313.618)\" fill=\"#37474f\"/>\n          <path id=\"Path_21\" data-name=\"Path 21\" d=\"M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-2731.05 -313.618)\" fill=\"#263238\"/>\n          <path id=\"Path_22\" data-name=\"Path 22\" d=\"M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z\" transform=\"translate(-2687.274 -362.17)\" fill=\"#fff\"/>\n          <path id=\"Path_23\" data-name=\"Path 23\" d=\"M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z\" transform=\"translate(-2702.289 -380.631)\" fill=\"#fff\"/>\n          <rect id=\"Rectangle_12\" data-name=\"Rectangle 12\" width=\"3.517\" height=\"0.469\" transform=\"translate(9.709 13.744)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Augury\" href=\"https://augury.rangle.io/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Augury Logo\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <defs>\n          <clipPath id=\"clip-path\">\n            <rect id=\"Rectangle_13\" data-name=\"Rectangle 13\" width=\"10.338\" height=\"10.27\" fill=\"none\"/>\n          </clipPath>\n        </defs>\n        <g id=\"Group_25\" data-name=\"Group 25\" transform=\"translate(0)\">\n          <path id=\"Path_24\" data-name=\"Path 24\" d=\"M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-3769.274 -311.417)\" fill=\"#4a3493\"/>\n          <path id=\"Path_25\" data-name=\"Path 25\" d=\"M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-3851.207 -311.417)\" fill=\"#311b92\"/>\n          <g id=\"Group_24\" data-name=\"Group 24\" transform=\"translate(6.194 6.73)\" opacity=\"0.5\">\n            <g id=\"Group_23\" data-name=\"Group 23\" transform=\"translate(0 0)\">\n              <g id=\"Group_22\" data-name=\"Group 22\" clip-path=\"url(#clip-path)\">\n                <path id=\"Path_26\" data-name=\"Path 26\" d=\"M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3822.107 -368.821)\" fill=\"#fff\"/>\n              </g>\n            </g>\n          </g>\n          <path id=\"Path_27\" data-name=\"Path 27\" d=\"M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z\" transform=\"translate(-3814.311 -359.969)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Protractor\" href=\"https://www.protractortest.org/\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Angular Protractor Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"21.81\" height=\"23.447\" viewBox=\"0 0 21.81 23.447\">\n        <g id=\"Group_26\" data-name=\"Group 26\" transform=\"translate(0)\">\n          <path id=\"Path_28\" data-name=\"Path 28\" d=\"M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z\" transform=\"translate(-4609.274 -311.417)\" fill=\"#e13439\"/>\n          <path id=\"Path_29\" data-name=\"Path 29\" d=\"M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z\" transform=\"translate(-4691.207 -311.417)\" fill=\"#b52f32\"/>\n          <path id=\"Path_30\" data-name=\"Path 30\" d=\"M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z\" transform=\"translate(-4634.008 -355.852)\" fill=\"#fff\"/>\n        </g>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Find a Local Meetup\" href=\"https://www.meetup.com/find/?keywords=angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Meetup Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24.607\" height=\"23.447\" viewBox=\"0 0 24.607 23.447\">\n        <path id=\"logo--mSwarm\" d=\"M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z\" transform=\"translate(0 0.123)\" fill=\"#f64060\"/>\n      </svg>\n    </a>\n\n    <a class=\"circle-link\" title=\"Join the Conversation on Gitter\" href=\"https://gitter.im/angular/angular\" target=\"_blank\" rel=\"noopener\">\n      <svg alt=\"Gitter Logo\" xmlns=\"http://www.w3.org/2000/svg\" width=\"19.447\" height=\"19.447\" viewBox=\"0 0 19.447 19.447\">\n        <g id=\"Group_40\" data-name=\"Group 40\" transform=\"translate(-1612 -405)\">\n          <rect id=\"Rectangle_19\" data-name=\"Rectangle 19\" width=\"19.447\" height=\"19.447\" transform=\"translate(1612 405)\" fill=\"#e60257\"/>\n          <g id=\"gitter\" transform=\"translate(1617.795 408.636)\">\n            <g id=\"Group_33\" data-name=\"Group 33\" transform=\"translate(0 0)\">\n              <rect id=\"Rectangle_15\" data-name=\"Rectangle 15\" width=\"1.04\" height=\"9.601\" transform=\"translate(2.304 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_16\" data-name=\"Rectangle 16\" width=\"1.04\" height=\"9.601\" transform=\"translate(4.607 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_17\" data-name=\"Rectangle 17\" width=\"1.04\" height=\"4.648\" transform=\"translate(6.91 2.324)\" fill=\"#fff\"/>\n              <rect id=\"Rectangle_18\" data-name=\"Rectangle 18\" width=\"1.04\" height=\"6.971\" transform=\"translate(0 0)\" fill=\"#fff\"/>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </a>\n  </div>\n\n  <!-- Footer -->\n  <footer>\n      Love Angular?&nbsp;\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\"> Give our repo a star.\n        <div class=\"github-star-badge\">\n            <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"/></svg>\n          Star\n        </div>\n      </a>\n      <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"noopener\">\n        <svg class=\"material-icons\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"#1976d2\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n      </a>\n  </footer>\n\n  <svg id=\"clouds\" alt=\"Gray Clouds Background\" xmlns=\"http://www.w3.org/2000/svg\" width=\"2611.084\" height=\"485.677\" viewBox=\"0 0 2611.084 485.677\">\n    <path id=\"Path_39\" data-name=\"Path 39\" d=\"M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z\" transform=\"translate(142.69 -634.312)\" fill=\"#eee\"/>\n  </svg>\n\n</div>\n\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'exampleApp';\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n//import { AppComponent } from './app.component';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\n\n@NgModule({\n  imports: [BrowserModule, ModelModule, CoreModule, MessageModule],\n  bootstrap: [TableComponent, FormComponent, MessageComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES } from \"./sharedState.model\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule],\n    declarations: [TableComponent, FormComponent, StatePipe],\n    exports: [ModelModule, TableComponent, FormComponent],\n    providers: [{\n        provide: SHARED_STATE,\n        deps: [MessageService, Model],\n        useFactory: (messageService, model) => {\n            let subject = new Subject<SharedState>();\n            subject.subscribe(m => messageService.reportMessage(\n                    new Message(MODES[m.mode] + (m.id != undefined\n                        ? ` ${model.getProduct(m.id).name}` : \"\")))\n                );\n            return subject;\n        }\n    }]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n  <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n  Last Event: {{ stateEvents | async | formatState }}\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n  <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" name=\"name\"\n             [(ngModel)]=\"product.name\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Category</label>\n      <input class=\"form-control\" name=\"category\"\n             [(ngModel)]=\"product.category\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Price</label>\n      <input class=\"form-control\" name=\"price\"\n             [(ngModel)]=\"product.price\"\n             required pattern=\"^[0-9\\.]+$\" />\n  </div>\n\n  <button type=\"submit\" class=\"btn btn-primary m-1\"\n          [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n      {{editing ? \"Save\" : \"Create\"}}\n  </button>\n  <button type=\"reset\" class=\"btn btn-secondary m-1\">Cancel</button>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observable } from \"rxjs\";\nimport { filter, map, distinctUntilChanged, skipWhile } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public stateEvents: Observable<SharedState>) {\n            stateEvents\n            // .pipe(skipWhile(state => state.mode == MODES.EDIT))\n            // .pipe(distinctUntilChanged((firstState, secondState) =>\n            //     firstState.mode == secondState.mode\n            //         && firstState.id == secondState.id))\n            .subscribe(update => {\n                this.product = new Product();\n                if (update.id != undefined) {\n                    Object.assign(this.product, this.model.getProduct(update.id));\n                }\n                this.editing = update.mode == MODES.EDIT;\n            });\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.product = new Product();\n            form.reset();\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n  <tr>\n      <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n  </tr>\n  <tr *ngFor=\"let item of getProducts()\">\n      <td>{{item.id}}</td>\n      <td>{{item.name}}</td>\n      <td>{{item.category}}</td>\n      <td>{{item.price | currency:\"USD\" }}</td>\n      <td class=\"text-center\">\n          <button class=\"btn btn-danger btn-sm mr-1\"\n                  (click)=\"deleteProduct(item.id)\">\n              Delete\n          </button>\n          <button class=\"btn btn-warning btn-sm\" (click)=\"editProduct(item.id)\">\n              Edit\n          </button>\n      </td>\n  </tr>\n</table>\n<button class=\"btn btn-primary m-1\" (click)=\"createProduct()\">\n  Create New Product\n</button>\n<button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n  Generate HTTP Error\n</button>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Observer } from \"rxjs\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model,\n        @Inject(SHARED_STATE) public observer: Observer<SharedState>) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    editProduct(key: number) {\n        this.observer.next(new SharedState(MODES.EDIT, key));\n    }\n\n    createProduct() {\n        this.observer.next(new SharedState(MODES.CREATE));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n  constructor(public text: string,\n      public error: boolean = false) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\n\n@NgModule({\n    imports: [BrowserModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource,\n        { provide: REST_URL, useValue: `http://${location.hostname}:3500/products` }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n              public name?: string,\n              public category?: string,\n              public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        }).pipe(catchError((error: Response) =>\n             throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <paMessages></paMessages>\n  <div class=\"row m-2\">\n    <div class=\"col-8 p-2\">\n      <paTable></paTable>\n    </div>\n    <div class=\"col-4 p-2\">\n      <paForm></paForm>\n    </div>\n  </div>\n</body>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 24/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/restData.js",
    "content": "module.exports = function () {\n  var data = {\n      products: [\n          { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n          { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n          { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n          { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n          { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n          { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n          { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n          { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n          { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n      ]\n  }\n  return data\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { AppComponent } from './app.component';\nimport { routing } from \"./app.routing\";\n\n@NgModule({\n    imports: [BrowserModule, ModelModule, CoreModule, MessageModule, routing],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\n\nconst routes: Routes = [\n    { path: \"form/:mode/:id\", component: FormComponent },\n    { path: \"form/:mode\", component: FormComponent },\n    { path: \"\", component: TableComponent }]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\n//import { SharedState, SHARED_STATE } from \"./sharedState.model\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\n//import { MODES } from \"./sharedState.model\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe],\n    exports: [ModelModule, TableComponent, FormComponent],\n    //providers: [{\n    //    provide: SHARED_STATE,\n    //    deps: [MessageService, Model],\n    //    useFactory: (messageService, model) => {\n    //        return new Subject<SharedState>();\n    //    }\n    //}]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n  <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n  <!-- Last Event: {{ stateEvents | async | formatState }} -->\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n  <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" name=\"name\"\n             [(ngModel)]=\"product.name\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Category</label>\n      <input class=\"form-control\" name=\"category\"\n             [(ngModel)]=\"product.category\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Price</label>\n      <input class=\"form-control\" name=\"price\"\n             [(ngModel)]=\"product.price\"\n             required pattern=\"^[0-9\\.]+$\" />\n  </div>\n\n  <button type=\"submit\" class=\"btn btn-primary m-1\"\n          [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n      {{editing ? \"Save\" : \"Create\"}}\n  </button>\n  <button type=\"reset\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n          Cancel\n  </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(private model: Model, activeRoute: ActivatedRoute,\n            private router: Router) {\n\n        this.editing = activeRoute.snapshot.params[\"mode\"] == \"edit\";\n        let id = activeRoute.snapshot.params[\"id\"];\n        if (id != null) {\n            let name = activeRoute.snapshot.params[\"name\"];\n            let category = activeRoute.snapshot.params[\"category\"];\n            let price = activeRoute.snapshot.params[\"price\"];\n\n            if (name != null && category != null && price != null) {\n                this.product.id = id;\n                this.product.name = name;\n                this.product.category = category;\n                this.product.price = Number.parseFloat(price);\n            } else {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n            }\n        }\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            //this.product = new Product();\n            //form.reset();\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/core/table.component.html",
    "content": "<table class=\"table table-sm table-bordered table-striped\">\n  <tr>\n      <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n  </tr>\n  <tr *ngFor=\"let item of getProducts()\">\n      <td>{{item.id}}</td>\n      <td>{{item.name}}</td>\n      <td>{{item.category}}</td>\n      <td>{{item.price | currency:\"USD\" }}</td>\n      <td class=\"text-center\">\n          <button class=\"btn btn-danger btn-sm mr-1\"\n                  (click)=\"deleteProduct(item.id)\">\n              Delete\n          </button>\n          <button class=\"btn btn-warning btn-sm\"\n              [routerLink]=\"['/form', 'edit', item.id,\n                  {name: item.name, category: item.category, price: item.price}]\">\n              Edit\n          </button>\n      </td>\n  </tr>\n</table>\n<button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n  Create New Product\n</button>\n<button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n  Generate HTTP Error\n</button>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\n//import { MODES, SharedState, SHARED_STATE } from \"./sharedState.model\";\n//import { Observer } from \"rxjs\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n\n    constructor(private model: Model,\n        /*@Inject(SHARED_STATE) private observer: Observer<SharedState>*/) { }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts();\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    //editProduct(key: number) {\n    //    this.observer.next(new SharedState(MODES.EDIT, key));\n    //}\n\n    //createProduct() {\n    //    this.observer.next(new SharedState(MODES.CREATE));\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd\n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n  constructor(public text: string,\n      public error: boolean = false) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource,\n        { provide: REST_URL, useValue: `http://${location.hostname}:3500/products` }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n              public name?: string,\n              public category?: string,\n              public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        }).pipe(catchError((error: Response) =>\n             throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 25/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/restData.js",
    "content": "module.exports = function () {\n  var data = {\n      products: [\n          { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n          { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n          { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n          { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n          { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n          { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n          { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n          { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n          { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n      ]\n  }\n  return data\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/app.module.ts",
    "content": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { AppComponent } from './app.component';\nimport { routing } from \"./app.routing\";\n\n@NgModule({\n    imports: [BrowserModule, ModelModule, CoreModule, MessageModule, routing],\n    declarations: [AppComponent],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { NotFoundComponent } from \"./core/notFound.component\";\nimport { ProductCountComponent } from \"./core/productCount.component\";\nimport { CategoryCountComponent } from \"./core/categoryCount.component\";\n\nconst childRoutes: Routes = [\n    { path: \"products\", component: ProductCountComponent },\n    { path: \"categories\", component: CategoryCountComponent },\n    { path: \"\", component: ProductCountComponent }\n];\n\nconst routes: Routes = [\n    { path: \"form/:mode/:id\", component: FormComponent },\n    { path: \"form/:mode\", component: FormComponent },\n    { path: \"does\", redirectTo: \"/form/create\", pathMatch: \"prefix\" },\n    { path: \"table\", component: TableComponent, children: childRoutes },\n    { path: \"table/:category\", component: TableComponent, children: childRoutes },\n    { path: \"\", redirectTo: \"/table\", pathMatch: \"full\" },\n    { path: \"**\", component: NotFoundComponent }\n]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n  Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n  selector: \"paCategoryCount\",\n  template: `<div class=\"bg-primary p-2 text-white\">\n                  There are {{count}} categories\n             </div>`\n})\nexport class CategoryCountComponent {\n  private differ: KeyValueDiffer<any, any>;\n  count: number = 0;\n\n  constructor(private model: Model,\n      private keyValueDiffers: KeyValueDiffers,\n      private changeDetector: ChangeDetectorRef) { }\n\n  ngOnInit() {\n      this.differ = this.keyValueDiffers\n          .find(this.model.getProducts())\n          .create();\n  }\n\n  ngDoCheck() {\n      if (this.differ.diff(this.model.getProducts()) != null) {\n          this.count = this.model.getProducts()\n              .map(p => p.category)\n              .filter((category, index, array) => array.indexOf(category) == index)\n              .length;\n      }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n  <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n  <!-- Last Event: {{ stateEvents | async | formatState }} -->\n</div>\n\n<div *ngIf=\"editing\" class=\"p-2\">\n  <button class=\"btn btn-secondary m-1\"\n          [routerLink]=\"['/form', 'edit', model.getPreviousProductid(product.id)]\">\n      Previous\n  </button>\n  <button class=\"btn btn-secondary\"\n          [routerLink]=\"['/form', 'edit', model.getNextProductId(product.id)]\">\n      Next\n  </button>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\" (reset)=\"resetForm()\" >\n\n  <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" name=\"name\"\n             [(ngModel)]=\"product.name\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Category</label>\n      <input class=\"form-control\" name=\"category\"\n             [(ngModel)]=\"product.category\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Price</label>\n      <input class=\"form-control\" name=\"price\"\n             [(ngModel)]=\"product.price\"\n             required pattern=\"^[0-9\\.]+$\" />\n  </div>\n\n  <button type=\"submit\" class=\"btn btn-primary m-1\"\n          [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n      {{editing ? \"Save\" : \"Create\"}}\n  </button>\n  <button type=\"reset\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n          Cancel\n  </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public  router: Router) {\n\n        activeRoute.params.subscribe(params => {\n            this.editing = params[\"mode\"] == \"edit\";\n            let id = params[\"id\"];\n            if (id != null) {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n            }\n        })\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    resetForm() {\n        this.product = new Product();\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n  Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n  selector: \"paProductCount\",\n  template: `<div class=\"bg-info p-2\">There are {{count}} products</div>`\n})\nexport class ProductCountComponent {\n  private differ: KeyValueDiffer<any, any>;\n  count: number = 0;\n  private category: string;\n\n  constructor(private model: Model,\n          private keyValueDiffers: KeyValueDiffers,\n          private changeDetector: ChangeDetectorRef,\n          activeRoute: ActivatedRoute) {\n\n      activeRoute.pathFromRoot.forEach(route => route.params.subscribe(params => {\n          if (params[\"category\"] != null) {\n              this.category = params[\"category\"];\n              this.updateCount();\n          }\n      }))\n  }\n\n  ngOnInit() {\n      this.differ = this.keyValueDiffers\n          .find(this.model.getProducts())\n          .create();\n  }\n\n  ngDoCheck() {\n      if (this.differ.diff(this.model.getProducts()) != null) {\n          this.updateCount();\n      }\n  }\n\n  private updateCount() {\n      this.count = this.model.getProducts()\n          .filter(p => this.category == null || p.category == this.category)\n          .length;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/core/table.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n      <div class=\"col-auto\">\n          <button class=\"btn btn-secondary btn-block\"\n              routerLink=\"/table\" routerLinkActive=\"bg-primary\"\n              [routerLinkActiveOptions]=\"{exact: true}\">\n              All\n          </button>\n          <button *ngFor=\"let category of categories\"\n                  class=\"btn btn-secondary btn-block px-3\"\n                  [routerLink]=\"['/table', category]\"\n                  routerLinkActive=\"bg-primary\">\n              {{category}}\n          </button>\n      </div>\n      <div class=\"col\">\n          <button class=\"btn btn-info mx-1\" routerLink=\"products\">\n            Count Products\n        </button>\n        <button class=\"btn btn-primary mx-1\" routerLink=\"categories\">\n              Count Categories\n          </button>\n          <button class=\"btn btn-secondary mx-1\" routerLink=\"/table\">\n              Count Neither\n          </button>\n          <div class=\"my-2\">\n              <router-outlet></router-outlet>\n          </div>\n          <table class=\"table table-sm table-bordered table-striped\">\n              <tr>\n                  <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n              </tr>\n              <tr *ngFor=\"let item of getProducts()\">\n                  <td>{{item.id}}</td>\n                  <td>{{item.name}}</td>\n                  <td>{{item.category}}</td>\n                  <td>{{item.price | currency:\"USD\" }}</td>\n                  <td class=\"text-center\">\n                      <button class=\"btn btn-danger btn-sm mr-1\"\n                              (click)=\"deleteProduct(item.id)\">\n                          Delete\n                      </button>\n                      <button class=\"btn btn-warning btn-sm\"\n                          [routerLink]=\"['/form', 'edit', item.id]\">\n                          Edit\n                      </button>\n                  </td>\n              </tr>\n          </table>\n      </div>\n  </div>\n</div>\n<div class=\"p-2 text-center\">\n  <button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n      Create New Product\n  </button>\n  <button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n      Generate HTTP Error\n  </button>\n  <button class=\"btn btn-danger m-1\" routerLink=\"/does/not/exist\">\n      Generate Routing Error\n  </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n    category: string = null;\n\n    constructor(public model: Model, activeRoute: ActivatedRoute) {\n        activeRoute.params.subscribe(params => {\n            this.category = params[\"category\"] || null;\n        })\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category);\n    }\n\n    get categories(): string[] {\n        return this.model.getProducts()\n            .map(p => p.category)\n            .filter((category, index, array) => array.indexOf(category) == index);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n        <h4>{{lastMessage.text}}</h4>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd\n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n  constructor(public text: string,\n      public error: boolean = false) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\n//import { StaticDataSource } from \"./static.datasource\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource,\n        { provide: REST_URL, useValue: `http://${location.hostname}:3500/products` }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n              public name?: string,\n              public category?: string,\n              public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2\n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0\n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        }).pipe(catchError((error: Response) =>\n             throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 26/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/restData.js",
    "content": "module.exports = function () {\n  var data = {\n      products: [\n          { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n          { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n          { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n          { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n          { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n          { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n          { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n          { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n          { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n      ]\n  }\n  return data\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { routing } from \"./app.routing\";\nimport { AppComponent } from \"./app.component\";\nimport { TermsGuard } from \"./terms.guard\"\nimport { LoadGuard } from \"./load.guard\";\n\n@NgModule({\n    imports: [BrowserModule, CoreModule, MessageModule, routing],\n    declarations: [AppComponent],\n    providers: [TermsGuard, LoadGuard],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { NotFoundComponent } from \"./core/notFound.component\";\nimport { ProductCountComponent } from \"./core/productCount.component\";\nimport { CategoryCountComponent } from \"./core/categoryCount.component\";\nimport { ModelResolver } from \"./model/model.resolver\";\nimport { TermsGuard } from \"./terms.guard\";\nimport { UnsavedGuard } from \"./core/unsaved.guard\";\nimport { LoadGuard } from \"./load.guard\";\n\nconst childRoutes: Routes = [\n    {\n        path: \"\",\n        canActivateChild: [TermsGuard],\n        children: [{ path: \"products\", component: ProductCountComponent },\n                   { path: \"categories\", component: CategoryCountComponent },\n                   { path: \"\", component: ProductCountComponent }],\n        resolve: { model: ModelResolver }\n    }\n];\n\nconst routes: Routes = [\n    {\n        path: \"ondemand\",\n        loadChildren: () => import(\"./ondemand/ondemand.module\")\n                                .then(m => m.OndemandModule),\n        canLoad: [LoadGuard]\n    },\n    {\n        path: \"form/:mode/:id\", component: FormComponent,\n        resolve: { model: ModelResolver },\n        canDeactivate: [UnsavedGuard]\n    },\n    {\n        path: \"form/:mode\", component: FormComponent,\n        resolve: { model: ModelResolver },\n        canActivate: [TermsGuard]\n    },\n    { path: \"table\", component: TableComponent, children: childRoutes },\n    { path: \"table/:category\", component: TableComponent, children: childRoutes },\n    { path: \"\", redirectTo: \"/table\", pathMatch: \"full\" },\n    { path: \"**\", component: NotFoundComponent }\n]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n  Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n  selector: \"paCategoryCount\",\n  template: `<div class=\"bg-primary p-2 text-white\">\n                  There are {{count}} categories\n             </div>`\n})\nexport class CategoryCountComponent {\n  private differ: KeyValueDiffer<any, any>;\n  count: number = 0;\n\n  constructor(private model: Model,\n      private keyValueDiffers: KeyValueDiffers,\n      private changeDetector: ChangeDetectorRef) { }\n\n  ngOnInit() {\n      this.differ = this.keyValueDiffers\n          .find(this.model.getProducts())\n          .create();\n  }\n\n  ngDoCheck() {\n      if (this.differ.diff(this.model.getProducts()) != null) {\n          this.count = this.model.getProducts()\n              .map(p => p.category)\n              .filter((category, index, array) => array.indexOf(category) == index)\n              .length;\n      }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\nimport { UnsavedGuard } from \"./unsaved.guard\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    providers: [UnsavedGuard],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n  <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n\n<div *ngIf=\"editing\" class=\"p-2\">\n  <button class=\"btn btn-secondary m-1\"\n          [routerLink]=\"['/form', 'edit', model.getPreviousProductid(product.id)]\">\n      Previous\n  </button>\n  <button class=\"btn btn-secondary\"\n          [routerLink]=\"['/form', 'edit', model.getNextProductId(product.id)]\">\n      Next\n  </button>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n\n  <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" name=\"name\"\n             [(ngModel)]=\"product.name\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Category</label>\n      <input class=\"form-control\" name=\"category\"\n             [(ngModel)]=\"product.category\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Price</label>\n      <input class=\"form-control\" name=\"price\"\n             [(ngModel)]=\"product.price\"\n             required pattern=\"^[0-9\\.]+$\" />\n  </div>\n\n  <button type=\"submit\" class=\"btn btn-primary m-1\"\n          [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n      {{editing ? \"Save\" : \"Create\"}}\n  </button>\n  <button type=\"button\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n          Cancel\n  </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n    originalProduct = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public router: Router) {\n\n        activeRoute.params.subscribe(params => {\n            this.editing = params[\"mode\"] == \"edit\";\n            let id = params[\"id\"];\n            if (id != null) {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n                Object.assign(this.originalProduct, this.product);\n            }\n        })\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.originalProduct = this.product;\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    //resetForm() {\n    //    this.product = new Product();\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n  Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n  selector: \"paProductCount\",\n  template: `<div class=\"bg-info p-2\">There are {{count}} products</div>`\n})\nexport class ProductCountComponent {\n  private differ: KeyValueDiffer<any, any>;\n  count: number = 0;\n  private category: string;\n\n  constructor(private model: Model,\n          private keyValueDiffers: KeyValueDiffers,\n          private changeDetector: ChangeDetectorRef,\n          activeRoute: ActivatedRoute) {\n\n      activeRoute.pathFromRoot.forEach(route => route.params.subscribe(params => {\n          if (params[\"category\"] != null) {\n              this.category = params[\"category\"];\n              this.updateCount();\n          }\n      }))\n  }\n\n  ngOnInit() {\n      this.differ = this.keyValueDiffers\n          .find(this.model.getProducts())\n          .create();\n  }\n\n  ngDoCheck() {\n      if (this.differ.diff(this.model.getProducts()) != null) {\n          this.updateCount();\n      }\n  }\n\n  private updateCount() {\n      this.count = this.model.getProducts()\n          .filter(p => this.category == null || p.category == this.category)\n          .length;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/core/table.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n      <div class=\"col-auto\">\n          <button class=\"btn btn-secondary btn-block\"\n              routerLink=\"/table\" routerLinkActive=\"bg-primary\"\n              [routerLinkActiveOptions]=\"{exact: true}\">\n              All\n          </button>\n          <button *ngFor=\"let category of categories\"\n                  class=\"btn btn-secondary btn-block px-3\"\n                  [routerLink]=\"['/table', category]\"\n                  routerLinkActive=\"bg-primary\">\n              {{category}}\n          </button>\n      </div>\n      <div class=\"col\">\n          <button class=\"btn btn-info mx-1\" routerLink=\"products\">\n            Count Products\n        </button>\n        <button class=\"btn btn-primary mx-1\" routerLink=\"categories\">\n              Count Categories\n          </button>\n          <button class=\"btn btn-secondary mx-1\" routerLink=\"/table\">\n              Count Neither\n          </button>\n          <div class=\"my-2\">\n              <router-outlet></router-outlet>\n          </div>\n          <table class=\"table table-sm table-bordered table-striped\">\n              <tr>\n                  <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n              </tr>\n              <tr *ngFor=\"let item of getProducts()\">\n                  <td>{{item.id}}</td>\n                  <td>{{item.name}}</td>\n                  <td>{{item.category}}</td>\n                  <td>{{item.price | currency:\"USD\" }}</td>\n                  <td class=\"text-center\">\n                      <button class=\"btn btn-danger btn-sm mr-1\"\n                              (click)=\"deleteProduct(item.id)\">\n                          Delete\n                      </button>\n                      <button class=\"btn btn-warning btn-sm\"\n                          [routerLink]=\"['/form', 'edit', item.id]\">\n                          Edit\n                      </button>\n                  </td>\n              </tr>\n          </table>\n      </div>\n  </div>\n</div>\n<div class=\"p-2 text-center\">\n  <button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n      Create New Product\n  </button>\n  <button class=\"btn btn-danger\" (click)=\"deleteProduct(-1)\">\n      Generate HTTP Error\n  </button>\n  <button class=\"btn btn-danger m-1\" routerLink=\"/does/not/exist\">\n      Generate Routing Error\n  </button>\n  <button class=\"btn btn-danger\" routerLink=\"/ondemand\">\n    Load Module\n</button>\n\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\"\n})\nexport class TableComponent {\n    category: string = null;\n\n    constructor(public model: Model, activeRoute: ActivatedRoute) {\n        activeRoute.params.subscribe(params => {\n            this.category = params[\"category\"] || null;\n        })\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category);\n    }\n\n    get categories(): string[] {\n        return this.model.getProducts()\n            .map(p => p.category)\n            .filter((category, index, array) => array.indexOf(category) == index);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/core/unsaved.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { Observable, Subject } from \"rxjs\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { FormComponent } from \"./form.component\";\n\n@Injectable()\nexport class UnsavedGuard {\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canDeactivate(component: FormComponent, route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<boolean> | boolean {\n\n        if (component.editing) {\n            if ([\"name\", \"category\", \"price\"]\n                .some(prop => component.product[prop]\n                    != component.originalProduct[prop])) {\n                let subject = new Subject<boolean>();\n\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => {\n                        subject.next(true);\n                        subject.complete();\n                    }],\n                    [\"No\", () => {\n                        this.router.navigateByUrl(this.router.url);\n                        subject.next(false);\n                        subject.complete();\n                    }]\n                ];\n                this.messages.reportMessage(new Message(\"Discard Changes?\",\n                    true, responses));\n                return subject;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/load.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Route, Router } from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class LoadGuard {\n    private loaded: boolean = false;\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canLoad(route: Route): Promise<boolean> | boolean {\n\n        return this.loaded || new Promise<boolean>((resolve, reject) => {\n            let responses: [string, (string) => void] [] = [\n                [\"Yes\", () => {\n                    this.loaded = true;\n                    resolve(true);\n                }],\n                [\"No\", () => {\n                    this.router.navigateByUrl(this.router.url);\n                    resolve(false);\n                }]\n            ];\n\n            this.messages.reportMessage(\n                new Message(\"Do you want to load the module?\",\n                    false, responses));\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n    <h4>{{lastMessage.text}}</h4>\n</div>\n<div class=\"text-center my-2\">\n    <button *ngFor=\"let resp of lastMessage?.responses; let i = index\"\n            (click)=\"resp[1](resp[0])\"\n            class=\"btn btn-primary m-2\" [class.btn-secondary]=\"i > 0\">\n        {{resp[0]}}\n    </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd\n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n  constructor(public text: string,\n      public error: boolean = false,\n      public responses?: [string, (string) => void][]) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\nimport { ModelResolver } from \"./model.resolver\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource, ModelResolver,\n        { provide: REST_URL, useValue: \"http://localhost:3500/products\" }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/model/model.resolver.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { Model } from \"./repository.model\"\nimport { RestDataSource } from \"./rest.datasource\";\nimport { Product } from \"./product.model\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\n\n@Injectable()\nexport class ModelResolver {\n\n    constructor(\n        private model: Model,\n        private dataSource: RestDataSource,\n        private messages: MessageService) { }\n\n    resolve(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<Product[]> {\n\n        if (this.model.getProducts().length == 0) {\n            this.messages.reportMessage(new Message(\"Loading data...\"));\n            return this.dataSource.getData();\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n              public name?: string,\n              public category?: string,\n              public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2\n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0\n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError, delay } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        })\n        .pipe(delay(5000))\n        .pipe(catchError((error: Response) =>\n            throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/ondemand/first.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"first\",\n    template: `<div class=\"bg-primary text-white p-2\">First Component</div>`\n})\nexport class FirstComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/ondemand/ondemand.component.html",
    "content": "<div class=\"bg-primary text-white p-2\">This is the ondemand component</div>\n<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col-12 p-2\">\n            <router-outlet></router-outlet>\n        </div>\n    </div>\n    <div class=\"row\">\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"left\"></router-outlet>\n        </div>\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"right\"></router-outlet>\n        </div>\n    </div>\n</div>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand\">Normal</button>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand/swap\">Swap</button>\n<button class=\"btn btn-primary m-2\" routerLink=\"/\">Back</button>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/ondemand/ondemand.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"ondemand\",\n    templateUrl: \"ondemand.component.html\"\n})\nexport class OndemandComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/ondemand/ondemand.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OndemandComponent } from \"./ondemand.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { FirstComponent } from \"./first.component\";\nimport { SecondComponent } from \"./second.component\";\n\nlet routing = RouterModule.forChild([\n    {\n        path: \"\",\n        component: OndemandComponent,\n        children: [\n            {\n                path: \"\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: FirstComponent, },\n                    { outlet: \"left\", path: \"\", component: SecondComponent, },\n                    { outlet: \"right\", path: \"\", component: SecondComponent, },\n                ]\n            },\n            {\n                path: \"swap\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: SecondComponent, },\n                    { outlet: \"left\", path: \"\", component: FirstComponent, },\n                    { outlet: \"right\", path: \"\", component: FirstComponent, },\n                ]\n            },\n        ]\n    },\n]);\n\n@NgModule({\n    imports: [CommonModule, routing],\n    declarations: [OndemandComponent, FirstComponent, SecondComponent],\n    exports: [OndemandComponent]\n})\nexport class OndemandModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/ondemand/second.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"second\",\n    template: `<div class=\"bg-info text-white p-2\">Second Component</div>`\n})\nexport class SecondComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/app/terms.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class TermsGuard {\n\n    constructor(private messages: MessageService,\n        private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.params[\"mode\"] == \"create\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No\", () => resolve(false)]\n                ];\n                this.messages.reportMessage(\n                    new Message(\"Do you accept the terms & conditions?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n\n    canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.url.length > 0\n            && route.url[route.url.length - 1].path == \"categories\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No \", () => resolve(false)]\n                ];\n\n                this.messages.reportMessage(\n                    new Message(\"Do you want to see the categories component?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 27/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/restData.js",
    "content": "module.exports = function () {\n  var data = {\n      products: [\n          { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n          { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n          { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n          { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n          { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n          { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n          { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n          { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n          { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n      ]\n  }\n  return data\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { routing } from \"./app.routing\";\nimport { AppComponent } from \"./app.component\";\nimport { TermsGuard } from \"./terms.guard\"\nimport { LoadGuard } from \"./load.guard\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\n\n@NgModule({\n    imports: [BrowserModule, CoreModule, MessageModule, routing,\n              BrowserAnimationsModule],\n    declarations: [AppComponent],\n    providers: [TermsGuard, LoadGuard],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { NotFoundComponent } from \"./core/notFound.component\";\nimport { ProductCountComponent } from \"./core/productCount.component\";\nimport { CategoryCountComponent } from \"./core/categoryCount.component\";\nimport { ModelResolver } from \"./model/model.resolver\";\nimport { TermsGuard } from \"./terms.guard\";\nimport { UnsavedGuard } from \"./core/unsaved.guard\";\nimport { LoadGuard } from \"./load.guard\";\n\nconst routes: Routes = [\n    {\n        path: \"form/:mode/:id\", component: FormComponent,\n        canDeactivate: [UnsavedGuard]\n    },\n    { path: \"form/:mode\", component: FormComponent, canActivate: [TermsGuard] },\n    { path: \"table\", component: TableComponent },\n    { path: \"table/:category\", component: TableComponent },\n    { path: \"\", redirectTo: \"/table\", pathMatch: \"full\" },\n    { path: \"**\", component: NotFoundComponent }\n]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/core/animationUtils.ts",
    "content": "export function getStylesFromClasses(names: string | string[],\n  elementType: string = \"div\") : { [key: string]: string | number } {\n\nlet elem = document.createElement(elementType);\n(typeof names == \"string\" ? [names] : names).forEach(c => elem.classList.add(c));\n\nlet result = {};\n\nfor (let i = 0; i < document.styleSheets.length; i++) {\n  let sheet = document.styleSheets[i] as CSSStyleSheet;\n  let rules = sheet.rules || sheet.cssRules;\n  for (let j = 0; j < rules.length; j++) {\n      if (rules[j].type == CSSRule.STYLE_RULE) {\n          let styleRule = rules[j] as CSSStyleRule;\n          if (elem.matches(styleRule.selectorText)) {\n              for (let k = 0; k < styleRule.style.length; k++) {\n                  result[styleRule.style[k]] =\n                      styleRule.style[styleRule.style[k]];\n              }\n          }\n      }\n  }\n}\nreturn result;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n  Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n  selector: \"paCategoryCount\",\n  template: `<div class=\"bg-primary p-2 text-white\">\n                  There are {{count}} categories\n             </div>`\n})\nexport class CategoryCountComponent {\n  private differ: KeyValueDiffer<any, any>;\n  count: number = 0;\n\n  constructor(private model: Model,\n      private keyValueDiffers: KeyValueDiffers,\n      private changeDetector: ChangeDetectorRef) { }\n\n  ngOnInit() {\n      this.differ = this.keyValueDiffers\n          .find(this.model.getProducts())\n          .create();\n  }\n\n  ngDoCheck() {\n      if (this.differ.diff(this.model.getProducts()) != null) {\n          this.count = this.model.getProducts()\n              .map(p => p.category)\n              .filter((category, index, array) => array.indexOf(category) == index)\n              .length;\n      }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\nimport { UnsavedGuard } from \"./unsaved.guard\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    providers: [UnsavedGuard],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n  <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n\n<div *ngIf=\"editing\" class=\"p-2\">\n  <button class=\"btn btn-secondary m-1\"\n          [routerLink]=\"['/form', 'edit', model.getPreviousProductid(product.id)]\">\n      Previous\n  </button>\n  <button class=\"btn btn-secondary\"\n          [routerLink]=\"['/form', 'edit', model.getNextProductId(product.id)]\">\n      Next\n  </button>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n\n  <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" name=\"name\"\n             [(ngModel)]=\"product.name\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Category</label>\n      <input class=\"form-control\" name=\"category\"\n             [(ngModel)]=\"product.category\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Price</label>\n      <input class=\"form-control\" name=\"price\"\n             [(ngModel)]=\"product.price\"\n             required pattern=\"^[0-9\\.]+$\" />\n  </div>\n\n  <button type=\"submit\" class=\"btn btn-primary m-1\"\n          [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n      {{editing ? \"Save\" : \"Create\"}}\n  </button>\n  <button type=\"button\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n          Cancel\n  </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n    originalProduct = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public router: Router) {\n\n        activeRoute.params.subscribe(params => {\n            this.editing = params[\"mode\"] == \"edit\";\n            let id = params[\"id\"];\n            if (id != null) {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n                Object.assign(this.originalProduct, this.product);\n            }\n        })\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.originalProduct = this.product;\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    //resetForm() {\n    //    this.product = new Product();\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n  Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n  selector: \"paProductCount\",\n  template: `<div class=\"bg-info p-2\">There are {{count}} products</div>`\n})\nexport class ProductCountComponent {\n  private differ: KeyValueDiffer<any, any>;\n  count: number = 0;\n  private category: string;\n\n  constructor(private model: Model,\n          private keyValueDiffers: KeyValueDiffers,\n          private changeDetector: ChangeDetectorRef,\n          activeRoute: ActivatedRoute) {\n\n      activeRoute.pathFromRoot.forEach(route => route.params.subscribe(params => {\n          if (params[\"category\"] != null) {\n              this.category = params[\"category\"];\n              this.updateCount();\n          }\n      }))\n  }\n\n  ngOnInit() {\n      this.differ = this.keyValueDiffers\n          .find(this.model.getProducts())\n          .create();\n  }\n\n  ngDoCheck() {\n      if (this.differ.diff(this.model.getProducts()) != null) {\n          this.updateCount();\n      }\n  }\n\n  private updateCount() {\n      this.count = this.model.getProducts()\n          .filter(p => this.category == null || p.category == this.category)\n          .length;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/core/table.animations.ts",
    "content": "import { trigger, style, state, transition, animate, group }\n    from \"@angular/animations\";\nimport { getStylesFromClasses } from \"./animationUtils\";\n\nexport const HighlightTrigger = trigger(\"rowHighlight\", [\n    state(\"selected\", style(getStylesFromClasses([\"bg-success\", \"h2\"]))),\n    state(\"notselected\", style(getStylesFromClasses(\"bg-info\"))),\n    state(\"void\", style({\n        transform: \"translateX(-50%)\"\n    })),\n    transition(\"* => notselected\", animate(\"200ms\")),\n    transition(\"* => selected\", animate(\"400ms 200ms ease-in\")),\n    transition(\"void => *\", animate(\"500ms\"))\n]);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/core/table.component.html",
    "content": "<div class=\"form-group bg-info text-white p-2\">\n  <label>Category</label>\n  <select [(ngModel)]=\"highlightCategory\" class=\"form-control\">\n      <option value=\"\">None</option>\n      <option *ngFor=\"let category of categories\">\n          {{category}}\n      </option>\n  </select>\n</div>\n<table class=\"table table-sm table-bordered table-striped\">\n  <tr>\n      <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n  </tr>\n  <tr *ngFor=\"let item of getProducts()\"\n          [@rowHighlight]=\"getRowState(item.category)\">\n      <td>{{item.id}}</td>\n      <td>{{item.name}}</td>\n      <td>{{item.category}}</td>\n      <td>{{item.price | currency:\"USD\" }}</td>\n      <td class=\"text-center\">\n          <button class=\"btn btn-danger btn-sm mr-1\"\n                  (click)=\"deleteProduct(item.id)\">\n              Delete\n          </button>\n          <button class=\"btn btn-warning btn-sm\"\n              [routerLink]=\"['/form', 'edit', item.id]\">\n              Edit\n          </button>\n      </td>\n  </tr>\n</table>\n<div class=\"p-2 text-center\">\n  <button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n      Create New Product\n  </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { HighlightTrigger } from \"./table.animations\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\",\n    animations: [HighlightTrigger]\n})\nexport class TableComponent {\n    category: string = null;\n\n    constructor(private model: Model, activeRoute: ActivatedRoute) {\n        activeRoute.params.subscribe(params => {\n            this.category = params[\"category\"] || null;\n        })\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category);\n    }\n\n    get categories(): string[] {\n        return this.model.getProducts()\n            .map(p => p.category)\n            .filter((category, index, array) => array.indexOf(category) == index);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    highlightCategory: string = \"\";\n\n    getRowState(category: string): string {\n        return this.highlightCategory == \"\" ? \"\" :\n            this.highlightCategory == category ? \"selected\" : \"notselected\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/core/unsaved.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { Observable, Subject } from \"rxjs\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { FormComponent } from \"./form.component\";\n\n@Injectable()\nexport class UnsavedGuard {\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canDeactivate(component: FormComponent, route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<boolean> | boolean {\n\n        if (component.editing) {\n            if ([\"name\", \"category\", \"price\"]\n                .some(prop => component.product[prop]\n                    != component.originalProduct[prop])) {\n                let subject = new Subject<boolean>();\n\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => {\n                        subject.next(true);\n                        subject.complete();\n                    }],\n                    [\"No\", () => {\n                        this.router.navigateByUrl(this.router.url);\n                        subject.next(false);\n                        subject.complete();\n                    }]\n                ];\n                this.messages.reportMessage(new Message(\"Discard Changes?\",\n                    true, responses));\n                return subject;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/load.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Route, Router } from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class LoadGuard {\n    private loaded: boolean = false;\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canLoad(route: Route): Promise<boolean> | boolean {\n\n        return this.loaded || new Promise<boolean>((resolve, reject) => {\n            let responses: [string, (string) => void] [] = [\n                [\"Yes\", () => {\n                    this.loaded = true;\n                    resolve(true);\n                }],\n                [\"No\", () => {\n                    this.router.navigateByUrl(this.router.url);\n                    resolve(false);\n                }]\n            ];\n\n            this.messages.reportMessage(\n                new Message(\"Do you want to load the module?\",\n                    false, responses));\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n    <h4>{{lastMessage.text}}</h4>\n</div>\n<div class=\"text-center my-2\">\n    <button *ngFor=\"let resp of lastMessage?.responses; let i = index\"\n            (click)=\"resp[1](resp[0])\"\n            class=\"btn btn-primary m-2\" [class.btn-secondary]=\"i > 0\">\n        {{resp[0]}}\n    </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd\n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n  constructor(public text: string,\n      public error: boolean = false,\n      public responses?: [string, (string) => void][]) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\nimport { ModelResolver } from \"./model.resolver\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource, ModelResolver,\n        { provide: REST_URL, useValue: \"http://localhost:3500/products\" }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/model/model.resolver.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { Model } from \"./repository.model\"\nimport { RestDataSource } from \"./rest.datasource\";\nimport { Product } from \"./product.model\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\n\n@Injectable()\nexport class ModelResolver {\n\n    constructor(\n        private model: Model,\n        private dataSource: RestDataSource,\n        private messages: MessageService) { }\n\n    resolve(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<Product[]> {\n\n        if (this.model.getProducts().length == 0) {\n            this.messages.reportMessage(new Message(\"Loading data...\"));\n            return this.dataSource.getData();\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n              public name?: string,\n              public category?: string,\n              public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2\n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0\n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError, delay } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        })\n        //.pipe(delay(5000))\n        .pipe(catchError((error: Response) =>\n            throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/ondemand/first.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"first\",\n    template: `<div class=\"bg-primary text-white p-2\">First Component</div>`\n})\nexport class FirstComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/ondemand/ondemand.component.html",
    "content": "<div class=\"bg-primary text-white p-2\">This is the ondemand component</div>\n<div class=\"container-fluid\">\n    <div class=\"row\">\n        <div class=\"col-12 p-2\">\n            <router-outlet></router-outlet>\n        </div>\n    </div>\n    <div class=\"row\">\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"left\"></router-outlet>\n        </div>\n        <div class=\"col-6 p-2\">\n            <router-outlet name=\"right\"></router-outlet>\n        </div>\n    </div>\n</div>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand\">Normal</button>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand/swap\">Swap</button>\n<button class=\"btn btn-primary m-2\" routerLink=\"/\">Back</button>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/ondemand/ondemand.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"ondemand\",\n    templateUrl: \"ondemand.component.html\"\n})\nexport class OndemandComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/ondemand/ondemand.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OndemandComponent } from \"./ondemand.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { FirstComponent } from \"./first.component\";\nimport { SecondComponent } from \"./second.component\";\n\nlet routing = RouterModule.forChild([\n    {\n        path: \"\",\n        component: OndemandComponent,\n        children: [\n            {\n                path: \"\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: FirstComponent, },\n                    { outlet: \"left\", path: \"\", component: SecondComponent, },\n                    { outlet: \"right\", path: \"\", component: SecondComponent, },\n                ]\n            },\n            {\n                path: \"swap\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: SecondComponent, },\n                    { outlet: \"left\", path: \"\", component: FirstComponent, },\n                    { outlet: \"right\", path: \"\", component: FirstComponent, },\n                ]\n            },\n        ]\n    },\n]);\n\n@NgModule({\n    imports: [CommonModule, routing],\n    declarations: [OndemandComponent, FirstComponent, SecondComponent],\n    exports: [OndemandComponent]\n})\nexport class OndemandModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/ondemand/second.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"second\",\n    template: `<div class=\"bg-info text-white p-2\">Second Component</div>`\n})\nexport class SecondComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/app/terms.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class TermsGuard {\n\n    constructor(private messages: MessageService,\n        private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.params[\"mode\"] == \"create\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No\", () => resolve(false)]\n                ];\n                this.messages.reportMessage(\n                    new Message(\"Do you accept the terms & conditions?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n\n    canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.url.length > 0\n            && route.url[route.url.length - 1].path == \"categories\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No \", () => resolve(false)]\n                ];\n\n                this.messages.reportMessage(\n                    new Message(\"Do you want to see the categories component?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 28/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/.browserslistrc",
    "content": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n\n# For the full list of supported browsers by the Angular framework, please see:\n# https://angular.io/guide/browser-support\n\n# You can see what browsers were selected by your queries by running:\n#   npx browserslist\n\nlast 1 Chrome version\nlast 1 Firefox version\nlast 2 Edge major versions\nlast 2 Safari major versions\nlast 2 iOS major versions\nFirefox ESR\nnot IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"exampleApp\": {\n      \"projectType\": \"application\",\n      \"schematics\": {\n        \"@schematics/angular:class\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:component\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:directive\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:guard\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:interceptor\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:module\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:pipe\": {\n          \"skipTests\": true\n        },\n        \"@schematics/angular:service\": {\n          \"skipTests\": true\n        }\n      },\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"prefix\": \"app\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist/exampleApp\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.app.json\",\n            \"aot\": true,\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\",\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"namedChunks\": false,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                },\n                {\n                  \"type\": \"anyComponentStyle\",\n                  \"maximumWarning\": \"6kb\",\n                  \"maximumError\": \"10kb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"exampleApp:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"exampleApp:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"tsconfig.spec.json\",\n            \"karmaConfig\": \"karma.conf.js\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": []\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"tsconfig.app.json\",\n              \"tsconfig.spec.json\",\n              \"e2e/tsconfig.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        },\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"exampleApp:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"exampleApp:serve:production\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"exampleApp\"\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/e2e/protractor.conf.js",
    "content": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');\n\n/**\n * @type { import(\"protractor\").Config }\n */\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    browserName: 'chrome'\n  },\n  directConnect: true,\n  SELENIUM_PROMISE_MANAGER: false,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({\n      spec: {\n        displayStacktrace: StacktraceOption.PRETTY\n      }\n    }));\n  }\n};"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', async () => {\n    await page.navigateTo();\n    expect(await page.getTitleText()).toEqual('exampleApp app is running!');\n  });\n\n  afterEach(async () => {\n    // Assert that there are no errors emitted from the browser\n    const logs = await browser.manage().logs().get(logging.Type.BROWSER);\n    expect(logs).not.toContain(jasmine.objectContaining({\n      level: logging.Level.SEVERE,\n    } as logging.Entry));\n  });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  async navigateTo(): Promise<unknown> {\n    return browser.get(browser.baseUrl);\n  }\n\n  async getTitleText(): Promise<string> {\n    return element(by.css('app-root .content span')).getText();\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/e2e/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    \"target\": \"es2018\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    jasmineHtmlReporter: {\n      suppressAll: true // removes the duplicated traces\n    },\n    coverageReporter: {\n      dir: require('path').join(__dirname, './coverage/exampleApp'),\n      subdir: '.',\n      reporters: [\n        { type: 'html' },\n        { type: 'text-summary' }\n      ]\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false,\n    restartOnFileChange: true\n  });\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/package.json",
    "content": "{\n  \"name\": \"example-app\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\",\n    \"json\": \"json-server --p 3500 restData.js\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~11.0.1\",\n    \"@angular/common\": \"~11.0.1\",\n    \"@angular/compiler\": \"~11.0.1\",\n    \"@angular/core\": \"~11.0.1\",\n    \"@angular/forms\": \"~11.0.1\",\n    \"@angular/platform-browser\": \"~11.0.1\",\n    \"@angular/platform-browser-dynamic\": \"~11.0.1\",\n    \"@angular/router\": \"~11.0.1\",\n    \"bootstrap\": \"^4.4.1\",\n    \"json-server\": \"^0.16.0\",\n    \"rxjs\": \"~6.6.0\",\n    \"tslib\": \"^2.0.0\",\n    \"zone.js\": \"~0.10.2\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.1100.2\",\n    \"@angular/cli\": \"~11.0.2\",\n    \"@angular/compiler-cli\": \"~11.0.1\",\n    \"@types/jasmine\": \"~3.6.0\",\n    \"@types/node\": \"^12.11.1\",\n    \"codelyzer\": \"^6.0.0\",\n    \"jasmine-core\": \"~3.6.0\",\n    \"jasmine-spec-reporter\": \"~5.0.0\",\n    \"karma\": \"~5.1.0\",\n    \"karma-chrome-launcher\": \"~3.1.0\",\n    \"karma-coverage\": \"~2.0.3\",\n    \"karma-jasmine\": \"~4.0.0\",\n    \"karma-jasmine-html-reporter\": \"^1.5.0\",\n    \"protractor\": \"~7.0.0\",\n    \"ts-node\": \"~8.3.0\",\n    \"tslint\": \"~6.1.0\",\n    \"typescript\": \"~4.0.2\"\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/restData.js",
    "content": "module.exports = function () {\n  var data = {\n      products: [\n          { id: 1, name: \"Kayak\", category: \"Watersports\", price: 275 },\n          { id: 2, name: \"Lifejacket\", category: \"Watersports\", price: 48.95 },\n          { id: 3, name: \"Soccer Ball\", category: \"Soccer\", price: 19.50 },\n          { id: 4, name: \"Corner Flags\", category: \"Soccer\", price: 34.95 },\n          { id: 5, name: \"Stadium\", category: \"Soccer\", price: 79500 },\n          { id: 6, name: \"Thinking Cap\", category: \"Chess\", price: 16 },\n          { id: 7, name: \"Unsteady Chair\", category: \"Chess\", price: 29.95 },\n          { id: 8, name: \"Human Chess Board\", category: \"Chess\", price: 75 },\n          { id: 9, name: \"Bling Bling King\", category: \"Chess\", price: 1200 }\n      ]\n  }\n  return data\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/app.component.html",
    "content": "<paMessages></paMessages>\n<router-outlet></router-outlet>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/app.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"app\",\n    templateUrl: \"./app.component.html\"\n})\nexport class AppComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/app.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { ModelModule } from \"./model/model.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { MessageModule } from \"./messages/message.module\";\nimport { MessageComponent } from \"./messages/message.component\";\nimport { routing } from \"./app.routing\";\nimport { AppComponent } from \"./app.component\";\nimport { TermsGuard } from \"./terms.guard\"\nimport { LoadGuard } from \"./load.guard\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\n\n@NgModule({\n    imports: [BrowserModule, CoreModule, MessageModule, routing,\n              BrowserAnimationsModule],\n    declarations: [AppComponent],\n    providers: [TermsGuard, LoadGuard],\n    bootstrap: [AppComponent]\n})\nexport class AppModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/app.routing.ts",
    "content": "import { Routes, RouterModule } from \"@angular/router\";\nimport { TableComponent } from \"./core/table.component\";\nimport { FormComponent } from \"./core/form.component\";\nimport { NotFoundComponent } from \"./core/notFound.component\";\nimport { ProductCountComponent } from \"./core/productCount.component\";\nimport { CategoryCountComponent } from \"./core/categoryCount.component\";\nimport { ModelResolver } from \"./model/model.resolver\";\nimport { TermsGuard } from \"./terms.guard\";\nimport { UnsavedGuard } from \"./core/unsaved.guard\";\nimport { LoadGuard } from \"./load.guard\";\n\nconst routes: Routes = [\n    {\n        path: \"ondemand\",\n        loadChildren: () => import(\"./ondemand/ondemand.module\")\n                                .then(m => m.OndemandModule)\n    },\n    { path: \"\", redirectTo: \"/ondemand\", pathMatch: \"full\" }\n]\n\nexport const routing = RouterModule.forRoot(routes);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/core/animationUtils.ts",
    "content": "export function getStylesFromClasses(names: string | string[],\n  elementType: string = \"div\") : { [key: string]: string | number } {\n\nlet elem = document.createElement(elementType);\n(typeof names == \"string\" ? [names] : names).forEach(c => elem.classList.add(c));\n\nlet result = {};\n\nfor (let i = 0; i < document.styleSheets.length; i++) {\n  let sheet = document.styleSheets[i] as CSSStyleSheet;\n  let rules = sheet.rules || sheet.cssRules;\n  for (let j = 0; j < rules.length; j++) {\n      if (rules[j].type == CSSRule.STYLE_RULE) {\n          let styleRule = rules[j] as CSSStyleRule;\n          if (elem.matches(styleRule.selectorText)) {\n              for (let k = 0; k < styleRule.style.length; k++) {\n                  result[styleRule.style[k]] =\n                      styleRule.style[styleRule.style[k]];\n              }\n          }\n      }\n  }\n}\nreturn result;\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/core/categoryCount.component.ts",
    "content": "import {\n  Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\n\n@Component({\n  selector: \"paCategoryCount\",\n  template: `<div class=\"bg-primary p-2 text-white\">\n                  There are {{count}} categories\n             </div>`\n})\nexport class CategoryCountComponent {\n  private differ: KeyValueDiffer<any, any>;\n  count: number = 0;\n\n  constructor(private model: Model,\n      private keyValueDiffers: KeyValueDiffers,\n      private changeDetector: ChangeDetectorRef) { }\n\n  ngOnInit() {\n      this.differ = this.keyValueDiffers\n          .find(this.model.getProducts())\n          .create();\n  }\n\n  ngDoCheck() {\n      if (this.differ.diff(this.model.getProducts()) != null) {\n          this.count = this.model.getProducts()\n              .map(p => p.category)\n              .filter((category, index, array) => array.indexOf(category) == index)\n              .length;\n      }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/core/core.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ModelModule } from \"../model/model.module\";\nimport { TableComponent } from \"./table.component\";\nimport { FormComponent } from \"./form.component\";\nimport { Subject } from \"rxjs\";\nimport { StatePipe } from \"./state.pipe\";\nimport { MessageModule } from \"../messages/message.module\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RouterModule } from \"@angular/router\";\nimport { ProductCountComponent } from \"./productCount.component\";\nimport { CategoryCountComponent } from \"./categoryCount.component\";\nimport { NotFoundComponent } from \"./notFound.component\";\nimport { UnsavedGuard } from \"./unsaved.guard\";\n\n@NgModule({\n    imports: [BrowserModule, FormsModule, ModelModule, MessageModule, RouterModule],\n    declarations: [TableComponent, FormComponent, StatePipe,\n        ProductCountComponent, CategoryCountComponent, NotFoundComponent],\n    providers: [UnsavedGuard],\n    exports: [ModelModule, TableComponent, FormComponent]\n})\nexport class CoreModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/core/form.component.css",
    "content": "input.ng-dirty.ng-invalid { border: 2px solid #ff0000 }\ninput.ng-dirty.ng-valid { border: 2px solid #6bc502 }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/core/form.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-warning]=\"editing\">\n  <h5>{{editing  ? \"Edit\" : \"Create\"}} Product</h5>\n</div>\n\n<div *ngIf=\"editing\" class=\"p-2\">\n  <button class=\"btn btn-secondary m-1\"\n          [routerLink]=\"['/form', 'edit', model.getPreviousProductid(product.id)]\">\n      Previous\n  </button>\n  <button class=\"btn btn-secondary\"\n          [routerLink]=\"['/form', 'edit', model.getNextProductId(product.id)]\">\n      Next\n  </button>\n</div>\n\n<form novalidate #form=\"ngForm\" (ngSubmit)=\"submitForm(form)\">\n\n  <div class=\"form-group\">\n      <label>Name</label>\n      <input class=\"form-control\" name=\"name\"\n             [(ngModel)]=\"product.name\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Category</label>\n      <input class=\"form-control\" name=\"category\"\n             [(ngModel)]=\"product.category\" required />\n  </div>\n\n  <div class=\"form-group\">\n      <label>Price</label>\n      <input class=\"form-control\" name=\"price\"\n             [(ngModel)]=\"product.price\"\n             required pattern=\"^[0-9\\.]+$\" />\n  </div>\n\n  <button type=\"submit\" class=\"btn btn-primary m-1\"\n          [class.btn-warning]=\"editing\" [disabled]=\"form.invalid\">\n      {{editing ? \"Save\" : \"Create\"}}\n  </button>\n  <button type=\"button\" class=\"btn btn-secondary m-1\" routerLink=\"/\">\n          Cancel\n  </button>\n</form>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/core/form.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n    selector: \"paForm\",\n    templateUrl: \"form.component.html\",\n    styleUrls: [\"form.component.css\"]\n})\nexport class FormComponent {\n    product: Product = new Product();\n    originalProduct = new Product();\n\n    constructor(public model: Model, activeRoute: ActivatedRoute,\n        public router: Router) {\n\n        activeRoute.params.subscribe(params => {\n            this.editing = params[\"mode\"] == \"edit\";\n            let id = params[\"id\"];\n            if (id != null) {\n                Object.assign(this.product, model.getProduct(id) || new Product());\n                Object.assign(this.originalProduct, this.product);\n            }\n        })\n    }\n\n    editing: boolean = false;\n\n    submitForm(form: NgForm) {\n        if (form.valid) {\n            this.model.saveProduct(this.product);\n            this.originalProduct = this.product;\n            this.router.navigateByUrl(\"/\");\n        }\n    }\n\n    //resetForm() {\n    //    this.product = new Product();\n    //}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/core/notFound.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"paNotFound\",\n    template: `<h3 class=\"bg-danger text-white p-2\">Sorry, something went wrong</h3>\n               <button class=\"btn btn-primary\" routerLink=\"/\">Start Over</button>`\n})\nexport class NotFoundComponent {}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/core/productCount.component.ts",
    "content": "import {\n  Component, KeyValueDiffer, KeyValueDiffers, ChangeDetectorRef\n} from \"@angular/core\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\n\n@Component({\n  selector: \"paProductCount\",\n  template: `<div class=\"bg-info p-2\">There are {{count}} products</div>`\n})\nexport class ProductCountComponent {\n  private differ: KeyValueDiffer<any, any>;\n  count: number = 0;\n  private category: string;\n\n  constructor(private model: Model,\n          private keyValueDiffers: KeyValueDiffers,\n          private changeDetector: ChangeDetectorRef,\n          activeRoute: ActivatedRoute) {\n\n      activeRoute.pathFromRoot.forEach(route => route.params.subscribe(params => {\n          if (params[\"category\"] != null) {\n              this.category = params[\"category\"];\n              this.updateCount();\n          }\n      }))\n  }\n\n  ngOnInit() {\n      this.differ = this.keyValueDiffers\n          .find(this.model.getProducts())\n          .create();\n  }\n\n  ngDoCheck() {\n      if (this.differ.diff(this.model.getProducts()) != null) {\n          this.updateCount();\n      }\n  }\n\n  private updateCount() {\n      this.count = this.model.getProducts()\n          .filter(p => this.category == null || p.category == this.category)\n          .length;\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/core/sharedState.model.ts",
    "content": "import { InjectionToken } from \"@angular/core\";\n\nexport enum MODES {\n    CREATE, EDIT\n}\n\nexport const SHARED_STATE = new InjectionToken(\"shared_state\");\n\nexport class SharedState {\n    constructor(public mode: MODES, public id?: number) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/core/state.pipe.ts",
    "content": "import { Pipe } from \"@angular/core\";\nimport { SharedState, MODES } from \"./sharedState.model\";\nimport { Model } from \"../model/repository.model\";\n\n@Pipe({\n    name: \"formatState\",\n    pure: true\n})\nexport class StatePipe {\n\n    constructor(private model: Model) { }\n\n    transform(value: any): string {\n        if (value instanceof SharedState) {\n            let state = value as SharedState;\n            return MODES[state.mode] + (state.id != undefined\n                ? ` ${this.model.getProduct(state.id).name}` : \"\");\n        } else {\n            return \"<No Data>\"\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/core/table.animations.ts",
    "content": "import { trigger, style, state, transition, animate, group }\n    from \"@angular/animations\";\nimport { getStylesFromClasses } from \"./animationUtils\";\n\nexport const HighlightTrigger = trigger(\"rowHighlight\", [\n    state(\"selected\", style(getStylesFromClasses([\"bg-success\", \"h2\"]))),\n    state(\"notselected\", style(getStylesFromClasses(\"bg-info\"))),\n    state(\"void\", style({\n        transform: \"translateX(-50%)\"\n    })),\n    transition(\"* => notselected\", animate(\"200ms\")),\n    transition(\"* => selected\", animate(\"400ms 200ms ease-in\")),\n    transition(\"void => *\", animate(\"500ms\"))\n]);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/core/table.component.html",
    "content": "<div class=\"form-group bg-info text-white p-2\">\n  <label>Category</label>\n  <select [(ngModel)]=\"highlightCategory\" class=\"form-control\">\n      <option value=\"\">None</option>\n      <option *ngFor=\"let category of categories\">\n          {{category}}\n      </option>\n  </select>\n</div>\n<table class=\"table table-sm table-bordered table-striped\">\n  <tr>\n      <th>ID</th><th>Name</th><th>Category</th><th>Price</th><th></th>\n  </tr>\n  <tr *ngFor=\"let item of getProducts()\"\n          [@rowHighlight]=\"getRowState(item.category)\">\n      <td>{{item.id}}</td>\n      <td>{{item.name}}</td>\n      <td>{{item.category}}</td>\n      <td>{{item.price | currency:\"USD\" }}</td>\n      <td class=\"text-center\">\n          <button class=\"btn btn-danger btn-sm mr-1\"\n                  (click)=\"deleteProduct(item.id)\">\n              Delete\n          </button>\n          <button class=\"btn btn-warning btn-sm\"\n              [routerLink]=\"['/form', 'edit', item.id]\">\n              Edit\n          </button>\n      </td>\n  </tr>\n</table>\n<div class=\"p-2 text-center\">\n  <button class=\"btn btn-primary m-1\" routerLink=\"/form/create\">\n      Create New Product\n  </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/core/table.component.ts",
    "content": "import { Component, Inject } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { HighlightTrigger } from \"./table.animations\";\n\n@Component({\n    selector: \"paTable\",\n    templateUrl: \"table.component.html\",\n    animations: [HighlightTrigger]\n})\nexport class TableComponent {\n    category: string = null;\n\n    constructor(private model: Model, activeRoute: ActivatedRoute) {\n        activeRoute.params.subscribe(params => {\n            this.category = params[\"category\"] || null;\n        })\n    }\n\n    getProduct(key: number): Product {\n        return this.model.getProduct(key);\n    }\n\n    getProducts(): Product[] {\n        return this.model.getProducts()\n            .filter(p => this.category == null || p.category == this.category);\n    }\n\n    get categories(): string[] {\n        return this.model.getProducts()\n            .map(p => p.category)\n            .filter((category, index, array) => array.indexOf(category) == index);\n    }\n\n    deleteProduct(key: number) {\n        this.model.deleteProduct(key);\n    }\n\n    highlightCategory: string = \"\";\n\n    getRowState(category: string): string {\n        return this.highlightCategory == \"\" ? \"\" :\n            this.highlightCategory == category ? \"selected\" : \"notselected\";\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/core/unsaved.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { Observable, Subject } from \"rxjs\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\nimport { FormComponent } from \"./form.component\";\n\n@Injectable()\nexport class UnsavedGuard {\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canDeactivate(component: FormComponent, route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<boolean> | boolean {\n\n        if (component.editing) {\n            if ([\"name\", \"category\", \"price\"]\n                .some(prop => component.product[prop]\n                    != component.originalProduct[prop])) {\n                let subject = new Subject<boolean>();\n\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => {\n                        subject.next(true);\n                        subject.complete();\n                    }],\n                    [\"No\", () => {\n                        this.router.navigateByUrl(this.router.url);\n                        subject.next(false);\n                        subject.complete();\n                    }]\n                ];\n                this.messages.reportMessage(new Message(\"Discard Changes?\",\n                    true, responses));\n                return subject;\n            }\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/load.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Route, Router } from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class LoadGuard {\n    private loaded: boolean = false;\n\n    constructor(private messages: MessageService,\n                private router: Router) { }\n\n    canLoad(route: Route): Promise<boolean> | boolean {\n\n        return this.loaded || new Promise<boolean>((resolve, reject) => {\n            let responses: [string, (string) => void] [] = [\n                [\"Yes\", () => {\n                    this.loaded = true;\n                    resolve(true);\n                }],\n                [\"No\", () => {\n                    this.router.navigateByUrl(this.router.url);\n                    resolve(false);\n                }]\n            ];\n\n            this.messages.reportMessage(\n                new Message(\"Do you want to load the module?\",\n                    false, responses));\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/messages/errorHandler.ts",
    "content": "import { ErrorHandler, Injectable, NgZone } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\n\n@Injectable()\nexport class MessageErrorHandler implements ErrorHandler {\n\n    constructor(private messageService: MessageService, private ngZone: NgZone) {\n    }\n\n    handleError(error) {\n        let msg = error instanceof Error ? error.message : error.toString();\n        this.ngZone.run(() => this.messageService\n            .reportMessage(new Message(msg, true)), 0);\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/messages/message.component.html",
    "content": "<div *ngIf=\"lastMessage\"\n     class=\"bg-info text-white p-2 text-center\"\n     [class.bg-danger]=\"lastMessage.error\">\n    <h4>{{lastMessage.text}}</h4>\n</div>\n<div class=\"text-center my-2\">\n    <button *ngFor=\"let resp of lastMessage?.responses; let i = index\"\n            (click)=\"resp[1](resp[0])\"\n            class=\"btn btn-primary m-2\" [class.btn-secondary]=\"i > 0\">\n        {{resp[0]}}\n    </button>\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/messages/message.component.ts",
    "content": "import { Component } from \"@angular/core\";\nimport { MessageService } from \"./message.service\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Router, NavigationEnd, NavigationCancel } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\n\n@Component({\n    selector: \"paMessages\",\n    templateUrl: \"message.component.html\",\n})\nexport class MessageComponent {\n    lastMessage: Message;\n\n    constructor(messageService: MessageService, router: Router) {\n        messageService.messages.subscribe(m => this.lastMessage = m);\n        router.events\n            .pipe(filter(e => e instanceof NavigationEnd\n                || e instanceof NavigationCancel))\n            .subscribe(e => { this.lastMessage = null; });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/messages/message.model.ts",
    "content": "export class Message {\n\n  constructor(public text: string,\n      public error: boolean = false,\n      public responses?: [string, (string) => void][]) { }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/messages/message.module.ts",
    "content": "import { NgModule, ErrorHandler } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { MessageComponent } from \"./message.component\";\nimport { MessageService } from \"./message.service\";\nimport { MessageErrorHandler } from \"./errorHandler\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n    imports: [BrowserModule, RouterModule],\n    declarations: [MessageComponent],\n    exports: [MessageComponent],\n    providers: [MessageService,\n        { provide: ErrorHandler, useClass: MessageErrorHandler }]\n})\nexport class MessageModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/messages/message.service.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Message } from \"./message.model\";\nimport { Observable } from \"rxjs\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class MessageService {\n    private subject = new Subject<Message>();\n\n    reportMessage(msg: Message) {\n        this.subject.next(msg);\n    }\n\n    get messages(): Observable<Message> {\n        return this.subject;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/model/model.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { Model } from \"./repository.model\";\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\nimport { RestDataSource, REST_URL } from \"./rest.datasource\";\nimport { ModelResolver } from \"./model.resolver\";\n\n@NgModule({\n    imports: [HttpClientModule, HttpClientJsonpModule],\n    providers: [Model, RestDataSource, ModelResolver,\n        { provide: REST_URL, useValue: \"http://localhost:3500/products\" }]\n})\nexport class ModelModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/model/model.resolver.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { Model } from \"./repository.model\"\nimport { RestDataSource } from \"./rest.datasource\";\nimport { Product } from \"./product.model\";\nimport { MessageService } from \"../messages/message.service\";\nimport { Message } from \"../messages/message.model\";\n\n@Injectable()\nexport class ModelResolver {\n\n    constructor(\n        private model: Model,\n        private dataSource: RestDataSource,\n        private messages: MessageService) { }\n\n    resolve(route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): Observable<Product[]> {\n\n        if (this.model.getProducts().length == 0) {\n            this.messages.reportMessage(new Message(\"Loading data...\"));\n            return this.dataSource.getData();\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/model/product.model.ts",
    "content": "export class Product {\n\n  constructor(public id?: number,\n              public name?: string,\n              public category?: string,\n              public price?: number) {}\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/model/repository.model.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\nimport { Observable } from \"rxjs\";\nimport { RestDataSource } from \"./rest.datasource\";\n\n@Injectable()\nexport class Model {\n    private products: Product[] = new Array<Product>();\n    private locator = (p: Product, id: number) => p.id == id;\n\n    constructor(private dataSource: RestDataSource) {\n        this.dataSource.getData().subscribe(data => this.products = data);\n    }\n\n    getProducts(): Product[] {\n        return this.products;\n    }\n\n    getProduct(id: number): Product {\n        return this.products.find(p => this.locator(p, id));\n    }\n\n    getNextProductId(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[this.products.length > index + 2\n                ? index + 1 : 0].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    getPreviousProductid(id: number): number {\n        let index = this.products.findIndex(p => this.locator(p, id));\n        if (index > -1) {\n            return this.products[index > 0\n                ? index - 1 : this.products.length - 1].id;\n        } else {\n            return id || 0;\n        }\n    }\n\n    saveProduct(product: Product) {\n        if (product.id == 0 || product.id == null) {\n            this.dataSource.saveProduct(product)\n                .subscribe(p => this.products.push(p));\n        } else {\n            this.dataSource.updateProduct(product).subscribe(p => {\n                let index = this.products\n                    .findIndex(item => this.locator(item, p.id));\n                this.products.splice(index, 1, p);\n            });\n        }\n    }\n\n    deleteProduct(id: number) {\n        this.dataSource.deleteProduct(id).subscribe(() => {\n            let index = this.products.findIndex(p => this.locator(p, id));\n            if (index > -1) {\n                this.products.splice(index, 1);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/model/rest.datasource.ts",
    "content": "import { Injectable, Inject, InjectionToken } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { Product } from \"./product.model\";\nimport { catchError, delay } from \"rxjs/operators\";\n\nexport const REST_URL = new InjectionToken(\"rest_url\");\n\n@Injectable()\nexport class RestDataSource {\n    constructor(private http: HttpClient,\n        @Inject(REST_URL) private url: string) { }\n\n    getData(): Observable<Product[]> {\n        return this.sendRequest<Product[]>(\"GET\", this.url);\n    }\n\n    saveProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"POST\", this.url, product);\n    }\n\n    updateProduct(product: Product): Observable<Product> {\n        return this.sendRequest<Product>(\"PUT\",\n            `${this.url}/${product.id}`, product);\n    }\n\n    deleteProduct(id: number): Observable<Product> {\n        return this.sendRequest<Product>(\"DELETE\", `${this.url}/${id}`);\n    }\n\n    private sendRequest<T>(verb: string, url: string, body?: Product)\n        : Observable<T> {\n\n        let myHeaders = new HttpHeaders();\n        myHeaders = myHeaders.set(\"Access-Key\", \"<secret>\");\n        myHeaders = myHeaders.set(\"Application-Names\", [\"exampleApp\", \"proAngular\"]);\n\n        return this.http.request<T>(verb, url, {\n            body: body,\n            headers: myHeaders\n        })\n        //.pipe(delay(5000))\n        .pipe(catchError((error: Response) =>\n            throwError(`Network Error: ${error.statusText} (${error.status})`)));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/model/static.datasource.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport { Product } from \"./product.model\";\n\n@Injectable()\nexport class StaticDataSource {\n    private data: Product[];\n\n    constructor() {\n        this.data = new Array<Product>(\n            new Product(1, \"Kayak\", \"Watersports\", 275),\n            new Product(2, \"Lifejacket\", \"Watersports\", 48.95),\n            new Product(3, \"Soccer Ball\", \"Soccer\", 19.50),\n            new Product(4, \"Corner Flags\", \"Soccer\", 34.95),\n            new Product(5, \"Thinking Cap\", \"Chess\", 16));\n    }\n\n    getData(): Product[] {\n        return this.data;\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/ondemand/attr.directive.ts",
    "content": "import {\n  Directive, ElementRef, Attribute, Input, SimpleChange\n} from \"@angular/core\";\n\n@Directive({\n  selector: \"[pa-attr]\"\n})\nexport class PaAttrDirective {\n\n  constructor(private element: ElementRef) { }\n\n  @Input(\"pa-attr\")\n  bgClass: string;\n\n  ngOnChanges(changes: { [property: string]: SimpleChange }) {\n      let change = changes[\"bgClass\"];\n      let classList = this.element.nativeElement.classList;\n      if (!change.isFirstChange() && classList.contains(change.previousValue)) {\n          classList.remove(change.previousValue);\n      }\n      if (!classList.contains(change.currentValue)) {\n          classList.add(change.currentValue);\n      }\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/ondemand/first.component.html",
    "content": "<div class=\"bg-primary text-white p-2\" [class.bg-success]=\"highlighted\">\n  There are\n  <span class=\"strong\"> {{getProducts().length}} </span>\n  products\n</div>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/ondemand/first.component.ts",
    "content": "import { Component, HostListener, Input } from \"@angular/core\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { RestDataSource } from \"../model/rest.datasource\";\n\n@Component({\n    selector: \"first\",\n    templateUrl: \"first.component.html\"\n})\nexport class FirstComponent {\n    _category: string = \"Soccer\";\n    _products: Product[] = [];\n    highlighted: boolean = false;\n\n    constructor(public datasource: RestDataSource) {}\n\n    ngOnInit() {\n        this.updateData();\n    }\n\n    getProducts(): Product[] {\n        return this._products;\n    }\n\n    set category(newValue: string) {\n        this._category;\n        this.updateData();\n    }\n\n    updateData() {\n        this.datasource.getData()\n            .subscribe(data => this._products = data\n                .filter(p => p.category == this._category));\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/ondemand/ondemand.component.html",
    "content": "<div class=\"container-fluid\">\n  <div class=\"row\">\n      <div class=\"col-12 p-2\">\n          <router-outlet></router-outlet>\n      </div>\n  </div>\n  <div class=\"row\">\n      <div class=\"col-6 p-2\">\n          <router-outlet name=\"left\"></router-outlet>\n      </div>\n      <div class=\"col-6 p-2\">\n          <router-outlet name=\"right\"></router-outlet>\n      </div>\n  </div>\n</div>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand\">Normal</button>\n<button class=\"btn btn-secondary m-2\" routerLink=\"/ondemand/swap\">Swap</button>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/ondemand/ondemand.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"ondemand\",\n    templateUrl: \"ondemand.component.html\"\n})\nexport class OndemandComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/ondemand/ondemand.module.ts",
    "content": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OndemandComponent } from \"./ondemand.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { FirstComponent } from \"./first.component\";\nimport { SecondComponent } from \"./second.component\";\n\nlet routing = RouterModule.forChild([\n    {\n        path: \"\",\n        component: OndemandComponent,\n        children: [\n            {\n                path: \"\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: FirstComponent, },\n                    { outlet: \"left\", path: \"\", component: SecondComponent, },\n                    { outlet: \"right\", path: \"\", component: SecondComponent, },\n                ]\n            },\n            {\n                path: \"swap\",\n                children: [\n                    { outlet: \"primary\", path: \"\", component: SecondComponent, },\n                    { outlet: \"left\", path: \"\", component: FirstComponent, },\n                    { outlet: \"right\", path: \"\", component: FirstComponent, },\n                ]\n            },\n        ]\n    },\n]);\n\n@NgModule({\n    imports: [CommonModule, routing],\n    declarations: [OndemandComponent, FirstComponent, SecondComponent],\n    exports: [OndemandComponent]\n})\nexport class OndemandModule { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/ondemand/second.component.ts",
    "content": "import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"second\",\n    template: `<div class=\"bg-info text-white p-2\">Second Component</div>`\n})\nexport class SecondComponent { }\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/terms.guard.ts",
    "content": "import { Injectable } from \"@angular/core\";\nimport {\n    ActivatedRouteSnapshot, RouterStateSnapshot,\n    Router\n} from \"@angular/router\";\nimport { MessageService } from \"./messages/message.service\";\nimport { Message } from \"./messages/message.model\";\n\n@Injectable()\nexport class TermsGuard {\n\n    constructor(private messages: MessageService,\n        private router: Router) { }\n\n    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.params[\"mode\"] == \"create\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No\", () => resolve(false)]\n                ];\n                this.messages.reportMessage(\n                    new Message(\"Do you accept the terms & conditions?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n\n    canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Promise<boolean> | boolean {\n\n        if (route.url.length > 0\n            && route.url[route.url.length - 1].path == \"categories\") {\n\n            return new Promise<boolean>((resolve, reject) => {\n                let responses: [string, (string) => void][] = [\n                    [\"Yes\", () => resolve(true)],\n                    [\"No \", () => resolve(false)]\n                ];\n\n                this.messages.reportMessage(\n                    new Message(\"Do you want to see the categories component?\",\n                        false, responses));\n            });\n        } else {\n            return true;\n        }\n    }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/tests/app.component.spec.ts",
    "content": "describe(\"Jasmine Test Environment\", () => {\n  it(\"test numeric value\", () => expect(12).toBeGreaterThan(10));\n  it(\"test string value\", () => expect(\"London\").toMatch(\"^Lon\"));\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/tests/attr.directive.spec.ts",
    "content": "import { TestBed, ComponentFixture } from \"@angular/core/testing\";\nimport { Component, DebugElement, ViewChild } from \"@angular/core\";\nimport { By } from \"@angular/platform-browser\";\nimport { PaAttrDirective } from \"../ondemand/attr.directive\";\n\n@Component({\n    template: `<div><span [pa-attr]=\"className\">Test Content</span></div>`\n})\nclass TestComponent {\n    className = \"initialClass\"\n\n    @ViewChild(PaAttrDirective)\n    attrDirective: PaAttrDirective;\n}\n\ndescribe(\"PaAttrDirective\", () => {\n\n    let fixture: ComponentFixture<TestComponent>;\n    let directive: PaAttrDirective;\n    let spanElement: HTMLSpanElement;\n\n    beforeEach(() => {\n        TestBed.configureTestingModule({\n            declarations: [TestComponent, PaAttrDirective],\n        });\n        fixture = TestBed.createComponent(TestComponent);\n        fixture.detectChanges();\n        directive = fixture.componentInstance.attrDirective;\n        spanElement = fixture.debugElement.query(By.css(\"span\")).nativeElement;\n    });\n\n    it(\"generates the correct number of elements\", () => {\n        fixture.detectChanges();\n        expect(directive.bgClass).toBe(\"initialClass\");\n        expect(spanElement.className).toBe(\"initialClass\");\n\n        fixture.componentInstance.className = \"nextClass\";\n        fixture.detectChanges();\n        expect(directive.bgClass).toBe(\"nextClass\");\n        expect(spanElement.className).toBe(\"nextClass\");\n    });\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/app/tests/first.component.spec.ts",
    "content": "import { TestBed, ComponentFixture, async, fakeAsync, tick } from \"@angular/core/testing\";\nimport { FirstComponent } from \"../ondemand/first.component\";\nimport { Product } from \"../model/product.model\";\nimport { Model } from \"../model/repository.model\";\nimport { DebugElement } from \"@angular/core\";\nimport { By } from \"@angular/platform-browser\";\nimport { Component, ViewChild } from \"@angular/core\";\nimport { RestDataSource } from \"../model/rest.datasource\";\nimport { Observable } from \"rxjs\";\nimport { Injectable } from \"@angular/core\";\n\n@Injectable()\nclass MockDataSource {\n    public data = [\n        new Product(1, \"test1\", \"Soccer\", 100),\n        new Product(2, \"test2\", \"Chess\", 100),\n        new Product(3, \"test3\", \"Soccer\", 100),\n    ];\n\n    getData(): Observable<Product[]> {\n        return new Observable<Product[]>(obs => {\n            setTimeout(() => obs.next(this.data), 1000);\n        })\n    }\n}\n\ndescribe(\"FirstComponent\", () => {\n\n    let fixture: ComponentFixture<FirstComponent>;\n    let component: FirstComponent;\n    let dataSource = new MockDataSource();\n\n    beforeEach(async(() => {\n        TestBed.configureTestingModule({\n            declarations: [FirstComponent],\n            providers: [\n                { provide: RestDataSource, useValue: dataSource }\n            ]\n        });\n        TestBed.compileComponents().then(() => {\n            fixture = TestBed.createComponent(FirstComponent);\n            component = fixture.componentInstance;\n        });\n    }));\n\n    it(\"performs async op\", fakeAsync( () => {\n        dataSource.data.push(new Product(100, \"test100\", \"Soccer\", 100));\n\n        fixture.detectChanges();\n\n        tick(1000);\n\n        fixture.whenStable().then(() => {\n            expect(component.getProducts().length).toBe(3);\n        });\n    }));\n});\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>ExampleApp</title>\n  <base href=\"/\">\n\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n</head>\n<body class=\"m-2\">\n  <app></app>\n</body>\n</html>\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n  .catch(err => console.error(err));\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/styles.css",
    "content": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: {\n  context(path: string, deep?: boolean, filter?: RegExp): {\n    keys(): string[];\n    <T>(id: string): T;\n  };\n};\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/tsconfig.app.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": [\n    \"src/main.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/tsconfig.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"downlevelIteration\": true,\n    \"experimentalDecorators\": true,\n    \"moduleResolution\": \"node\",\n    \"importHelpers\": true,\n    \"target\": \"es2015\",\n    \"module\": \"es2020\",\n    \"lib\": [\n      \"es2018\",\n      \"dom\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/tsconfig.spec.json",
    "content": "/* To learn more about this file see: https://angular.io/config/tsconfig. */\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\"\n    ]\n  },\n  \"files\": [\n    \"src/test.ts\",\n    \"src/polyfills.ts\"\n  ],\n  \"include\": [\n    \"src/**/*.spec.ts\",\n    \"src/**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "Update for Angular 11/Chapter 29/exampleApp/tslint.json",
    "content": "{\n  \"extends\": \"tslint:recommended\",\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"align\": {\n      \"options\": [\n        \"parameters\",\n        \"statements\"\n      ]\n    },\n    \"array-type\": false,\n    \"arrow-return-shorthand\": true,\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warning\"\n    },\n    \"eofline\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": {\n      \"options\": [\n        \"spaces\"\n      ]\n    },\n    \"max-classes-per-file\": false,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-empty\": false,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-var-requires\": false,\n    \"object-literal-key-quotes\": [\n      true,\n      \"as-needed\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"semicolon\": {\n      \"options\": [\n        \"always\"\n      ]\n    },\n    \"space-before-function-paren\": {\n      \"options\": {\n        \"anonymous\": \"never\",\n        \"asyncArrow\": \"always\",\n        \"constructor\": \"never\",\n        \"method\": \"never\",\n        \"named\": \"never\"\n      }\n    },\n    \"typedef\": [\n      true,\n      \"call-signature\"\n    ],\n    \"typedef-whitespace\": {\n      \"options\": [\n        {\n          \"call-signature\": \"nospace\",\n          \"index-signature\": \"nospace\",\n          \"parameter\": \"nospace\",\n          \"property-declaration\": \"nospace\",\n          \"variable-declaration\": \"nospace\"\n        },\n        {\n          \"call-signature\": \"onespace\",\n          \"index-signature\": \"onespace\",\n          \"parameter\": \"onespace\",\n          \"property-declaration\": \"onespace\",\n          \"variable-declaration\": \"onespace\"\n        }\n      ]\n    },\n    \"variable-name\": {\n      \"options\": [\n        \"ban-keywords\",\n        \"check-format\",\n        \"allow-pascal-case\"\n      ]\n    },\n    \"whitespace\": {\n      \"options\": [\n        \"check-branch\",\n        \"check-decl\",\n        \"check-operator\",\n        \"check-separator\",\n        \"check-type\",\n        \"check-typecast\"\n      ]\n    },\n    \"component-class-suffix\": true,\n    \"contextual-lifecycle\": true,\n    \"directive-class-suffix\": true,\n    \"no-conflicting-lifecycle\": true,\n    \"no-host-metadata-property\": true,\n    \"no-input-rename\": true,\n    \"no-inputs-metadata-property\": true,\n    \"no-output-native\": true,\n    \"no-output-on-prefix\": true,\n    \"no-output-rename\": true,\n    \"no-outputs-metadata-property\": true,\n    \"template-banana-in-box\": true,\n    \"template-no-negated-async\": true,\n    \"use-lifecycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"app\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"app\",\n      \"kebab-case\"\n    ]\n  }\n}\n"
  },
  {
    "path": "Update for Angular 11/README.md",
    "content": "# Update for Angular 11\n\nAll the examples in Pro Angular 9 work with Angular 11. The two changes shown below install the Angular 11 tools and reflect a change in the way that Angular 11 progressive web applications are configured. \n\nThis folder contains a complete set of projects created using Angular 11, equivilent to the \"End of Chapter\" projects in the main repository.\n\nWhen you create new projects, you will be asked whether stricter type checking should be enabled. Press return to accept the default, which is to disable the stricter checks.\n\nWhen you add new code files to a project, you may see this error displayed in your code editor:\n\n    Error: Experimental support for decorators is a feature that is subject to change in a future release. \n    Set the 'experimentalDecorators' option in your 'tsconfig' or 'jsconfig' to remove this warning.\n\n There has been a TypeScript compiler configuration change that triggers this warning for files that use decorators but have not yet been added to the compilation context. Continue following the examples and this error will disappear once you update the Angular module that incorprates the new file into the application.\n\nAdam Freeman, November 2020\n\n---\n\n**Chapter 2**\n\nTo install the package for creating Angular 11 projects, use this command instead of the one shown in Listing 2-3:\n\n    npm install --global @angular/cli@11.0.2\n\n***\n\n**Chapter 10**\n\nUse the following code for Listing 10-2:\n\n    {\n    \"$schema\": \"./node_modules/@angular/service-worker/config/schema.json\",\n    \"index\": \"/index.html\",\n    \"assetGroups\": [\n        {\n        \"name\": \"app\",\n        \"installMode\": \"prefetch\",\n        \"resources\": {\n            \"files\": [\n            \"/favicon.ico\",\n            \"/index.html\",\n            \"/manifest.webmanifest\",\n            \"/*.css\",\n            \"/*.js\"\n            ]\n        }\n        }, {\n        \"name\": \"assets\",\n        \"installMode\": \"lazy\",\n        \"updateMode\": \"prefetch\",\n        \"resources\": {\n            \"files\": [\n            \"/assets/**\",\n            \"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)\", \n            \"/font/*\"\n            ]\n        }\n        }\n    ], \n    \"dataGroups\": [\n        {\n            \"name\": \"api-product\",\n            \"urls\": [\"/api/products\"],\n            \"cacheConfig\" : {\n                \"maxSize\": 100,\n                \"maxAge\": \"5d\"\n            }\n        }],\n        \"navigationUrls\": [\n        \"/**\"\n        ]\n    }\n\n**Chapter 16**\n\nUse the following instead of Listing 16-16:\n\n    import {\n        Directive, ViewContainerRef, TemplateRef,\n        Input, SimpleChange, IterableDiffer, IterableDiffers, ChangeDetectorRef, IterableChangeRecord\n    } from \"@angular/core\";\n\n    @Directive({\n        selector: \"[paForOf]\"\n    })\n    export class PaIteratorDirective {\n        private differ: IterableDiffer<any>;\n\n        constructor(private container: ViewContainerRef,\n            private template: TemplateRef<Object>,\n            private differs: IterableDiffers,\n            private changeDetector: ChangeDetectorRef) {\n        }\n\n        @Input(\"paForOf\")\n        dataSource: any;\n\n        ngOnInit() {\n            this.differ =\n                <IterableDiffer<any>>this.differs.find(this.dataSource).create();\n        }\n\n        ngDoCheck() {\n            let changes = this.differ.diff(this.dataSource);\n            if (changes != null) {\n                console.log(\"ngDoCheck called, changes detected\");\n                let arr: IterableChangeRecord<any>[] = [];\n                changes.forEachAddedItem(addition => arr.push(addition));\n                arr.forEach(addition => {\n                    this.container.createEmbeddedView(this.template,\n                        new PaIteratorContext(addition.item, addition.currentIndex, arr.length));\n                });\n            }\n        }\n    }\n\n    class PaIteratorContext {\n        odd: boolean; even: boolean;\n        first: boolean; last: boolean;\n\n        constructor(public $implicit: any,\n            public index: number, total: number) {\n\n            this.odd = index % 2 == 1;\n            this.even = !this.odd;\n            this.first = index == 0;\n            this.last = index == total - 1;\n        }\n    }\n\nUse the following code for Listing 16-19:\n\n    import {\n        Directive, ViewContainerRef, TemplateRef,\n        Input, SimpleChange, IterableDiffer, IterableDiffers,\n        ChangeDetectorRef, ViewRef, IterableChangeRecord\n    } from \"@angular/core\";\n\n    @Directive({\n        selector: \"[paForOf]\"\n    })\n    export class PaIteratorDirective {\n        private differ: IterableDiffer<any>;\n        private views: Map<any, PaIteratorContext> = new Map<any, PaIteratorContext>();\n\n        constructor(private container: ViewContainerRef,\n            private template: TemplateRef<Object>,\n            private differs: IterableDiffers,\n            private changeDetector: ChangeDetectorRef) {\n        }\n\n        @Input(\"paForOf\")\n        dataSource: any;\n\n        ngOnInit() {\n            this.differ =\n                <IterableDiffer<any>>this.differs.find(this.dataSource).create();\n        }\n\n        ngDoCheck() {\n            let changes = this.differ.diff(this.dataSource);\n            if (changes != null) {\n\n                let arr: IterableChangeRecord<any>[] = [];\n                changes.forEachAddedItem(addition => arr.push(addition));\n                arr.forEach(addition => {\n                    let context = new PaIteratorContext(addition.item,\n                        addition.currentIndex, arr.length);\n                    context.view = this.container.createEmbeddedView(this.template,\n                        context);\n                    this.views.set(addition.trackById, context);\n                });\n                let removals = false;\n                changes.forEachRemovedItem(removal => {\n                    removals = true;\n                    let context = this.views.get(removal.trackById);\n                    if (context != null) {\n                        this.container.remove(this.container.indexOf(context.view));\n                        this.views.delete(removal.trackById);\n                    }\n                });\n                if (removals) {\n                    let index = 0;\n                    this.views.forEach(context =>\n                        context.setData(index++, this.views.size));\n                }\n            }\n        }\n    }\n\n    class PaIteratorContext {\n        index: number;\n        odd: boolean; even: boolean;\n        first: boolean; last: boolean;\n        view: ViewRef;\n\n        constructor(public $implicit: any,\n                public position: number, total: number ) {\n            this.setData(position, total);\n        }\n\n        setData(index: number, total: number) {\n            this.index = index;\n            this.odd = index % 2 == 1;\n            this.even = !this.odd;\n            this.first = index == 0;\n            this.last = index == total - 1;\n        }\n    }\n"
  },
  {
    "path": "corrections+errata.md",
    "content": "# Errata for *Pro Angular 9*\r\n\r\n**Chapter 2**\r\n\r\nOn page 15, Listing 2-7 does not show the concise constructor described in the text. The code should be as follows:\r\n\r\n    export class TodoItem {\r\n\r\n        constructor(public task: string, public complete: boolean = false) {\r\n        }\r\n    }\r\n\r\n\r\n(Thanks to Siavash Fallahdoust for reporting this problem)\r\n***\r\n**Chapter 12**\r\n\r\nOn page 263, the command to detect changes should be as follows:\r\n\r\n    appRef.tick()\r\n\r\n(Thanks to Felipe Windmoller for reporting this problem)\r\n\r\n***\r\n\r\n\r\n**Chapter 16**\r\n\r\nListing 16-3 uses the value of the Counter1 variable when setting the cookie for Counter2. The code should be as follows:\r\n\r\n\r\n    using Microsoft.AspNetCore.Builder;\r\n    using Microsoft.AspNetCore.Http;\r\n    using Microsoft.Extensions.DependencyInjection;\r\n    using System;\r\n    using System.Threading.Tasks;\r\n\r\n    namespace Platform {\r\n        public class Startup {\r\n            public void ConfigureServices(IServiceCollection services) {\r\n            }\r\n\r\n            public void Configure(IApplicationBuilder app) {\r\n                app.UseDeveloperExceptionPage();\r\n                app.UseRouting();\r\n                app.UseEndpoints(endpoints => {\r\n                    endpoints.MapGet(\"/cookie\", async context => {\r\n                        int counter1 =\r\n                            int.Parse(context.Request.Cookies[\"counter1\"] ?? \"0\") + 1;\r\n                        context.Response.Cookies.Append(\"counter1\", counter1.ToString(),\r\n                            new CookieOptions {\r\n                                MaxAge = TimeSpan.FromMinutes(30)\r\n                            });\r\n                        int counter2 =\r\n                            int.Parse(context.Request.Cookies[\"counter2\"] ?? \"0\") + 1;\r\n                        context.Response.Cookies.Append(\"counter2\", counter2.ToString(),\r\n                            new CookieOptions {\r\n                                MaxAge = TimeSpan.FromMinutes(30)\r\n                            });\r\n                        await context.Response\r\n                            .WriteAsync($\"Counter1: {counter1}, Counter2: {counter2}\");\r\n                    });\r\n                    endpoints.MapGet(\"clear\", context => {\r\n                        context.Response.Cookies.Delete(\"counter1\");\r\n                        context.Response.Cookies.Delete(\"counter2\");\r\n                        context.Response.Redirect(\"/\");\r\n                        return Task.CompletedTask;\r\n                    });\r\n                    endpoints.MapFallback(async context =>\r\n                        await context.Response.WriteAsync(\"Hello World!\"));\r\n                });\r\n            }\r\n        }\r\n    }\r\n\r\n(Thanks to Patrick Lanz for reporting this problem)\r\n\r\n***\r\n\r\n**Chapter 26**\r\n\r\nListing 26-1 doesn't handle the length of the data array correctly, such that the last item is never selected. The code should be as follows:\r\n\r\n        import { Injectable } from \"@angular/core\";\r\n        import { Product } from \"./product.model\";\r\n        import { Observable } from \"rxjs\";\r\n        import { RestDataSource } from \"./rest.datasource\";\r\n\r\n        @Injectable()\r\n        export class Model {\r\n            private products: Product[] = new Array<Product>();\r\n            private locator = (p: Product, id: number) => p.id == id;\r\n\r\n            constructor(private dataSource: RestDataSource) {\r\n                this.dataSource.getData().subscribe(data => this.products = data);\r\n            }\r\n\r\n            getProducts(): Product[] {\r\n                return this.products;\r\n            }\r\n\r\n            getProduct(id: number): Product {\r\n                return this.products.find(p => this.locator(p, id));\r\n            }\r\n\r\n            getNextProductId(id: number): number {\r\n                let index = this.products.findIndex(p => this.locator(p, id));\r\n                if (index > -1) {\r\n                    return this.products[this.products.length > index + 1\r\n                        ? index + 1 : 0].id;\r\n                } else {\r\n                    return id || 0;\r\n                }\r\n            }\r\n\r\n            getPreviousProductid(id: number): number {\r\n                let index = this.products.findIndex(p => this.locator(p, id));\r\n                if (index > -1) {\r\n                    return this.products[index > 0\r\n                        ? index - 1 : this.products.length - 1].id;\r\n                } else {\r\n                    return id || 0;\r\n                }\r\n            }\r\n\r\n            saveProduct(product: Product) {\r\n                if (product.id == 0 || product.id == null) {\r\n                    this.dataSource.saveProduct(product)\r\n                        .subscribe(p => this.products.push(p));\r\n                } else {\r\n                    this.dataSource.updateProduct(product).subscribe(p => {\r\n                        let index = this.products\r\n                            .findIndex(item => this.locator(item, p.id));\r\n                                        this.products.splice(index, 1, p);\r\n                    });\r\n                }\r\n            }\r\n\r\n            deleteProduct(id: number) {\r\n                this.dataSource.deleteProduct(id).subscribe(() => {\r\n                    let index = this.products.findIndex(p => this.locator(p, id));\r\n                    if (index > -1) {\r\n                        this.products.splice(index, 1);\r\n                    }\r\n                });\r\n            }\r\n        }\r\n\r\n(Thanks to Edwin van Ree for reporting this problem)"
  }
]